簡體   English   中英

在傳單中重新繪制自定義標記

[英]Redrawing custom marker in leaflet

我創建了一個自定義標記,並將其添加到繪制控制工具欄中,如下所示:

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等)。 稍后,我需要通過從數據庫獲取詳細信息然后在地圖上顯示它們來重繪相同的標記。

問題:

我只找到一種重新創建標記的解決方案:

//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);

考慮到您的情況,我認為您將必須在L.Marker擴展的內容中復制一些自定義標記邏輯,以便能夠在Leaflet.draw上下文之外使用它...因為L.Draw.Marker擴展了來自L.Draw.Featurehttps://github.com/Leaflet/Leaflet.draw/blob/master/src/draw/handler/Draw.Marker.js#L1 ),而Leafet的標記則來自L.Layerhttps http://github.com/Leaflet/Leaflet/blob/master/src/layer/marker/Marker.js#L5)..因此 ,要覆蓋這兩者之間的東西,這並不是一個清晰的繼承樹。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM