varios multiple marcadores icon google example agregar addlistener google-maps google-maps-api-3

google maps - multiple - Google map V3 Set Center para Marker específico



google maps multiple markers (5)

Estoy usando Google Map V3 para mostrar una lista de marcadores extraídos de un DB, usando MYsql y PHP. MIS marcadores están configurados en el mapa usando la dirección completa (de DB, incluido el código postal) ya que no tengo Long, Lat info All está funcionando bien, MY loop se ve como sigue

while... Addmarker(map,''MY ADdress'',''Title''); end while;

Ahora me gustaría establecer el mapa en un marcador específico contenido en el bucle que coincidirá con un código postal previamente ingresado. ¿Cómo puedo configurar el mapa para centrarme en este marcador y abrir la ventana de información?


¡Esto debería funcionar!

google.maps.event.trigger(map, "resize"); map.panTo(marker.getPosition()); map.setZoom(14);

Necesitarás tener tus mapas globales


Para construir sobre la respuesta de @ 6twenty ... Prefiero panTo (LatLng) sobre setCenter (LatLng) como panTo anima para una transición más suave al centro "si el cambio es menor que el ancho y alto del mapa". https://developers.google.com/maps/documentation/javascript/reference#Map

A continuación se usa Google Maps API v3.

var marker = new google.maps.Marker({ position: new google.maps.LatLng(latitude, longitude), title: markerTitle, map: map, }); google.maps.event.addListener(marker, ''click'', function () { map.panTo(marker.getPosition()); //map.setCenter(marker.getPosition()); // sets center without animation });


Una vez que tenga marcadores en el mapa, puede recuperar las coordenadas Lat / Long a través de la API y usar esto para establecer el centro del mapa. Lo primero que debes hacer es determinar en qué marcador quieres centrarte; te lo dejo a ti.

// "marker" refers to the Marker object you wish to center on var latLng = marker.getPosition(); // returns LatLng object map.setCenter(latLng); // setCenter takes a LatLng object

Las ventanas de información son objetos separados que normalmente están vinculados a un marcador, por lo que para abrir la ventana de información, puede hacer algo como esto (sin embargo, dependerá de su código):

var infoWindow = marker.infoWindow; // retrieve the InfoWindow object infoWindow.open(map); // Trigger the "open()" method

Espero que esto ayude.


tal vez esto ayude:

map.setCenter(window.markersArray[2].getPosition());

toda la información de los marcadores está en markersArray array y es global. Entonces puede acceder desde cualquier lugar usando window.variablename. Cada marcador tiene una identificación única y puedes poner esa identificación en la clave de la matriz. entonces creas un marcador como este:

window.markersArray[2] = new google.maps.Marker({ position: new google.maps.LatLng(23.81927, 90.362349), map: map, title: ''your info '' });

Espero que esto ayude


geocoder.geocode( { ''address'': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { map.setCenter(results[0].geometry.location); var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); } else { alert(''Geocode was not successful for the following reason: '' + status); } });