Ios 地理编码方法看起来不错,但我总是得到0作为坐标
这不应该这么难。。。我只是尝试对地址字符串进行地理编码,以便在Ios 地理编码方法看起来不错,但我总是得到0作为坐标,ios,ios7,mapkit,geocoding,Ios,Ios7,Mapkit,Geocoding,这不应该这么难。。。我只是尝试对地址字符串进行地理编码,以便在viewDidLoad上缩放到地图上的地址,但每次运行地理编码方法时,我的lat和long都会得到0 CLGeocoder *geocoder = [[CLGeocoder alloc] init]; [geocoder geocodeAddressString:addressOfSelected completionHandler:^(NSArray *placemarks, NSError *error) { if
viewDidLoad
上缩放到地图上的地址,但每次运行地理编码方法时,我的lat和long都会得到0
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder geocodeAddressString:addressOfSelected completionHandler:^(NSArray *placemarks, NSError *error) {
if (error) {
NSLog(@"Geocode failed with error: %@", error);
return;
}
if (placemarks && placemarks.count > 0)
{
CLPlacemark *placemark = placemarks[0];
CLLocation *location = placemark.location;
self.shackCoords = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude);
}
}];
MKCoordinateRegion region;
region.center.latitude = self.shackCoords.latitude;
region.center.longitude = self.shackCoords.longitude;
region.span.latitudeDelta = .05;
region.span.longitudeDelta = .05;
[self.mapView setRegion:region];
shackCoords
只是一个CLLocationCoordinate2D
对我来说很有用。也许你的地址无法进行地理编码?我正在ios模拟器中运行它,这可能是个问题吗?将你的setRegion代码移动到地理编码器的完成块内。是的,在设置self.shackCoords之后。geocoder方法异步运行。请注意,您可能应该dispatch\u async
到主队列,或者performSelectorOnMainThread:withObject:waitUntilDone:
在地图视图上设置区域。在后台线程上更改UIView状态是个坏主意。