如何在地图上识别设置的标记?

时间:2019-04-26 19:54:17

标签: javascript reactjs here-api

我有一个地图,每当用户单击地图以绘制多边形时,我都会在其中显示标记。现在,我想允许用户编辑已经设置的标记。这意味着他应该能够轻拂标记并将其拖动到所需位置。

为了只编辑一个标记的位置,我需要标识一个要拖动的标记,以便将更改的位置传递到相应的标记。

我正在尝试在我的eventHandler中执行此操作,因为在这里我可以获得有关Marker的更多信息。这是我的处理程序之一,也是应该进行所有位置更新的处理程序。

[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()函数总是给我随机ID。例如,当我设置10个标记时,标记ID的顺序如下:

  • 1个标记的ID为2
  • 2个标记的ID为3
  • 3个标记的ID为5
  • 4个标记的ID为6 ...,其余的总是不同的。

为什么地图会随机设置ID,而不像1,2,3,4,5 ...?

还是我做错了什么?我是否应该使用event.target.getId()

以外的其他东西

1 个答案:

答案 0 :(得分:1)

摘要:地图不会随机设置ID。是我在拖动完成后没有拼接标记数组的。现在可以与getId()正常工作