【问题标题】:Leaflet : Map container is already initializedLeaflet:地图容器已经初始化
【发布时间】:2015-05-26 18:50:31
【问题描述】:

用户在文本字段中输入一些地址(海得拉巴,Telanagna)并点击“前往”按钮

我正在从谷歌地图 API 中获取 latitude_res 和经度,如下所示

$(document).on('click', '.gobtn', function(event) {
    $.getJSON('https://maps.googleapis.com/maps/api/geocode/json?address=' + address + '', function(data) {
        latitude_res = data.results[0].geometry.location.lat;
        longitude_res = data.results[0].geometry.location.lng;
    }).done(function() {
    });

});

我可以从谷歌 API 获取纬度和经度,例如我得到了以下值

**17.385044
78.910965**

然后我再次进行 Ajax 调用以获取我们数据库中此位置的所有标记。

最后初始化地图如下所示

initializeMap(lator,lonor,markers);


function initializeMap(lator, lonor, markers) {

    var map = new L.Map('map_canvas', {
        center: new L.LatLng(lator, lonor),
        zoom: 5 
    });
    var ggl = new L.Google();
    var ggl2 = new L.Google('ROADMAP');
    map.addLayer(ggl2);
    if (markers.length > 0) {
        var markers_leafcontainer = new L.MarkerClusterGroup();
        var markersList = [];
        for (var i = 0; i < markers.length; i++) {
           var lat = parseFloat(markers[i].latitude);
            var lng = parseFloat(markers[i].longititude);
            var trailhead_name = markers[i].address;
            var dealerId = markers[i].dealerID_db;
            var dealername = markers[i].dealerName_db;
            var contentString = "<html><body><div><p><h2>" + dealername + "</h2></p></div></body></html>";
            var marker = L.marker(new L.LatLng(lat, lng), {}).on('click', onClick);
            $(".howmanyfound").text(markers.length + ' Found');
            markers_leafcontainer.addLayer(marker);
        }
        map.addLayer(markers_leafcontainer);
        map.fitBounds(markers_leafcontainer.getBounds()); //set view on the cluster extent

    }     
    }

这只是第一次工作,从那里我得到未捕获的错误:地图容器已经初始化。

我在谷歌地图上使用传单

【问题讨论】:

  • 什么是“从那里开始”?接下来会发生什么?
  • @JonatasWalker ,问题是当用户重新键入一些地址并单击 onn go 按钮时,我在浏览器控制台中收到以下异常 Uncaught Error: Map container is already initialized。
  • 所以,你可以试试:var map = L.Map('map_canvas'); initializeMap(lator,lonor,markers); function initializeMap(lator, lonor, markers) { map.setView(L.latLng(lator, lonor));
  • 好的,非常感谢。
  • 您不应该接受正确的答案吗?

标签: leaflet


【解决方案1】:

所以,不要在你的函数中初始化地图。

var map = new L.Map('map_canvas');
initializeMap(lator,lonor,markers);

function initializeMap(lator, lonor, markers) {
    map.setView(L.latLng(lator, lonor));


}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 2022-12-17
    相关资源
    最近更新 更多