计算英里基纬度两个城市
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 地图。跨度>以上是关于计算英里基纬度两个城市的主要内容,如果未能解决你的问题,请参考以下文章
CLLocationDistance,两个纬度和经度之间的英里和英尺给我iOS的错误值?