google-maps google-maps-api-3 google-api google-maps-markers google-maps-api-2

Google Maps API v3 más reciente el mapa a un marcador



google-maps google-maps-api-3 (1)

El método que desea es contiene (), no contieneLatLng (). map.getBounds().contains(marker.getPosition())

Puede usar los métodos setCenter () o panTo () del mapa para centrarse en la posición del marcador: map.setCenter(marker.getPosition()) o map.panTo(marker.getPosition())

Entonces, si entiendo correctamente lo que estás tratando de hacer, debería verse así:

if ((!map.getBounds().contains(marker.getPosition())) && (showAllCategoryElements == 0)) { //Note the double & map.setCenter(marker.getPosition()); //OR map.panTo(marker.getPosition()); }

Estoy buscando una forma de volver a centrar (enfocar) el mapa si un marcador está fuera del mapa. Por ejemplo, si hace clic en un marcador que no está en su área de visualización ... Marcador 1: Nueva York Marcador 2: SanFransisco

en V2 hago de esta manera ... pero para v3, la contieneLatLng necesita una biblioteca extra y no funcionó para mí ... (vea mi otra publicación: Google Maps v3 map.getBounds (). contieneLatLng no es una función ) son ellos ¿Alguna otra manera de enfocar a una posición de marcador?

actualizar:

if ((!map.getBounds().contains(marker.getPosition())) & (showAllCategoryElements == 0)) { var newCenterPointLng = (map.getBounds().getCenter().lng() + marker.getPosition().lng()) / 2; var newCenterPointLat = (map.getBounds().getCenter().lat() + marker.getPosition().lat()) / 2; map.panTo(marker.getPosition()); //map.setCenter(new google.maps.LatLng(newCenterPointLat, newCenterPointLng)); if (!map.getBounds().contains(marker.getPosition())){ map.zoomOut(); } }