为什么无法在mapbox和googlemaps之间切换底图,我在console.log()中收到此错误:
leaflet-src.js:1981 Uncaught Error: Map container is already initialized.
答案 0 :(得分:0)
加
map.remove();
$('.basemap').append(' <div id="map"></div>');
答案 1 :(得分:0)
您可以使用map.remove
method销毁地图容器。但首先,您需要保留对稍后可以引用的地图的引用。首次创建地图时,请将其指定给var
:
var MBmap = L.mapbox.map('map', 'pokaxperia.pk657nfi').setView([19.432711775616433, -99.13325428962708], 12);
然后,当您切换到Google时,您可以销毁Mapbox地图。将以下内容放入_switchToGoogle
函数:
if (MBmap) {
MBmap.remove();
MBmap = false;
}
将您的_switchToMapbox
功能更改为:
function _switchToMapbox() {
if (!MBmap) {
MBmap = L.mapbox.map('map', 'pokaxperia.pk657nfi').setView([19.432711775616433, -99.13325428962708], 12);
}
}
更新了小提琴:
https://jsfiddle.net/tooy7dsk/2/
请注意,如果您要做的只是切换背景图块(即您不需要其他Google地图功能,例如Streetview),您可以使用{{3}在Mapbox中使用Google图块}。