我想在此处地图上开发套索选择。
我之前曾开发过在地图上绘制多边形的功能。简单来说,通过监听pointermove和pointerdown事件;当指针移动时,我更新了 H.map.Polyline 并将 H.map.Marker 放在用户单击事件的单击位置上。在最后阶段,我放置了一个 H.map.Polygon。您可以点击演示链接。 多边形绘制
我现在想做的是称为套索选择的选择方法。我不知道从哪里开始,因为这种绘图方法中的线条不是直的。您还可以查看此链接以获取套索选择示例。 套索示例
如何在此处地图上创建自由格式(非几何)绘图,例如套索选择?我可以在 H.map 中使用哪个组件?
您链接到的演示使用 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 时,放置一个新的折线点。