J'ai trouvé plusieurs exemples V2 sur la façon de faire un panoramique de la carte pendant le déplacement d'un marqueur. Par exemple: http://www.putyourlightson.net/projects/coordinatesDans Google Maps V3, comment puis-je obtenir un marqueur déplaçable pour afficher la carte?
// 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();
});
Cette page semble "auto-pan", tandis que le marqueur est en cours de déplacement; notez que son seul écouteur d'événement est pour "dragend". Mais je vous assure que cette carte pique pendant que le marqueur est traîné. J'essaye de réaliser la même chose avec l'API V3, sans aucun succès. J'ai même essayé d'appeler map.panTo() alors que l'icône est en cours de déplacement, avec des résultats peu satisfaisants: 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());
});
}
Il me semble logique que cela ne fonctionnerait pas, car panning placer le marqueur au centre de la carte, pendant que la carte bouge, est fausse.
Est-ce aussi simple que l'API V2 le fait automatiquement, contrairement à l'API V3? Comment puis-je obtenir cet effet avec l'API V3?
Merci.
J'ai creusé, et il semble que cette fonctionnalité a été supprimée dans la transition V2 -> V3. Je ne trouve aucun mot officiel, mais cela semble être ce qui s'est passé. Bummer. –
FYI - http://code.google.com/p/gmaps-api-issues/issues/detail?id=2404 –