我创建了一个自定义标记并将其添加到绘图控件工具栏中,如下所示:
L.Draw.myMarker = L.Draw.Marker.extend({
initialize : function(map, options) {
this.type = 'myMarker';
L.Draw.Feature.prototype.initialize.call(this, map, options);
}
});
现在,我可以从绘图控件工具栏中在地图上绘制此标记。
要求:
此外,我需要在数据库中保存所有myMarker的详细信息(latlong,options等)。稍后我需要通过从DB中获取详细信息然后在地图上显示它们来重绘相同的标记。
问题:
我只找到了一个重新创建标记的解决方案:
//Step 1. Extending marker with Marker class
L.myMarker = L.Marker.extend({});
//Step 2. Recreating marker with the persisted data
L.myMarker([lat, long], {}).addTo(map);
但我想创建我之前用工具栏绘制的L.Draw.myMarker
实例。
所以我需要这样的L.Draw.myMarker([lat, long], {}).addTo(map);
答案 0 :(得分:1)
根据您的情况,我认为您将不得不在L.Marker
范围内复制某些自定义标记逻辑,以便能够在Leaflet.draw上下文之外使用它...因为{ {1}}从L.Draw.Marker
(https://github.com/Leaflet/Leaflet.draw/blob/master/src/draw/handler/Draw.Marker.js#L1)延伸,而传单的标记延伸自L.Draw.Feature
(https://github.com/Leaflet/Leaflet/blob/master/src/layer/marker/Marker.js#L5)..So,这不完全是一个明确的继承树在这两者之间取代。