Here Maps JS 有没有开发套索选择的方法?

问题描述 投票:0回答:1

我想在此处地图上开发套索选择。

我之前曾开发过在地图上绘制多边形的功能。简单来说,通过监听pointermove和pointerdown事件;当指针移动时,我更新了 H.map.Polyline 并将 H.map.Marker 放在用户单击事件的单击位置上。在最后阶段,我放置了一个 H.map.Polygon。您可以点击演示链接。 多边形绘制

我现在想做的是称为套索选择的选择方法。我不知道从哪里开始,因为这种绘图方法中的线条不是直的。您还可以查看此链接以获取套索选择示例。 套索示例

如何在此处地图上创建自由格式(非几何)绘图,例如套索选择?我可以在 H.map 中使用哪个组件?

javascript maps here-api heremaps here-olp
1个回答
0
投票

您链接到的演示使用 SVG

<path>
,其中包含许多小步骤。

这是我画的套索线:

您可以看到套索是由许多直线组成的。

这是渲染套索的 SVG 元素:

<path
  class="leaflet-interactive"
  stroke="#00C3FF"
  stroke-opacity="1"
  stroke-width="0"
  stroke-linecap="round"
  stroke-linejoin="round"
  fill="#00C3FF"
  fill-opacity="0.2"
  fill-rule="evenodd"
  d="M115 75L128 62L166 51L184 51L198 57L205 63L213 63L222 59L234 60L258 76L269 91L275 111L275 133L266 153L254 164L212 165L198 162L188 162L175 156L164 141L145 124L135 117L124 113L116 108z"></path>

这意味着您可以使用已经使用的相同渲染技术,只需更频繁地放置点即可。作为起点,您可以为

'pointermove'
事件注册一个事件侦听器,然后每次指针与前一个折线点的距离大于(比方说)40px 时,放置一个新的折线点。

© www.soinside.com 2019 - 2024. All rights reserved.