功能标签 - ajax调用

时间:2016-11-17 15:28:33

标签: javascript ajax leaflet

我正在使用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);

};

1 个答案:

答案 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