L'API Google maps V3 méthode fitBounds()
J'ai ce code qui rend une carte.
function initialize() {
var myOptions = {
center: new google.maps.LatLng(45.4555729, 9.169236),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP,
panControl: true,
mapTypeControl: false,
panControlOptions: {
position: google.maps.ControlPosition.RIGHT_CENTER
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.RIGHT_CENTER
},
scaleControl: false,
streetViewControl: false,
streetViewControlOptions: {
position: google.maps.ControlPosition.RIGHT_CENTER
}
};
var map = new google.maps.Map(document.getElementById("mapCanvas"),
myOptions);
var Item_1 = new google.maps.LatLng(45.5983128 ,8.9172776);
var myPlace = new google.maps.LatLng(45.4555729, 9.169236);
var marker = new google.maps.Marker({
position: Item_1,
map: map});
var marker = new google.maps.Marker({
position: myPlace,
map: map});
var bounds = new google.maps.LatLngBounds(myPlace, Item_1);
map.fitBounds(bounds);
}
Même si les deux points sont séparés de 25 km j'obtiens ce résultat:
Alors que je voudrais rendre un plus haut niveau de zoom.
Comme ce
J'utilise la méthode fitBounds()
var bounds = new google.maps.LatLngBounds(myPlace, Item_1);
map.fitBounds(bounds);
Merci pour votre soutien
Vous devez vous connecter pour publier un commentaire.
Cela se produit parce que
LatLngBounds()
ne pas prendre deux points arbitraires paramètres, mais SW et NE pointsutiliser le
.extend()
méthode à vide sur un objet définiDémo à http://jsfiddle.net/gaby/22qte/
LatLngBounds
doit être défini avec des points (sud-ouest, nord-est) de commande. Vos points ne sont pas dans l'ordre.Le grand miracle, surtout si vous ne connaissez pas les points de sera certainement dans cet ordre, est d'étendre un vide limites:
L'API allons trier les limites.
J'ai le même problème que vous décrivez bien que je suis en train de construire mon LatLngBounds comme proposé ci-dessus par. Le problème, c'est que les choses sont asynchrones et en appelant
map.fitBounds()
au mauvais moment peut vous laisser avec un résultat comme dans le Q.La meilleure façon que j'ai trouvée est de placer l'appel à l'arrêt de gestionnaire comme ceci:
fitBounds()
, donc, apparemment, le zoom n'arrivais pas à lui-même. Faire sûr que la carte est affichée en premier avant d'essayer de zoom, ça m'a aidé.