2017-05-11 1 views
0

mein Skript wie folgt. Ich muss den PIN-Code suchen und basierend auf der Suche muss ich Standorte auf der Karte zeigenGeocoder api Radarsuche und mehrere Marker Ausgabe

Ques 1: wenn ich 2 Ergebnisse für den gleichen Pincode, dann auch ein Marker kommt auf der Karte. Ich möchte separate Marker anzeigen.

Ques 2: Ich möchte auch mit Pincode Radarsuche. Wenn der PIN-Code 07201 und 07202 sehr nah beieinander liegt, dann sollte ich Ergebnisse für beide erhalten. Ich habe versucht, in meiner Antwort mit Radius, aber seine Arbeit nicht

<script> 
     var map; 
     <!-- var marker; --> 
    function initialize() 
    { 
     var mapOptions = { 
     center: new google.maps.LatLng('40.71338', '-74.193246'), 
     zoom: 8, 
     scrollwheel: false, 
     disableDefaultUI: false, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 

     map = new google.maps.Map(document.getElementById("map_canvas"),mapOptions); 

     marker = new google.maps.Marker({ 
        position: new google.maps.LatLng(40.71338, -74.193246), 
        map: map, 
       }); 


    } 



    jQuery('#searchPincodeForm').submit(function (event) { 
     event.preventDefault(); 

     var geocoder = new google.maps.Geocoder(); 
     var search_val=$('#country').val(); 

     jQuery.ajax({ 
       type: 'post', 
       data:{ 
        'pincode':search_val,     
       }, 
       url: 'searchPincode.php',   
       success:function(response){ 
       if(response != ''){ 

       $("#result").html(response).show(); 
        geocoder.geocode({ 
        'address': search_val }, function (results, status) { 


        if (status == google.maps.GeocoderStatus.OK) { 

        var position = results[0].geometry.location; 
         map.setCenter(position); 
         marker.setPosition(position); 

       } 

       }) 
       } else{ 

        $("#result").html("Sorry Dealer not available at this location. For more information please mail at [email protected]").show(); 

       } 
       } 


      }); 
      }); 


    </script> 

Antwort, die ich von geocode erhalten:

{ 
    "results": [{ 
     "address_components": [{ 
       "long_name": "07108", 
       "short_name": "07108", 
       "types": ["postal_code"] 
      }, 
      { 
       "long_name": "Newark", 
       "short_name": "Newark", 
       "types": ["locality", "political"] 
      }, 
      { 
       "long_name": "Essex County", 
       "short_name": "Essex County", 
       "types": ["administrative_area_level_2", "political"] 
      }, 
      { 
       "long_name": "New Jersey", 
       "short_name": "NJ", 
       "types": ["administrative_area_level_1", "political"] 
      }, 
      { 
       "long_name": "United States", 
       "short_name": "US", 
       "types": ["country", "political"] 
      } 
     ], 
     "formatted_address": "Newark, NJ 07108, USA", 
     "geometry": { 
      "bounds": { 
       "northeast": { 
        "lat": 40.73179289999999, 
        "lng": -74.1830549 
       }, 
       "southwest": { 
        "lat": 40.713114, 
        "lng": -74.21835 
       } 
      }, 
      "location": { 
       "lat": 40.7235275, 
       "lng": -74.197388 
      }, 
      "location_type": "APPROXIMATE", 
      "viewport": { 
       "northeast": { 
        "lat": 40.73179289999999, 
        "lng": -74.1830549 
       }, 
       "southwest": { 
        "lat": 40.713114, 
        "lng": -74.21835 
       } 
      } 
     }, 
     "place_id": "ChIJK0xWNjlTwokRLb_3zFLt8zM", 
     "types": ["postal_code"] 
    }], 
    "status": "OK" 
} 
+0

Wie konvertieren Sie den PIN-Code in lat-Wert? –

+0

geocoder.geocode ({ 'adresse': search_val –

+0

Wenn Sie zwei verschiedene lat lange Wert haben, unabhängig von der Differenz zwischen ihnen, können Sie sie separat abbilden. –

Antwort

0

So ist das Problem hier:

var position = results[0].geometry.location; 
map.setCenter(position); 
marker.setPosition(position); 

Ihre Ajax-Antwort enthält mehr als ein Ortspunkt darin, aber im obigen Code verwenden Sie nur den ersten Ortspunkt results[0].geometry.location hier. So müssen Sie anstelle von results[0] das Ergebnisarray durchlaufen, so dass mehrere Punkte auf Ihre Marke abgebildet werden.

+0

ich dies versuchte dabei immer Fehler auf setCenter for (var i = 0; i <= results.length; i ++)?. { \t \t \t \t \t var position = Ergebnisse [i] .geometry.location; \t \t \t \t \t \t map.setCenter (Position); \t \t \t \t \t \t marker.setPosition (Position); \t \t \t \t \t \t \t \t \t \t} –

+0

prüfen dieses Beispiel für mehrere Marker: https://wrightshq.com/playground/placing-multiple-markers-on-a-google-map-using-api-3/ –

+0

http://stackoverflow.com/questions/3059044/google-maps-js-api-v3-simple-multiple-marker-example –