tctc4869
V2EX  ›  问与答

有没有算经纬度坐标的直线距离的工具或网站?

  •  
  •   tctc4869 · Sep 17, 2020 · 4556 views
    This topic created in 2130 days ago, the information mentioned may be changed or developed.

    已知两个经纬度坐标,算出两个经纬度坐标的直线距离,大家知道百度地图和高德地图怎么弄么?或者其他地图软件怎么算?

    当然可以通过第三方地图 api,根据算坐标之间距离的 api 编写代码实现,但是这比较麻烦,有没有现成的工具?

    30 replies    2020-09-18 10:02:42 +08:00
    gimp
        1
    gimp  
       Sep 17, 2020
    WEBUG
        2
    WEBUG  
       Sep 17, 2020 via Android
    pgsql 的坐标插件也可以吧没用过
    auin
        3
    auin  
       Sep 17, 2020
    可以试试 redis 的 geo 数据结构,特别是 GEODIST command

    https://redis.io/commands#geo
    tctc4869
        4
    tctc4869  
    OP
       Sep 17, 2020
    @gimp 也可以
    yggd
        5
    yggd  
       Sep 17, 2020   ❤️ 2
    turf.js
    whileFalse
        6
    whileFalse  
       Sep 17, 2020
    直线距离……如果精度要求不高,用地球半径直接算不行吗
    Astralis
        7
    Astralis  
       Sep 17, 2020
    raptor
        8
    raptor  
       Sep 17, 2020
    以前用地球半径估算过,在中低纬度( 70 度以下)地区准确度还可以,复习一下几何学知识也不错。
    zjqzxc
        9
    zjqzxc  
       Sep 17, 2020
    精度要求不高的话,感觉这就是个用搜索引擎就能解决的数学题..找 API 不太必要吧
    weizhen199
        10
    weizhen199  
       Sep 17, 2020
    @raptor 是因为椭球的关系吗。
    Donss
        11
    Donss  
       Sep 17, 2020
    pgsql 里面的 postgis 可以使用,空间地理计算函数
    Molita
        12
    Molita  
       Sep 17, 2020
    弧长公式呀。。。
    liujavamail
        13
    liujavamail  
       Sep 17, 2020
    GeoHash 么? redis 可以做,postgresql 也可以
    luwies
        14
    luwies  
       Sep 17, 2020
    d(x1,y1,x2,y2)=r*arccos(sin(x1)*sin(x2)+cos(x1)*cos(x2)*cos(y1-y2)),其中,x1,y1 是纬度\经度的弧度单位,r 为地球半径。
    yunser
        15
    yunser  
       Sep 17, 2020
    两个月前做过一个计算距离的小工具,不知道好不好用。
    https://map.yunser.com/distance/calc
    sdshiyan2005
        16
    sdshiyan2005  
       Sep 17, 2020
    带入经纬度和半径直接算 haversine distance
    tctc4869
        17
    tctc4869  
    OP
       Sep 17, 2020
    @maojy1989 谢谢

    高德地图有没有这种示例?
    tctc4869
        18
    tctc4869  
    OP
       Sep 17, 2020
    @yunser 谢谢
    tctc4869
        20
    tctc4869  
    OP
       Sep 17, 2020
    @yunser 我有个问题,你这个通过经纬度定位地图上,是基于哪个坐标系? wgs84?百度地图的 bd09?还是基于高德地图?
    tctc4869
        21
    tctc4869  
    OP
       Sep 17, 2020
    @jucelin 谢谢
    opengps
        22
    opengps  
       Sep 17, 2020 via Android
    就是一段 js 代码,用了球面工时,方法在我的博客里搜
    necomancer
        23
    necomancer  
       Sep 17, 2020
    http://www.xamfksw.com/zgzc/18475.html

    你还是找专门工具吧
    necomancer
        24
    necomancer  
       Sep 17, 2020
    sorry,上面是直接搜图的结果,文章太水了,这个靠谱点 https://zhuanlan.zhihu.com/p/35718920
    这形状大多数小工具是不好用的。
    Rheinmetal
        25
    Rheinmetal  
       Sep 17, 2020
    关键词: 地理信息系统
    精确计算需要了解坐标是哪个标准 对应哪个基准椭球面?
    yunser
        26
    yunser  
       Sep 17, 2020 via iPhone
    @tctc4869 经纬度不加说明,一般默认 WGS-84
    qiayue
        27
    qiayue  
       Sep 17, 2020
    有直接的计算方式,基本准确,大部分场景可用,
    wudicgi
        28
    wudicgi  
       Sep 17, 2020
    可以看下我这篇 blog 里的 PPT, 有标准的半正矢公式,和短距离下更快速的计算公式:
    《查找附近地点的算法 —— Geohash 》
    http://blog.wudilabs.org/entry/9354e9ac/
    yunser
        29
    yunser  
       Sep 17, 2020 via iPhone   ❤️ 1
    @tctc4869 想问一下,你的坐标是什么坐标系的?
    raptor
        30
    raptor  
       Sep 18, 2020
    @weizhen199 椭球是一方面,另一方面是计算精度问题,要高纬度算准也可以,计算量会大一些。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2905 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 112ms · UTC 05:08 · PVG 13:08 · LAX 22:08 · JFK 01:08
    ♥ Do have faith in what you're doing.