javascript - 扩展标记时传单未获取所有数据

标签 javascript leaflet leaflet.markercluster

我通过设置两个 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/

相关文章:

javascript - HTML5 Canvas - 重复所有 Canvas 大小的文本

javascript - 尝试从助手导入 HTML,但 Rails 不喜欢它

javascript - 如何在.net core web api项目中加载swagger UI后加载javascript文件

javascript - Leaflet 1.0.0-rc3 removeFrom()方法导致 "is not a function"错误

javascript - 在 leaflet LayerGroup 中的单个标记上触发事件

javascript - 传单 map 标记簇不显示图标

javascript - jQuery 可拖动 - 只记住第一次拖动

leaflet - GeoJSON 图层更改后刷新标记集群

leaflet - 如何一次在传单标记中打开多个弹出窗口

r - 导出带有固定缩放和边界框的传单 map ,无需填充