计算路线长度

时间:2010-04-20 07:49:29

标签: iphone iphone-sdk-3.0 mapkit core-location

我有一张大约有80个注释的地图。我想做3件事。

1)从我目前的位置,我想知道到那个位置的实际路线距离。不是线性距离。

2)我希望能够显示所有注释的列表,但是对于每个注释(有lon / lat),我想知道从我的位置到该位置的实际路线距离。

3)我想知道使用路线距离的最近注释。不是直线距离。

我认为所有这三点的答案都是一样的。但请记住,我不想创建路线,我只想知道注释的距离。

我希望有人可以帮助我。

祝你好运, 保罗佩伦

3 个答案:

答案 0 :(得分:2)

根据我对你的帖子的理解,我相信你会找到Haversine formula。对你来说幸运的是,有一些Objective-C implementations,但是一旦公式出现在你面前,写下你自己的东西是微不足道的。

我最初删除了这个,因为我没有注意到你最初并不想要线性距离,但是如果你认为近似值在那个特定点上足够好,我会把它带回去。用户互动。

答案 1 :(得分:1)

我认为如前所述,如果您执行的正是您所说的话,那么您对谷歌地图API的查询将非常繁重。您是否一次需要所有这些信息?也许首先根据一些启发式或用户需求来查询一些距离就足够了。

要获取距离,您可以使用Google地图GDirections对象...指出here(在页面底部有“路线和步骤 “部分,advanced example

The GDirections object also supports multi-point directions, which can be constructed using the GDirections.loadFromWaypoints() method. This method takes an array of textual input addresses or textual lat/lon points. Each separate waypoint is computed as a separate route and returned in a separate GRoute object, each of which contains a series of GStep objects.

在iPhone中使用Google Maps API应该不会太困难,我认为您的问题并未涵盖这一点,但如果您需要一些基本示例,则可以查看this问题并滚动回答。

祝你好运!

答案 2 :(得分:0)

计算到大约80个地点的路线距离肯定是谷歌计算密集型的,我无法想象您能够向Google Maps API提出这些请求,是否可以在移动设备上执行此操作,不受服务器上的电话连接或速率限制的严重限制。

不幸的是,计算路线距离而不是几何距离是一项非常昂贵的计算,涉及大量有关该区域的数据 - 您几乎肯定没有的数据。遗憾的是,这意味着Core Location或MapKit不能帮助您。

你准备解决什么问题?除了路线距离之外,您可以使用其他启发式方法来估算某种距离排名。