【发布时间】:2014-03-17 14:23:57
【问题描述】:
目前我可以计算两个坐标之间的距离NSStrings。
我现在正在尝试计算 NSMutableArray 中的坐标列表,但我被卡住了。
我不知何故需要计算所有loc 之间的距离,或者有更好的方法吗?
for (int i=0; i < self.trackArray.count; i++)
{
CGFloat latitude = [[self.trackArray objectAtIndex:0] doubleValue];
CGFloat longitude = [[self.trackArray objectAtIndex:1] doubleValue];
CLLocation *loc = [[CLLocation alloc] initWithLatitude:latitude longitude:longitude];
CLLocationDistance distance = [loc distanceFromLocation:loc];
CLLocationDistance kilometers = distance / 1000.0;
self.distanceString = [NSString stringWithFormat:@"%f", kilometers];
}
更新。 NSLog 中数组的外观示例。
(
"37.335009,-122.032722",
"37.334977,-122.032813",
"37.334948,-122.032921",
"37.334922,-122.033042",
"37.334892,-122.033184",
"37.334858,-122.033344",
"37.334821,-122.033509",
"37.334780,-122.033696"
)
抱歉,我没有说清楚我要做什么,我有一个应用程序可以跟踪用户的位置并在他们身后画一条线,上面是从用户跟踪的坐标,我想找到当前行进的距离计算的距离是乌鸦的距离,它是坐标的第一行和最后一行。我想例如计算前 2 行坐标之间的距离,然后将该距离添加到下 2 行坐标等中。所以如果用户绕着一个圆圈走,我想知道距离。
【问题讨论】:
-
trackArray中数据的布局和类型是什么?举一个“计算所有位置之间的距离”的确切含义的例子。您是指 trackArray 中每个项目到某个其他固定位置 X 的距离还是数组中每个项目之间的距离(从项目 0 到项目 1 的距离、从项目 1 到项目 2 的距离等)?
-
当你说“计算所有 loc 之间的距离”时,我不是 100% 确定你的意思。你的意思是在数组中的每个位置和每个其他位置之间?或者在某个位置和数组中的值之间?等等......你能解释一下你想要达到的目标吗?即最好的数组中最近的位置等......
-
你想完成什么?您上面的代码在您的 for 循环中根本没有使用您的索引
i,因此它每次都会做完全相同的事情。您是否试图找到任意两者之间的最大距离?还是一分钟?或者究竟是什么?你想打印出所有距离的列表吗? -
@Anna 用您的回复更新了问题。谢谢
-
我认为你想要的是“画一条你走的路”并计算起点和终点之间的距离对吗?
标签: objective-c nsmutablearray cllocationmanager cllocationdistance