2013-04-14 4 views
4

Я чувствую себя глупо здесь ...листовка масштабирование и панорамирование

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

вставить маркеры с этим кодом:

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

Должен быть реальный простой, я просто не получить мою голову вокруг него.

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

+0

вы ищете ограничивающий параллелепипед – flup

ответ

1

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

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

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 
}} 
+2

Вот что @tbicr сказал ... – flup

8

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

map.fitBounds(markers.getBounds()); 

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

Смежные вопросы