iPhone开发 - 在地图上显示两个位置

时间:2010-05-06 19:33:12

标签: iphone google-maps mkcoordinateregion mkcoordinatespan

现在我有两个位置的坐标,比方说 locationA,纬度40和经度-80, locationB,纬度30和经度-70,

我想创建一个mapView,我可以看到两个位置都有适当的观看距离。

我通过找到中点得到了新的坐标(在这个例子中,{35,-75}), 但问题是,

如何获得合适的观看距离? 特别是,如何计算CLLocationDistance(如果我使用的是MKCoordinateRegionMakeWithDistance)或MKCoordinateSpan(如果我使用的是MKCoordinateSpanMake)。

提前致谢。

1 个答案:

答案 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