如何在mapbox-gl-js中拖动多边形?

N A*_*tun 7 mapping geojson mapbox mapbox-gl-js

我有一张包含多个多边形的地图。多边形需要在用户单击/拖动时移动/更新。我想要的功能与此示例相同:https ://www.mapbox.com/mapbox-gl-js/example/drag-a-point/

我想让多边形像 mousedown 上的点示例一样可拖动,能够在地图上移动它,在整个事件中更新多边形节点的 x/y 坐标,但在整个拖动过程中保持 geojson 大小不变。

Mapbox 上的点教程效果很好,但我不确定如何使其与多边形一起使用。

Ale*_*der 1

  1. 用于draw.selectionchange捕捉多边形选择/取消选择。记住变量中选定的多边形(事件features属性,很可能是features[0],因为选定的要素位于顶部);如果你想要确切的类型,对于多边形来说是GeoJSON.Feature<GeoJSON.Polygon>
  2. 使用draw.render- 它特别对应于拖动:检查 - 如果变量不为空 - 所需的多边形信息;您可能需要另外检查当前绘制模式(simple_selectdirect_select)以排除错误的触发。在这里做任何你需要做的事;
  3. use draw.update:如果actionmove,它是一个多边形“绘制结束”事件(显然您可以使用记住的变量,但您也可以使用事件features属性)。在这里做任何你需要做的事。