簡體   English   中英

單張縮放和平移

[英]Leaflet zoom and pan

我覺得這里有點蠢......

我在地圖區域有幾個標記,需要找到一種平移和縮放到這個區域的方法。 目標是能夠一次查看所有標記。

我用這段代碼插入標記:

function plotMarkers(MarkerItems) {
if (MarkerItems) {
    MarkerItems.success(function (data) {
        var len =  data.length;
        for (var i = 0; i < len; i++) {
            m = data[i];

            var XX = parseFloat(m.X.replace(",", "."));
            var YY = parseFloat(m.Y.replace(",", "."));
            var marker = L.marker(new L.LatLng(XX, YY), { icon: blueFlagIcon }).bindPopup("test");
            markers.addLayer(marker);
        }
    });// success
}
}


var markers = new L.featureGroup();
plotMarkers(myMarkers);
map.addLayer(markers);

應該是真的很簡單,我只是不理解它。

請幫忙

查看L.Map.fitBoundsL.FeatureGroup.getBounds 所以你的代碼可能看起來像:

map.fitBounds(markers.getBounds());

但是如果您的MarkerItems.success是異步的(ajax等),您將在向圖層添加標記后調用此代碼。

非常簡單....

只需要添加

map.fitBounds(markers.getBounds());

在.success()內部。

完整的工作代碼:

function plotMarkers(MarkerItems) {
if (MarkerItems) {
MarkerItems.success(function (data) {
    var len =  data.length;
    for (var i = 0; i < len; i++) {
        m = data[i];

        var XX = parseFloat(m.X.replace(",", "."));
        var YY = parseFloat(m.Y.replace(",", "."));
        var marker = L.marker(new L.LatLng(XX, YY), { icon: blueFlagIcon }).bindPopup("test");
        markers.addLayer(marker);
    }

    map.addLayer(markers);
    map.fitBounds(markers.getBounds());

});// success
}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM