在我的应用程序中,我有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) 你会得到一个距离。查看所有点并比较哪个距离最短