计算两个城市的里程纬度

时间:2014-09-09 12:33:15

标签: php mysql google-maps latitude-longitude google-latitude

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

之间的距离

Austin,TX 78723:lat:30.282911 long:-97.712541

Austin,TX 78730:lat:30.3732514 long:-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英里

这个数字是正确的?

1 个答案:

答案 0 :(得分:1)

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

google-maps-javascript-API的几何图库也计算9.8英里,所以你可能会认为你的计算是正确的,但你计算的是完全不同的东西。

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