Как сохранить маркеры (с идентификатором) и заполнить карту для каждого пользователя с помощью mongodb?

#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().