请问如何在php文件里面使用Google Map Api计算两个location之间的距离?

89 views
Skip to first unread message

imhui

unread,
Feb 8, 2010, 10:46:34 AM2/8/10
to 谷歌地图 API 论坛
我的项目有一个php文件,负责响应手机客户端的请求,处理数据之后将数据返回给客户端。现在需要实现一个功能是计算两个经纬度之间的距离。
根据提供的api,好像都是javascript的调用实现,我想问一下Google有没有提供类似Google Translate一样的通过url
传递参数,然后返回xml或者json数据的服务?
如果有的话我就可以在php里面将两个location加入url,通过类似file_get_contents这样的函数来获得数据。如果
Google没有提供这样的服务的,那还有没有其他方法可以实现这个功能的?
谢谢。

imhui

unread,
Feb 8, 2010, 9:00:10 PM2/8/10
to 谷歌地图 API 论坛
难道没有人做过类似的需求吗?

Rosen Jiang

unread,
Feb 9, 2010, 1:11:56 AM2/9/10
to google-map...@googlegroups.com
php里面不知道,gmap api倒是提供了,请查阅。

难道没有人做过类似的需求吗?
--
您收到此信息是由于您订阅了 Google 论坛“谷歌地图 API 中文论坛”论坛。
要在此论坛发帖,请发电子邮件到 Google-Map...@googlegroups.com
要退订此论坛,请发邮件至 Google-Maps-API-...@googlegroups.com
更多选项,请通过 http://groups.google.com/group/Google-Maps-API-China?hl=zh-CN 访问该论坛
什么是Google地图API? 请通过 http://code.google.com/intl/zh-CN/apis/maps/index.html 免费将 Google 地图嵌入自己的网页中

Zhu Pengfei

unread,
Feb 9, 2010, 2:47:39 AM2/9/10
to google-map...@googlegroups.com
Ta
That's very easy.
 
First, 根据地址,得到两个点的坐标。然后再用两点公式,等到距离!!
 
 
两点计算公式如下:
 

// 两点间的距离,得到的是半径以KM为
function distance(point1, point2) {
  var R = 6371; // earth's mean radius in km
  var lon1 = point1.lng()* Math.PI / 180;
  var lat1 = point1.lat() * Math.PI / 180;
  var lon2 = point2.lng() * Math.PI / 180;
  var lat2 = point2.lat() * Math.PI / 180;
  var deltaLat = lat1 - lat2
  var deltaLon = lon1 - lon2
  var step1 = Math.pow(Math.sin(deltaLat/2), 2) + Math.cos(lat2) * Math.cos(lat1) * Math.pow(Math.sin(deltaLon/2), 2);
  var step2 = 2 * Math.atan2(Math.sqrt(step1), Math.sqrt(1 - step1));
  return step2 * R;
}
--
  ----------------------------------------------------
   Best Regards
   Justin ( Zhu pengfei)
  skype:justine.zhu.cn
  googltalk : justine.zhu.cn@gmail.com
Reply all
Reply to author
Forward
0 new messages