2010-11-30 1 views
2

Hallo dort arbeite ich zur Zeit mit google map apiProblem in Google Map API ...!

für mit Marker mehrere Adress Plotten

i den folgenden Code geschrieben haben, wie ich die API-Funktion, während Studie von Google api Dokumentation

for(var i=0; i<address.length; i++){ 
geocoder.getLocations(address[i],function(response){  
      if(response){ 
       place = response.Placemark[0]; 
        point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]); 
       map.setCenter(point, 12); 
       map.addOverlay(createmarker(point)); 
      } 
}); 
} 
verstehen

creamemarker ist meine Funktion, die richtig funktioniert, aber das Problem ist das dieser Ort zufällige Marker mit der Adresse kommt aus Adresse Array manchmal 10, 12, 14, 14, und so weiter ....

Ich will nur die alle plotten Adresse in meiner Adressfeld vorhanden ist, und auf der Google Maps auch ..

so muss es Anzahl der Markierungen auf der Karte festgelegt werden ...!

So gibt es jemanden, der mir für dieses Problem helfen kann ..!

Dank ist

fortgeschrittene
+0

Sie müssen uns mit zusätzlichen Informationen helfen. Was Ihr Code gerade tut, versucht mehrere Adressen zu plotten. Sind alle Adressen richtig geocodiert? Was passiert, wenn Sie nur eine einzige Adresse in Ihrem Array verwenden? Ist Ihnen bewusst, dass der Geocodierer einen asynchronen Aufruf ausführt, sodass Ihre Punkte nicht in der Reihenfolge des Arrays auf der Karte angezeigt werden. Außerdem wird die Karte für jeden Punkt neu zentriert, was für die Endnutzer lästig sein wird, wenn die Karte weiter herumspringt. –

+0

Eigentlich möchte ich nur die ganze Adresse in meinem Adress-Array plotten, um Karte zu erstellen, ich habe dir meinen Code geschickt, einfach die Macher grafisch darstellen, ich will alle Adressen auf der Karte plotten, sollte ich irgendetwas anderes für die Geokodierung meiner Adresse verwenden. , Wenn ich eine einzelne Adresse eingegeben habe, funktioniert es gut, also warum es Problem mit meinem loop ho macht, werde ich es jede Idee oder Code .. lösen.! – user525166

Antwort

1

Die createMarker Funktion sollte wie folgt aussehen. Siehe mein Beispiel here, wo Sie mehrere Markierungen auf der Karte hinzufügen können. Komplettes JavaScript kann here gefunden werden.

function createMarker(latlng) { 
    var contentString = html; 
    var marker = new google.maps.Marker({ 
     position: latlng, 
     map: map, 
     zIndex: Math.round(latlng.lat()*-100000)<<5 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
     infowindow.setContent(contentString); 
     infowindow.open(map,marker); 
    }); 
    marker.MyZoom = zoom; 
    return marker; 
}