我希望能夠通過允許用戶在UIAlertView中鍵入地址或位置來更新顯示在MKMapView上的區域。我目前有:將MKMapView更新爲從CLGeocoder返回的CLPlacemark
if (geocoder.geocoding)
[geocoder cancelGeocode];
[geocoder geocodeAddressString:[[alertView textFieldAtIndex:0] text] completionHandler:^(NSArray *placemarks, NSError *error) {
if (!error) {
NSLog(@"Found a location");
} else {
NSLog(@"Error in geocoding");
}
NSLog(@"Num found: %d", [placemarks count]);
CLPlacemark *placemark = [placemarks objectAtIndex:0];
MKCoordinateRegion region;
region.center.latitude = placemark.region.center.latitude;
region.center.longitude = placemark.region.center.longitude;
MKCoordinateSpan span;
double radius = placemark.region.radius/1000;
NSLog(@"Radius is %f", radius);
span.latitudeDelta = radius/112.0;
//span.longitudeDelta = ???
region.span = span;
NSLog(@"Region is %f %f %f", region.center.latitude, region.center.longitude, span.latitudeDelta);
[mapView setRegion:region animated:YES];
}];
我的問題是我不確定如何計算經度增量。
你可以只將其設置爲latitudeDelta,並根據需要在地圖視圖會調整。但是你並不需要首先自己計算跨度。您可以使用'region = MKCoordinateRegionMakeWithDistance(placemark.region.center,placemark.region.radius,placemark.region.radius);'。不確定你的問題的第二部分。 – Anna 2012-02-06 19:03:44
這似乎是工作。我假設我將不得不使用第三方地理編碼器才能看到所有共享相同名稱的結果。 – brendan 2012-02-06 19:40:12
安娜你能添加這個答案嗎? – brendan 2012-02-24 21:05:52