我正在使用leaflet 0.7并希望使用leaflet.label插件添加静态标签。
我通过ajax调用获取数据。我不知道在哪里放置我的onEachFeature函数来填充标签。我对javascript相对较新,并且认为我对此有点困惑。
只要我使用layer.bindLabel('静态标签'),此代码就可以正常工作。但我不能用我的ajax调用中的数据来填充它。 我知道该层是在ajax调用之前创建的,因此无法访问数据。如何安排代码用我的ajax调用中的数据填充Label?
非常感谢任何帮助
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 :(得分:0)
您必须将标签绑定到pointToLayer
中创建的标记编辑:这不是错误
我不确定你哪里出错但我在这里留下了一个有效的例子:
https://github.com/yafred/ajax-geojson-and-labels(来源)
https://yafred.github.io/ajax-geojson-and-labels/(网络)
注意:L.GeoJSON适用于传单1.0,L.GeoJson适用于传单0.7