Я создал пользовательский маркер и добавить его в панели управления Жеребьевкой так:Перерисовка пользовательских маркеров в листовке
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, опционы и т.д.). Позже мне нужно перерисовать одни и те же маркеры, извлекая данные из БД и затем отображая их на карте.
Проблема:
я нашел только одно решение, чтобы повторно создать маркер, который является:
//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);
вам действительно нужны пользовательские функции маркеров делать, или просто пользовательский значок для маркеров? – snkashis
Я создаю пользовательские маркеры с разными типами. Поэтому мне нужна вся функциональность для создания всплывающих окон на маркеры и все такое. Я могу создавать маркеры и сохранять их положения и детали lat lng в db, но я не могу их перерисовать на основе загрузки карты (из db) из-за вышеупомянутой проблемы. –
Различные типы, что означает что? Я спрашиваю, потому что я думаю, что вы создаете дополнительную сложность, где вам нужны только пользовательские функции 'L.icon', которые поддерживаются как Leaflet.Draw, так и Leaflet сами по себе .. – snkashis