2

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

我想创建一个地图视图,我可以在适当的观看距离上看到这两个位置。

我通过找到中点(在本例中为 {35, -75})获得了新坐标,但问题是,

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

提前致谢。

4

1 回答 1

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,我确保屏幕有足够的空间来显示第二个点。

希望能帮助到你。

——安克

于 2010-11-04T05:45:28.643 回答