已知两个经纬度坐标,算出两个经纬度坐标的直线距离,大家知道百度地图和高德地图怎么弄么?或者其他地图软件怎么算?
当然可以通过第三方地图 api,根据算坐标之间距离的 api 编写代码实现,但是这比较麻烦,有没有现成的工具?
1
gimp 2020-09-17 08:41:07 +08:00
|
2
WEBUG 2020-09-17 08:44:51 +08:00 via Android
pgsql 的坐标插件也可以吧没用过
|
3
liuxey 2020-09-17 08:46:30 +08:00
|
5
yggd 2020-09-17 08:56:39 +08:00 2
turf.js
|
6
whileFalse 2020-09-17 09:09:45 +08:00
直线距离……如果精度要求不高,用地球半径直接算不行吗
|
7
maojy1989 2020-09-17 09:12:13 +08:00
|
8
raptor 2020-09-17 09:16:30 +08:00
以前用地球半径估算过,在中低纬度( 70 度以下)地区准确度还可以,复习一下几何学知识也不错。
|
9
zjqzxc 2020-09-17 09:16:53 +08:00
精度要求不高的话,感觉这就是个用搜索引擎就能解决的数学题..找 API 不太必要吧
|
10
weizhen199 2020-09-17 09:21:03 +08:00
@raptor 是因为椭球的关系吗。
|
11
Donss 2020-09-17 09:21:08 +08:00
pgsql 里面的 postgis 可以使用,空间地理计算函数
|
12
Molita 2020-09-17 09:21:10 +08:00
弧长公式呀。。。
|
13
liujavamail 2020-09-17 09:36:10 +08:00
GeoHash 么? redis 可以做,postgresql 也可以
|
14
luwies 2020-09-17 09:47:06 +08:00
d(x1,y1,x2,y2)=r*arccos(sin(x1)*sin(x2)+cos(x1)*cos(x2)*cos(y1-y2)),其中,x1,y1 是纬度\经度的弧度单位,r 为地球半径。
|
15
yunser 2020-09-17 09:48:15 +08:00
两个月前做过一个计算距离的小工具,不知道好不好用。
https://map.yunser.com/distance/calc |
16
sdshiyan2005 2020-09-17 09:54:33 +08:00
带入经纬度和半径直接算 haversine distance
|
19
jucelin 2020-09-17 10:08:32 +08:00
|
20
tctc4869 OP @yunser 我有个问题,你这个通过经纬度定位地图上,是基于哪个坐标系? wgs84?百度地图的 bd09?还是基于高德地图?
|
22
opengps 2020-09-17 10:35:13 +08:00 via Android
就是一段 js 代码,用了球面工时,方法在我的博客里搜
|
23
necomancer 2020-09-17 11:53:29 +08:00
|
24
necomancer 2020-09-17 11:56:07 +08:00
sorry,上面是直接搜图的结果,文章太水了,这个靠谱点 https://zhuanlan.zhihu.com/p/35718920
这形状大多数小工具是不好用的。 |
25
Rheinmetal 2020-09-17 12:27:59 +08:00
关键词: 地理信息系统
精确计算需要了解坐标是哪个标准 对应哪个基准椭球面? |
27
qiayue 2020-09-17 12:33:59 +08:00
有直接的计算方式,基本准确,大部分场景可用,
|
28
wudicgi 2020-09-17 12:45:02 +08:00
可以看下我这篇 blog 里的 PPT, 有标准的半正矢公式,和短距离下更快速的计算公式:
《查找附近地点的算法 —— Geohash 》 http://blog.wudilabs.org/entry/9354e9ac/ |
30
raptor 2020-09-18 10:02:42 +08:00
@weizhen199 椭球是一方面,另一方面是计算精度问题,要高纬度算准也可以,计算量会大一些。
|