如何在mapbox和谷歌地图之间切换

时间:2016-04-07 23:11:27

标签: javascript google-maps leaflet mapbox

为什么无法在mapbox和googlemaps之间切换底图,我在console.log()中收到此错误:

leaflet-src.js:1981 Uncaught Error: Map container is already initialized.

Example

2 个答案:

答案 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图块}。