Масштаб и панорамирование листовки

Я чувствую себя здесь глупо ...

У меня есть несколько маркеров в области карты, и мне нужно найти способ панорамирования и увеличения этой области. Цель - иметь возможность просматривать все маркеры сразу.

Я вставляю маркеры с таким кодом:

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);

Должно быть очень просто, я просто не могу понять это.

Пожалуйста помоги


person Richard Hovdsveen    schedule 14.04.2013    source источник
comment
вы ищете ограничивающую рамку   -  person flup    schedule 15.04.2013


Ответы (2)


Посмотрите на L.Map.fitBounds и L.FeatureGroup.getBounds. Так что, вероятно, ваш код будет выглядеть так:

map.fitBounds(markers.getBounds());

Но если ваш MarkerItems.success асинхронный (ajax и т. Д.), Вы вызовете этот код после добавления маркеров в слой.

person tbicr    schedule 15.04.2013

Довольно просто....

Просто нужно было добавить

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
}}
person Richard Hovdsveen    schedule 15.04.2013