latlngbounds google example javascript google-maps google-maps-api-3

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í.