2016-11-17 3 views
-1

Я использую листовку 0.7 и хочу добавить статическую метку, используя плагин leaflet.label.Ярлыки по функциям - ajax call

Я получаю данные с помощью вызова ajax. Я не знаю, где включить функцию onEachFeature для заполнения ярлыков. Я относительно новичок в javascript и думаю, что я немного запутался в этом.

Этот код работает до тех пор, пока я использую layer.bindLabel ('static label'). Но я не могу заполнить его данными из моего вызова ajax. Я знаю, что слой создается перед вызовом ajax и, следовательно, не имеет доступа к данным. Как я могу организовать код для заполнения Label данными из моего вызова ajax?

Любая помощь очень ценится

var pointlayer= new L.GeoJSON(null, { 
    pointToLayer: function (feature, latlng) { 
     return L.marker(latlng, {icon: sandicon}); 
     }, 
     onEachFeature: function (feature, layer) { 
       layer.bindLabel(feature.properties.id, //Dynamic label 
        {noHide:true,direction:'auto'}); 
     }, 
    onEachFeature: function (feature, layer) { 
      layer.bindPopup('Test' + feature.properties.id); 
    } 
}).addTo(map); 

$.ajax({ 
    url: "url", 
    dataType: 'jsonp', 
    cache: false, 
    jsonpCallback: 'getPoint', 
    success: handlePoint, 

}); 

function handlePoint(data) { 
    pointlayer.addData(data); 

}; 

ответ

0

Вы должны связать свой ярлык на маркер, созданный в pointToLayer

EDIT: это не ошибка

Я не уверен, куда вы пошли неправильно, но я оставил рабочий пример здесь:

https://github.com/yafred/ajax-geojson-and-labels (источник)

https://yafred.github.io/ajax-geojson-and-labels/ (веб)

Примечание: L.GeoJSON для листке 1.0, L.GeoJson для листке 0.7

+0

Спасибо за Ваш ответ! Вы имеете в виду это? return L.marker (latlng, {icon: sandicon}). bindLabel (feature.properties.gid, {noHide: true, direction: 'auto'}); Мне все равно не повезло, когда я это пробовал. Однако я могу добавить статическую строковую метку. Это потому, что он не может достичь того свойства, которое вы думаете? Я не получаю никаких ошибок и пустой метки. – geogrow

+0

Да, это то, что я имел в виду. Я пытаюсь создать пример. – YaFred

+0

У меня есть ответ – YaFred