javascript - example - Google Maps v3: ¿Por qué LatLngBounds? Contiene devolver falso
google maps latlngbounds (3)
Ah, brillante. El constructor google.maps.LatLngBounds
espera los parámetros SouthWest y NorthEast LatLng
. De alguna manera, he desorientado mis coordenadas y he pasado en el noroeste y sureste en su lugar.
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
Lección aprendida: a getCenter
no le importa si creó LatLngBounds
con NorthWest y LatLngBounds
en su lugar, pero si quiere que contains
una respuesta útil, ¡mejor pase el SouthWest y NorthEast sugeridos!
Tengo el siguiente código en el que esperaría que el método contiene devuelva verdadero, pero devuelve falso:
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
En la misma página, donde map es una referencia al objeto Map, el siguiente código devuelve verdadero como se esperaba:
map.getBounds().contains(map.getBounds().getCenter())
¿Por qué mi llamada a los bounds.contains
devuelve falso?
Esta es la forma en que funcionó para mí:
var bounds = new google.maps.LatLngBounds();
bounds.extend(54.69726685890506,-2.7379201682812226);
bounds.extend(55.38942944437183, -1.2456105979687226);
map.fitBounds(bounds);
Supongo que es más fácil probar esto. Funciona para mí sin tener que preocuparme por 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
Sé que esta publicación es antigua, pero vine buscando respuestas aquí, así que pensé en actualizar por lo que aprendí.