Ho trovato diversi esempi V2 di come eseguire il pan della mappa mentre un marker viene trascinato. Per esempio: http://www.putyourlightson.net/projects/coordinatesIn Google Maps V3, come posso ottenere un indicatore trascinabile per visualizzare la mappa?
// 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();
});
Questa pagina sembra "auto-pan", mentre il marcatore viene trascinato; nota che il suo unico listener di eventi è "dragend". Ma ti assicuro che quella mappa si apre mentre il marcatore viene trascinato.
Sto cercando di ottenere la stessa cosa con l'API V3, senza alcun successo. Ho anche provato a chiamare map.panTo() mentre l'icona viene trascinato, con risultati insoddisfacenti: 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());
});
}
Ha senso per me che questo non avrebbe funzionato, dal momento che il panning per posizionare il marcatore nel centro di la mappa, mentre la mappa si sta muovendo, è falsa.
È semplice come l'API V2 che esegue questa operazione automaticamente, mentre l'API V3 no? Come posso ottenere questo effetto con l'API V3?
Grazie.
Sto scavando e sembra che questa funzione sia stata rimossa nella transizione V2 -> V3. Non riesco a trovare alcuna parola ufficiale, ma sembra essere quello che è successo. Bummer. –
FYI - http://code.google.com/p/gmaps-api-issues/issues/detail?id=2404 –