在传播标记时,传单不会获取所有数据

时间:2017-07-20 16:12:29

标签: javascript leaflet leaflet.markercluster

我通过设置两个now属性扩展了我的传单对象:      - 价值      - 姓名

var customMarker = L.Marker.extend({
                options: {
                name: '',
                value: ''
                }
             });

然后我称之为这个方法:

L.geoJson(centroids,{
              pointToLayer: function(feature,geometry){
                var marker = new customMarker(geometry);
                marker.value = donnees[feature.properties.Index];
                marker.name = feature.properties.Index;
                console.log("name : "+marker.name+" volume : "+marker.volume)
                return marker;
              }
        });

但我注意到并非所有的marker.value都存储在我的标记中。有些人身份不明。

2 个答案:

答案 0 :(得分:1)

您正在做的是在扩展的L.Marker中创建新选项。您可以在标记的实例化过程中设置选项。简单的例子:

// Instanciating regular L.Marker with custom option:
var marker = new L.Marker([0,0], {
    customValue: true
});
console.log(marker.options.customValue); //true

事情是,如果您只需要一些自定义选项,则无需扩展L.Marker,但您可以使用自定义选项简单地实现L.Marker:

{{1}}

当您需要自定义选项的默认值时,您只需要扩展L.Marker。

答案 1 :(得分:1)

看起来只是JS问题。在您的donnes数组中,您不会拥有您尝试访问的所有索引

marker.value = donnees[feature.properties.Index];

这就是marker.value中未定义的原因 检查donnees[feature.properties.Index]是否未定义,只返回正确的标记