Pregunta

he hecho más que empezar con la API de Google Maps (v3.0) y han tenido una buena cantidad de éxito hasta el momento. Estoy cargando un conjunto de objetos con valores de latitud y longitud a partir de una base de datos, que pasarían a ser mi guión, y bucles sobre ellos en la secuencia de comandos con el fin de añadirlos al mapa.

Estoy utilizando el método de "bounds.extend() / map.fitBounds()" de la configuración del zoom del mapa y límites (véase el código de abajo), que funciona como se espera la primera vez; sin embargo, si puedo borrar los marcadores existentes, ir a buscar otro conjunto de objetos, y hacer lo mismo que en la misma instancia mapa , que establece los límites de forma incorrecta, por lo general resulta en un mínimo de zoom (vista de un astronauta ).

Mi sospecha es que mi objeto de mapa tiene algún recuerdo de la anterior serie de límites que le he dado y que tengo que encontrar una manera de eliminar estos límites antes de asignar mis otros nuevos, pero en realidad no puede ser muy seguro.

Cualquier ayuda es muy apreciada!

var locationList = [];
for (var i = 0; i < mapPoints.length; i++) { // mapPoints is a collection of DTOs
    var mapPoint = mapPoints[i];
    var location = new google.maps.LatLng(mapPoint.Latitude, mapPoint.Longitude);
    locationList.push(location);

    var marker = new google.maps.Marker({
        map: map,
        icon: '/Content/images/map/' + mapPoint.Status.Icon,
        shadow:  '/Content/images/map/shadow.png',
        position: location
    });
    markers.push(marker); // markers is an Array that is managed outside this loop
}

var bounds = new google.maps.LatLngBounds();
for (var j = 0; j < locationList.length; j++) 
    bounds.extend(locationList[j]);
map.fitBounds(bounds);
¿Fue útil?

Solución

Esta no es la respuesta, por así decirlo, pero una (un poco hacky) solución que descubrí en un hilo en el grupo versión 3 del API JavaScript de Google Maps:?

//map.fitBounds(bounds);
setTimeout( function() { map.fitBounds( bounds ); }, 1 ); 

Otros consejos

Si la respuesta anterior no funciona (no lo hizo para mí), el problema podría estar en arranque (asumiendo que usted está usando). modales de arranque generan específicamente todo tipo de comportamiento poco firme cuando lo integrar un objeto de mapa en ella .. curiosamente corregirse si / cuando se me cae una 'alerta' en ese país .. En cualquier caso, he resuelto todos mis problemas con sólo la construcción de mi propia modal (es decir, no utilizando bootstraps modales).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top