Вызов map.fitbounds () Несколько раз в Google Maps API V3.0

StackOverflow https://stackoverflow.com/questions/3873195

  •  28-09-2019
  •  | 
  •  

Вопрос

Я только что начал использовать API Google Maps (V3.0) и имел до сих пор успешно. Я загружаю набор объектов с значениями широты и долготы из базы данных, передавая их в свой сценарий и зацикливаю их в сценарии, чтобы добавить их на карту.

Я использую "bounds.extend() / map.fitBounds()«Способ установки масштабирования карты и границы (см. код ниже), который работает, как ожидалось, впервые вокруг; однако, если я очищаю существующие маркеры, извлеките еще один набор объектов и делаете то же самое на том же экземпляре карты, он неправильно устанавливает границы, обычно приводящие к минимальному зуму (вид астронавта).

Мое подозрение состоит в том, что моя карта объекта имеет некоторую память о предыдущем наборе границ, которые я ему дал, и что мне нужно найти способ очистить эти границы, прежде чем назначить мои новые, но я действительно не могу быть слишком уверен.

Любая помощь значительно ценится!

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);
Это было полезно?

Решение

Это не ответ, так сказать, но (слегка взлом) обходной путь, который я обнаружил на нить В Google Maps JavaScript API V3 Group:

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

Другие советы

Если вышеупомянутый ответ не работает для вас (это не для меня), проблема может лежать в Bootstrap (предполагая, что вы его используете). Модали Bootstrap специфически генерируют все виды поведения Wanky, когда я встроен объект карты в этом .. Любопытно исправляя себя, если / когда я бросаю «оповещение» там .. В любом случае, я решил все свои проблемы, просто создавая свой собственный модаль (т.е. не использует модали Bootstraps).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top