У меня есть Угловая сервисная функция, чтобы построить MapBox карту как так:MapBox карта уже инициализирована
app.service("MapService", [function(){
//mapbox vars
var map = {
minZoom: 11,
id: "xxxxxxxx",
token: "xxxxxxxx"
};
//build map
this.buildMap = function(lat, lon, zoom){
//map bounds
var southWest = L.latLng(54.04407014753034, -0.745697021484375),
northEast = L.latLng(53.45698455620496, -2.355194091796875),
bounds = L.latLngBounds(southWest, northEast);
//build map object
L.mapbox.accessToken = map.token;
map.obj = L.mapbox.map("map", map.id, {
maxBounds: bounds,
zoomControl: false,
minZoom: map.minZoom,
attributionControl: false
}).setView([lat, lon], zoom, {
pan: { animate: true },
zoom: { animate: true }
});
}
}]);
Это просто заполняет DIV:
<div id="map"></div>
Когда я иду к новому углового зрения и вызвать эту функцию снова (для заполнения новой div
с идентификатором map
с картой) он дает мне ошибку:
Map container is already initialized
Как решить эту проблему?
Это избавляется от Erro r, но не восстанавливает карту. Я просто получаю пустой контейнер карты во второй загрузке. Я обнаружил, что добавление тайм-аута 100 мс при построении карты после загрузки маршрута. Должно быть связано с контроллером, выполняющим служебную функцию, до того, как DOM обновил новое представление. – Coop
Это спасло мою задницу на работе. Благодаря! –