我通过设置两个 now 属性来扩展我的传单对象: - 值(value) - 姓名
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都存储在我的标记中。有些具有未识别的值(value)。
最佳答案
您正在做的是在扩展的 L.Marker 中创建新选项。您可以在标记实例化期间设置选项。简单的例子:
// Extending marker with custom option
L.Marker.Custom = L.Marker.extend({
options: {
customValue: false
}
});
// Instanciating without custom option:
var marker = new L.Marker.Custom([0,0]);
console.log(marker.options.customValue); //false
// Instanciating with custom option:
var marker = new L.Marker.Custom([0,0], {
customValue: true
});
console.log(marker.options.customValue); //true
事实是,如果您只需要一些自定义选项,则无需扩展 L.Marker,但您可以简单地使用自定义选项实例化 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。
关于javascript - 扩展标记时传单未获取所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45220086/