#leaflet #ngx-leaflet
#брошюра #ngx-листовка
Вопрос:
Я законченный нуб, так что потерпите меня, пожалуйста —
В настоящее время пользователи могут добавлять маркеры, и я планирую использовать ondraw
событие, чтобы получить маркер lat / lng и сохранить его в mongodb, однако я не знаю, как получить индивидуальный markerID — ._leaflet_id
возвращает один и тот же идентификатор для каждого маркера. Но если я сгенерирую идентификатор для маркера, используя что-то вроде Date.now()
как я могу извлечь этот идентификатор из базы данных, если пользователь нажмет на маркер? Каждый маркер должен быть уникальным, поскольку для каждого из них будет свой редирект onclick()
.
Спасибо
Комментарии:
1. Не могли бы вы, пожалуйста, исправить свое форматирование?
Ответ №1:
Когда-то у меня была похожая проблема. Что я сделал, так это создал таблицу с [уникальным идентификатором ключа] и другим столбцом в виде markerJson,
var marker = new L.Marker([0, 0]);
// Get the GeoJSON object
var geojson = marker.toGeoJSON();
который имеет следующее
{
"type":"Feature",
**"properties":{},**
"geometry":{
"type":"Point",
"coordinates":[0,0]
}
}
Сохраните приведенный выше json в созданном выше столбце markerjson.
Вы можете видеть в json выше свойства функции «properties»:{}, соответствует ли логика
извлеките из базы данных и добавьте [уникальный идентификатор ключа] в свойства «properties»:{} например
«свойства»:{уникальный идентификатор ключа: 28}, теперь пользователь может получить доступ к уникальному идентификатору из свойств.
Но в приведенном выше случае при создании события у события create есть функция properties{} , просто добавьте _leaflet_id к свойствам с сгенерированным идентификатором с помощью Date.now().