Google Map API v3 — fixer des limites et du centre
J'ai récemment opté pour l'API Google Maps V3. Je suis en train de travailler d'un exemple simple qui les parcelles de marqueurs à partir d'un tableau, mais je ne sais pas comment faire pour centrer et zoomer automatiquement à l'égard des marqueurs.
J'ai cherché sur le net, haute et basse, y compris Google documents propres, mais n'ont pas trouvé de réponse claire. Je sais que je pourrais tout simplement prendre la moyenne des coordonnées, mais comment pourrais-je régler le zoom en conséquence?
function initialize() {
var myOptions = {
zoom: 10,
center: new google.maps.LatLng(-33.9, 151.2),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
setMarkers(map, beaches);
}
var beaches = [
['Bondi Beach', -33.890542, 151.274856, 4],
['Coogee Beach', -33.423036, 151.259052, 5],
['Cronulla Beach', -34.028249, 121.157507, 3],
['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
['Maroubra Beach', -33.450198, 151.259302, 1]
];
function setMarkers(map, locations) {
var image = new google.maps.MarkerImage('images/beachflag.png',
new google.maps.Size(20, 32),
new google.maps.Point(0,0),
new google.maps.Point(0, 32));
var shadow = new google.maps.MarkerImage('images/beachflag_shadow.png',
new google.maps.Size(37, 32),
new google.maps.Point(0,0),
new google.maps.Point(0, 32));
var lat = map.getCenter().lat();
var lng = map.getCenter().lng();
var shape = {
coord: [1, 1, 1, 20, 18, 20, 18 , 1],
type: 'poly'
};
for (var i = 0; i < locations.length; i++) {
var beach = locations[i];
var myLatLng = new google.maps.LatLng(beach[1], beach[2]);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
shadow: shadow,
icon: image,
shape: shape,
title: beach[0],
zIndex: beach[3]
});
}
}
Vous devez vous connecter pour publier un commentaire.
Oui, il suffit de déclarer vos nouvelles limites de l'objet.
Ensuite, pour chaque marqueur, étendre vos limites de l'objet:
API: google.cartes.LatLngBounds
Ai tout trié - voir les dernières lignes de code (
bounds.extend(myLatLng); map.fitBounds(bounds);
)Ma suggestion pour l'api google maps v3 serait(ne pense pas que cela peut être fait plus efficacement):
Dans le résultat u s'adapte à tous les points limites dans votre fenêtre de carte.
Exemple fonctionne parfaitement et u librement pouvez le vérifier ici http://www.zemelapis.lt
false
si lebounds
sontnull
, vous pourriezmaps[ mapId ].getBounds()
.Les réponses sont parfaits pour ajuster la carte des limites pour les marques, mais si vous développez Google Maps limites pour les formes comme des polygones et des cercles, vous pouvez utiliser les codes suivants:
Pour Les Cercles
Pour Les Polygones
Pour Les Rectangles
Pour Les Polylignes
La setCenter() la méthode est encore applicable pour la dernière version de Maps API for Flash où fitBounds() n'existe pas.
Utilisation ci-après une,
carte.setCenter(limites.getCenter(), map.getBoundsZoomLevel(limites));