Leaflet:Map容器​​已初始化

时间:2015-05-26 10:22:24

标签: leaflet

用户在文本字段中键入一些地址(Hyderabad,Telanagna)并单击Go按钮

我从google Map 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() {
    });

});

我可以从google 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

    }     
    }

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

我正在使用带有谷歌地图的传单

1 个答案:

答案 0 :(得分:7)

所以,不要在你的功能中初始化地图。

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

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


}