Leaflet 传单从geojson标记获取自定义选项

Leaflet 传单从geojson标记获取自定义选项,leaflet,marker,geojson,Leaflet,Marker,Geojson,我正在尝试单击geojson marker的自定义选项。如果我在地图中创建marker,我可以这样做。但是当我从geojson获取时,我的代码是: function onClick(e) { get_marker(this.options.marker_id); //geojson.features[64].options.marker_id) } get_marker()接受标记的自定义id,我将其定义为如下自定义标记 customMarker = L.Marker.extend({

我正在尝试单击geojson marker的自定义选项。如果我在地图中创建marker,我可以这样做。但是当我从geojson获取时,我的代码是:

function onClick(e) {
get_marker(this.options.marker_id);
//geojson.features[64].options.marker_id)  
}
get_marker()接受标记的自定义id,我将其定义为如下自定义标记

customMarker = L.Marker.extend({
       options: { 
          marker_id: 'Custom data!',
          name: '',
          category: '',
          information: '',
          owner: ''
       }
    });
map.on('click', function(e) {   
        newMarker[i] = new customMarker (e.latlng, {
            draggable : true,
            marker_id : 'new'
        }).addTo(map);
        newMarker[i].on('click', onClick);

    newMarker[i].bindPopup("<b>Hello world!</b><br />I am a popup.");
            //.openPopup();
    save_marker(newMarker[i]);
    //$(".bilgi").val(newMarker.getPopup().getContent());
    i++;
}); 
我在地图上创建了这样的标记

customMarker = L.Marker.extend({
       options: { 
          marker_id: 'Custom data!',
          name: '',
          category: '',
          information: '',
          owner: ''
       }
    });
map.on('click', function(e) {   
        newMarker[i] = new customMarker (e.latlng, {
            draggable : true,
            marker_id : 'new'
        }).addTo(map);
        newMarker[i].on('click', onClick);

    newMarker[i].bindPopup("<b>Hello world!</b><br />I am a popup.");
            //.openPopup();
    save_marker(newMarker[i]);
    //$(".bilgi").val(newMarker.getPopup().getContent());
    i++;
}); 
map.on('click',函数(e){
newMarker[i]=新的customMarker(如latlng{
真的,
marker_id:'新'
}).addTo(地图);
新标记[i]。在('click',onClick');
newMarker[i].bindPopup(“你好,世界!
我是一个弹出窗口。”); //.openPopup(); 保存标记(newMarker[i]); //$(“.bilgi”).val(newMarker.getPopup().getContent()); i++; });

我无法在geojson点中获取marker_id选项。当我设置geojson.features[64]时.options.marker\u id作为get\u marker参数可以工作。但我无法控制单击哪个标记。可能我必须将geojson定义为自定义标记,但我不知道。我如何解决这个问题?

我解决了我的问题。当我尝试获取geojson数据时,我创建了自定义标记并给出了标记id,现在它可以工作了。现在我想使用不同的标记打字很难。当您以用户身份在地图中创建标记并从服务器获取geojson标记时,必须使用相同的标记类型。所以使用相同的标记类型更好

L.geoJson(data, {
        onEachFeature : function(feature, layer) {
            var popupContent = "marker_id = " + feature.options.marker_id;
            if (feature.properties && feature.properties.popupContent) {
                popupContent += feature.properties.popupContent;
            }
            layer.bindPopup(popupContent);
            layer.on('click', onClick);
        },
        pointToLayer : function(feature, latlng) {
            return new customMarker(new L.LatLng(feature.geometry.

            coordinates[1], feature.geometry.coordinates[0]), {
                marker_id : feature.options.marker_id
            });
        }
    }).addTo(map);