J'ai le code suivant dans lequel je m'attendrais à ce que la méthode contient renvoie true, mais elle renvoie false:
var bounds = new google.maps.LatLngBounds(
new google.maps.LatLng(55.38942944437183, -2.7379201682812226),
new google.maps.LatLng(54.69726685890506, -1.2456105979687226)
);
var center = bounds.getCenter(); // (55.04334815163844, -1.9917653831249726)
var x = bounds.contains(center); // returns false
Sur la même page, où map est une référence à l'objet Map, le code suivant renvoie true comme prévu:
map.getBounds().contains(map.getBounds().getCenter())
Pourquoi mon appel à bounds.contains
renvoie-t-il faux?
Ah, génial. Le constructeur google.maps.LatLngBounds
attend les paramètres SouthWest et NorthEast LatLng
. J'ai en quelque sorte goupillé mes coordonnées et passé à NorthWest et SouthEast à la place!
var bounds = new google.maps.LatLngBounds(
new google.maps.LatLng(54.69726685890506,-2.7379201682812226),
new google.maps.LatLng(55.38942944437183, -1.2456105979687226)
);
var center = bounds.getCenter(); // still returns (55.04334815163844, -1.9917653831249726)
var x = bounds.contains(center); // now returns true
Leçon apprise: getCenter
importe peu si vous avez créé la LatLngBounds
avec NorthWest et SouthEast, mais si vous souhaitez que contains
vous renvoie une réponse utile, vous feriez mieux de passer aux suggestions Sud-Ouest et Nord-Est!
Je suppose que c'est plus facile d'essayer cela. Cela fonctionne pour moi sans avoir à vous soucier de NE orSW
var bounds = new google.maps.LatLngBounds();
bounds.extend(54.69726685890506,-2.7379201682812226);
bounds.extend(55.38942944437183, -1.2456105979687226);
var center = bounds.getCenter(); // still returns (55.04334815163844, -1.9917653831249726)
var x = bounds.contains(center); // now returns true
Je sais que cet article est vieux, mais je suis venu chercher des réponses ici, alors j'ai pensé à mettre à jour ce que j'ai appris.
Voici comment cela a fonctionné pour moi:
var bounds = new google.maps.LatLngBounds();
bounds.extend(54.69726685890506,-2.7379201682812226);
bounds.extend(55.38942944437183, -1.2456105979687226);
map.fitBounds(bounds);