我有一个关于在我的 MKMapView 上设置区域的问题。
我需要将地图视图设置为在我的视图首次加载时显示特定区域。
该区域的东北和西南经纬度为:
North East Coordinate Lat:59.623724 Long:2.911587
South West Coordinate Lat:49.004833 Long:-11.361825
除此之外,我想将地图视图“锁定”到该区域。理想情况下,锁是透明的,即:上面的坐标代表 MKMapView 的最大范围。但是,如果只是检查东北和西南坐标的情况
- (void)mapView:(MKMapView *)aMapView regionDidChangeAnimated:(BOOL)animated
如果它们超出我的最大范围,则重置视图,这对我来说也是可以接受的。
非常感谢您对此事的任何指示。
编辑:关于我问题的第一部分,我发现我可以使用以下代码在 MKMapView 上设置初始区域:
CLLocationCoordinate2D neCoord;
neCoord.latitude = 59.787643;
neCoord.longitude = 3.025857;
CLLocationCoordinate2D swCoord;
swCoord.latitude = 49.394171;
swCoord.longitude = -11.036642;
MKCoordinateRegion region;
region.center.latitude = neCoord.latitude - (neCoord.latitude - swCoord.latitude) * 0.5;
region.center.longitude = neCoord.longitude + (swCoord.longitude - neCoord.longitude) * 0.5;
region.span.latitudeDelta = fabs(neCoord.latitude - swCoord.latitude); // Add a little extra space on the sides
region.span.longitudeDelta = fabs(swCoord.longitude - neCoord.longitude); // Add a little extra space on the sides
region = [self.mapView regionThatFits:region];
[self.mapView setRegion:region animated:YES];