使用 onclick 动作创建点时,是否可以创建与另一个 lineString 垂直的 lineString?

Is it possible to create a perpendicular lineString to another lineString when creating a point with onclick action?

我想在地图上创建另一个点A时,在最近的lineString上创建一个点B。 A 和 B 连接一个 lineString,该 lineString 与最近的 lineString 垂直。我尝试了一些方法,但没有用。我在 Google 上搜索了两个小时,但没有找到问题的解决方案。有人可以帮助我吗?

例如,它可以是这样的: Example

谢谢, 维科

您应该可以使用 Turf 库的 nearestPointOnLine 函数来实现这一点。因此,如果 L 是 LineString 特征,而 A 是新创建的点,那么您将得到如下内容:

    const B = turf.nearestPointOnLine(L, A)
    const tangent = {
        type: 'LineString',
        coordinates: [A.geometry.coordinates, B.geometry.coordinates]
    }
    map.addSource({ type: 'geojson', id: 'tangent', tangent})