在iPhone上,我以十进制度数获取用户位置,例如:纬度39.470920和经度= -0.373192;这点A.以度为单位的GPS坐标来计算距离
我需要创建一个符合另一GPS坐标,同样在十进制度,点B.然后,从A到计算B和另一点的直线之间的距离(垂直)C.
问题是我与度数值混淆。我希望以米为单位获得结果。需要什么转换?最终公式将如何计算这个样子?
在iPhone上,我以十进制度数获取用户位置,例如:纬度39.470920和经度= -0.373192;这点A.以度为单位的GPS坐标来计算距离
我需要创建一个符合另一GPS坐标,同样在十进制度,点B.然后,从A到计算B和另一点的直线之间的距离(垂直)C.
问题是我与度数值混淆。我希望以米为单位获得结果。需要什么转换?最终公式将如何计算这个样子?
你的问题也找到一个线(A,B)和C点 我想,如果你3个CLLocations附近之间的最短线路(小于相隔几公里),你可以算一算“好像”坐标是单个平面上的点,并且在C++中使用this,或者使用this或this,并且仅使用CLLocations“好像”它们是平面上的x和y坐标。
如果你的坐标很远,或者精确的准确性很重要,那么地球的球形很重要,你需要在球面上使用great circle distance和其他几何体。
为什么不使用CLLocation s distanceFromLocation:
方法?它会告诉你接收器和另一个CLLocation之间的精确距离。
CLLocation *locationA = [[CLLocation alloc] initWithLatitude:12.123456 longitude:12.123456];
CLLocation *locationB = [[CLLocation alloc] initWithLatitude:21.654321 longitude:21.654321];
CLLocationDistance distanceInMeters = [locationA distanceFromLocation:locationB];
// CLLocation is aka double
[locationA release];
[locationB release];
就这么简单。
我也有同样的问题,这两个答案都没有解决这个问题。 RabinDev的答案越来越近,但他并没有解决米转换问题的程度。有小费吗? –