Как определить маркер набора на карте? - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть Карта , где я отображаю Маркеры всякий раз, когда пользователь нажимает на карту, чтобы нарисовать Полигон . Теперь я хочу разрешить пользователю редактировать уже установленный маркер. Это означает, что он должен щелкнуть маркер и перетащить его в нужное место

Чтобы отредактировать позицию только одного Маркера, мне нужно идентифицировать один Маркер, который перетаскивается, чтобы передать измененную позицию соответствующему Маркеру.

Я пытаюсь сделать это внутри моего 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()

...