如何计算用户最近的位置?

时间:2011-01-27 14:01:04

标签: iphone

在我的应用程序中,我有4个位置,其经度和海拔高度(给定)。现在我想找到离用户最近的地方。

所以任何人都可以告诉我它的解决方案,或者为我提供一些源代码或演示。

感谢所有

4 个答案:

答案 0 :(得分:3)

创建点的CLLocation:

CLLocation* locationx = [[CLLocation alloc] initWithLatitude:lat longitude:lon];

并将这些点与:

进行比较
double distance = [userposition distanceFromLocation:locationx];

保留最近的位置。

修改 如果你的意思是“经度和海拔高度”那么我就不知道如何。

答案 1 :(得分:1)

花了10秒时间问google并找到了这个,它描述了如何计算给定纬度和经度的两点之间的距离:

http://www.movable-type.co.uk/scripts/latlong.html

你所要做的就是计算到所有4个点的距离并选择最低点。

ETDI:我相信你也得到了纬度,否则你甚至没有特定的坐标。如果这不是一种类型,你真的需要考虑高度,请看看this question at google answers

答案 2 :(得分:0)

picknick描述了一个本地类方法。

这可能会使用Haversine公式(搜索web或stackoverflow进行讨论)来测量距离。 根据我的经验,编写自己的Haversine通常比使用系统/应用程序提供的更快,尽管这是在Windows上,COM开销可能会“有问题”!

可以在这里找到Haversine(以及许多类似的地球几何体)公式:

http://williams.best.vwh.net/avform.htm

(这是我的几个书签之一,我会定期回来参考!)

答案 3 :(得分:-1)

例如user位于x = 0,y = 0 通过执行以下操作来计算距离:SquareRoot(x2 ^ 2& y2 ^ 2) 你会得到一个距离。查看所有点并比较哪个距离最短