现在我有两个位置的坐标,比方说 locationA,纬度40和经度-80, locationB,纬度30和经度-70,
我想创建一个mapView,我可以看到两个位置都有适当的观看距离。
我通过找到中点得到了新的坐标(在这个例子中,{35,-75}), 但问题是,
如何获得合适的观看距离? 特别是,如何计算CLLocationDistance(如果我使用的是MKCoordinateRegionMakeWithDistance)或MKCoordinateSpan(如果我使用的是MKCoordinateSpanMake)。
提前致谢。
答案 0 :(得分:11)
这就是我想到的:
CLLocation *pointALocation = [[CLLocation alloc] initWithLatitude:middlePoint.latitude longitude:middlePoint.longitude];
CLLocation *pointBLocation = [[CLLocation alloc] initWithLatitude:pointB.latitude longitude:pointB.longitude];
CLLocationDistance d = [pointALocation distanceFromLocation:pointBLocation];
MKCoordinateRegion r = MKCoordinateRegionMakeWithDistance(middlePoint, 2*d, 2*d);
[mapView setRegion:r animated:YES];
CLLocationDistance d包含您要查看的中心和第二个点之间的距离(以米为单位)。然后,您可以使用中间点和两米的距离来设置您想要在屏幕上显示的区域。通过使用2 * d,我确保屏幕有足够的空间来显示第二个点。
希望它有所帮助。
- ank