У меня есть Карта , где я отображаю Маркеры всякий раз, когда пользователь нажимает на карту, чтобы нарисовать Полигон . Теперь я хочу разрешить пользователю редактировать уже установленный маркер. Это означает, что он должен щелкнуть маркер и перетащить его в нужное место
Чтобы отредактировать позицию только одного Маркера, мне нужно идентифицировать один Маркер, который перетаскивается, чтобы передать измененную позицию соответствующему Маркеру.
Я пытаюсь сделать это внутри моего eventHandler, потому что здесь я могу получить дополнительную информацию для маркера. Вот один из моих обработчиков и обработчиков, где должно происходить все обновление позиции.
[EventUtils.DRAG_END]: (event, details) => {
const target = event.target;
if (target instanceof H.map.Marker) {
this.disableMapBehaviour = false;
const id = target.getId();
this.props.onDrag(details.calculateGeoCoords(), id);
this.forceUpdate();
}
Моя проблема в том, что функция getId()
всегда дает мне случайные идентификаторы. Когда я устанавливаю 10 маркеров, например, так выглядит последовательность идентификатора маркера:
- 1 Маркер имеет ID 2
- 2 Маркер имеет ID 3
- 3 Маркер имеет ID 5
- 4 Маркер имеет идентификатор 6 ... а остальные всегда разные.
Почему Карта устанавливает идентификатор случайно, а не как 1,2,3,4,5 ...?
Или что я делаю не так? Должен ли я использовать что-то еще, кроме event.target.getId()