2016-11-17 26 views
-1

我正在使用小册子0.7,并且想要使用leaflet.label插件添加静态标签。功能上的标签-ajax调用

我用ajax调用获取数据。我不确定在哪里放置我的onEachFeature函数来填充标签。我相对较新的JavaScript,并认为我对这个有点困惑。

只要使用layer.bindLabel('静态标签'),此代码就可以工作。但我无法用我的ajax调用中的数据填充它。 我知道该层是在ajax调用之前创建的,因此无法访问数据。我该如何安排代码来使用我的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创建

编辑标记:这不是错误

我不知道你在哪里错了,但我在这里留下了一个工作示例:

https://github.com/yafred/ajax-geojson-and-labels(source)

https://yafred.github.io/ajax-geojson-and-labels/(网络)

注:L.GeoJSON是单张1.0,L.GeoJson是单张0.7

+0

感谢您的答复!你是这个意思吗?返回L.marker(latlng,{icon:sandicon})。bindLabel(feature.properties.gid,{noHide:true,direction:'auto'});当我尝试时,仍然没有运气。我可以添加一个静态字符串标签。是因为它无法到达你认为的财产吗?我没有得到任何错误,只是空标签 – geogrow

+0

是的,这是我的意思。我正在设置一个例子。 – YaFred

+0

我已更新答案 – YaFred