多次获得两点之间的距离

时间:2012-03-11 15:20:47

标签: javascript sql google-maps google-maps-api-2

我不得不修复一个关于谷歌地图的旧项目,所以这是在V2。在我的数据库中,我已经拥有了数据库中所有用户的latlng。然后,系统可以创建某些事件(例如,火灾事件)。现在,系统应该能够计算所有用户与火灾事件的距离,并根据他们与该区域的距离列出所有人。我怎样才能做到这一点? fromAddress应该是人们的latlng数组,toaddress是事件的latlng。逻辑必须类似于下面的代码

for(i=0;i<fromAddress.length;i++){
    gdir.load("from: " + fromAddress[i] + " to: " + toAddress,  { "locale": "en" });
    distance = Math.round((gdir.getDistance().meters / 1000)*10)/10;
    duration = Math.round(gdir.getDuration().seconds/60);
    //store distance and duration for output
}

谢谢!

1 个答案:

答案 0 :(得分:1)

有不同的选择:

  1. 当距离不必基于路线时,您不需要任何请求,您可以使用google.maps.geometry.spherical.computeDistanceBetween()计算距离。 在v2中使用distanceFrom
  2. 每个来源/目的地对的
  3. request a directionResult
    (V2:getDistance()
  4. request a DistanceMatrixResult,它允许您通过1个请求检索最多25个结果 (这在V2中不可用,但您可以申请网络服务:http://code.google.com/intl/en/apis/maps/documentation/distancematrix/