【问题标题】:Calculate distance of a roadway segment计算道路段的距离
【发布时间】:2018-10-29 06:04:53
【问题描述】:

我想计算一段路段的距离。我将段数据作为多边形。如何用 javascript 做到这一点?

示例片段图像

我知道使用geolib npm 模块可以计算两点之间的距离。但是我想计算段多边形的距离。

geolib.getDistance(
    {latitude: 38.837409, longitude: -106.147765},
    {latitude: 38.840000, longitude: -106.138806}
);

更新:

在 PostGIS 中有 ST_MaxDistance 函数来计算投影度数的距离。有没有办法从ST_MaxDistancefunction 获取以米为单位的距离?

【问题讨论】:

    标签: javascript maps mapbox postgis


    【解决方案1】:

    这很简单。
    只需按照以下步骤操作:

    1. 以正确的顺序将所有距离点推入一个数组。
    2. 逐一迭代它们以获得两个点之间的距离并将它们相加。

    代码如下:

    let result = 0
    let points = []
    
    // These points are for example
    points.push({ latitude:0, longitude:0 }, { latitude: 3, longitude: 4}, {latitude: 15, longitude: 9})
    
    
    for (let i=0; i<points.length-1; i++) {
        result += geolib.getDistance(points[i], points[i+1])
    }
    
    console.log(result) // result should be 18 in this case
    

    它应该可以解决您的问题,试试这个。

    【讨论】:

    • 我需要在这种方法中给出所有的多边形点吗?谷歌地图中是否有任何可用的 API 来实现这一点?
    • 谷歌地图通常只提供与地图项交互的方式,我认为你应该自己使用javascript编写逻辑。
    • 是的,您应该将路径中的所有点放入一个数组中,以便计算每两个点之间的距离并将它们相加。
    • 好的@Arel我认为您的解决方案将带来整个折线的距离,这将是距离的两倍多。我想要从段开始到结束的距离。
    • 我觉得不行,你试过了吗?它计算从开始到结束的长度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2016-06-22
    • 1970-01-01
    相关资源
    最近更新 更多