Leaflet 传单从geojson标记获取自定义选项
我正在尝试单击geojson marker的自定义选项。如果我在地图中创建marker,我可以这样做。但是当我从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({
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);