计算英里基纬度两个城市

Posted

技术标签:

【中文标题】计算英里基纬度两个城市【英文标题】:Calculate miles base latitude two cities 【发布时间】:2014-09-09 12:33:15 【问题描述】:

我写了一个函数计算城市基地https://developers.google.com/maps/articles/phpsqlsearch_v3?csw=1之间的距离

奥斯汀,德克萨斯州 78723:纬度:30.282911 经度:-97.712541

奥斯汀,德克萨斯州 78730:纬度:30.3732514 经度:-97.8395151

insert 78730 into market and run sql:
SELECT *, ( 3959 * acos( cos( radians(30.305107) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-97.686631) ) + sin( radians(30.305107) ) * sin( radians( lat ) ) ) ) AS distance FROM markers ORDER BY distance LIMIT 0 , 20;

return 9.8 mile

但在网站http://maps.randmcnally.com/?s=screen&loc1=Austin%2C%20TX%2078723&loc2=Austin%2C%20TX%2078730#s=screen&lat=39.11339950561523&lon=-94.62660217285156&zoom=9&loc1=Austin%2C%20TX%2078723&loc2=Austin%2C%20TX%2078730&loc3=&loc4=&loc5=&loc6=&loc7=&loc8=&loc9=&loc10= 返回 18 英里

谷歌地图:19.2 英里

哪个数字是正确的?

【问题讨论】:

根据this,答案是 9.8242 法定里程,但需要注意的是:This calculation assumes the earth is a perfect sphere with a radius of 3963.1 statute miles。其他人可能正在制作different assumptions。 【参考方案1】:

您计算的是乌鸦飞行的距离,两者(谷歌地图和其他服务)都根据路线(例如驾驶)计算距离。

google-maps-javascript-API 的几何库也计算 9.8 英里,因此您可以假设您的计算是正确的,但您计算的是完全不同的东西。

两种服务的不同结果可能基于不同的路线或不同的算法

【讨论】:

+1 。 . .好吧,不像“乌鸦飞”。这将使半径增加一些。更像是超级蚯蚓爬行没有偏差? 好吧,乌鸦走过去 ;) 我想通过汽车或巴士路线计算距离。有什么算法可以解决吗? 如果您想计算行驶距离,您要么需要路线数据库并遍历有向图,要么需要为现有服务使用 API,例如 Bing 或 Google 地图。跨度>

以上是关于计算英里基纬度两个城市的主要内容,如果未能解决你的问题,请参考以下文章

计算两个纬度和经度坐标之间的距离

在mysql中计算哪些点(纬度,经度)在一定距离内?

计算从经纬度到公里和英里的距离

CLLocationDistance,两个纬度和经度之间的英里和英尺给我iOS的错误值?

C# 在 Linq 查询 WHERE 语句中返回两个纬度/经度坐标之间的计算距离

两个纬度/经度表之间的距离计算