In Google Maps V3, wie bekomme ich ein draggable marker, um den Kartenausschnitt?
Habe ich gefunden, mehrere V2-Beispiele, wie Sie schwenken Sie die Karte, während ein marker gezogen wird. Zum Beispiel: http://www.putyourlightson.net/projects/coordinates
//create map and add controls
var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
//set centre point of map
var centrePoint = new GLatLng('53.34870686020199', '-6.267356872558594');
map.setCenter(centrePoint, 14);
//add a draggable marker
var marker = new GMarker(centrePoint, {draggable: true});
map.addOverlay(marker);
//add a drag listener to the map
GEvent.addListener(marker, "dragend", function() {
var point = marker.getPoint();
map.panTo(point);
document.getElementById("latitude").value = point.lat();
document.getElementById("longitude").value = point.lng();
});
Diese Seite scheint zu "auto-pan", während die Markierung gezogen wird; Hinweis, dass seine einzige Ereignis-listener für "dragend". Aber ich versichere Ihnen, dass, dass die Karte, Pfannen, während die marker gezogen wird.
Ich versuche, das gleiche zu erreichen mit der V3 API, ohne Erfolg. Ich habe sogar versucht, den Aufruf anzeigen.panTo (), während das Symbol gezogen wird, mit unbefriedigenden Ergebnissen: http://www.publicgloucester.com/test.html
function initialize ()
{
Gloucester = new google.maps.LatLng (42.6159285, -70.6619888);
myOptions =
{
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: Gloucester,
streetViewControl: false
}
map = new google.maps.Map (document.getElementById ("map_canvas"), myOptions);
marker = new google.maps.Marker ({position: Gloucester, title: "Gloucester, MA"});
marker.setMap (map);
marker.setDraggable (true);
google.maps.event.addListener (marker, 'drag', function (event)
{
//Pan to this position (doesn't work!)
map.panTo (marker.getPosition());
});
}
Macht es Sinn für mich, dass dies nicht funktionieren würde, da das panning zu platzieren Sie den marker in der Mitte der Karte, während die Karte bewegt, ist falsch.
Ist es so einfach wie die V2 API tun dies automatisch, während die V3-API nicht? Wie kann ich erreichen diesen Effekt mit der V3-API?
Dank.
InformationsquelleAutor der Frage Martin Del Vecchio | 2010-07-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
verwenden dragend anstelle der ziehen. der code,
InformationsquelleAutor der Antwort vbn
Google behoben hat: http://code.google.com/p/gmaps-api-issues/issues/detail?id=2404
Können Sie sehen das Update in Aktion zu http://www.publicgloucester.com/test2.html. Ignorieren Sie den Kommentar, der sagt, "es nicht tun, was ich will"; diese Bemerkung ist überflüssig.
InformationsquelleAutor der Antwort Martin Del Vecchio
Der Veranstaltung, die Sie möchten, zu hören ist das Beispiel "ziehen", was Sie tun können, um es so Aussehen weniger "falsch" ist, fügen Sie eine Verzögerung, so dass die Karten folgt der Markierung statt sofort aktualisiert. Versuchen Sie dies:
InformationsquelleAutor der Antwort xmarcos
haben Sie versucht, um dies zu implementieren, um die federnd Aktion zurück? http://groups.google.com/group/nycjs/browse_thread/thread/259a325fa980e575
InformationsquelleAutor der Antwort megan