我是 Objective-C 编程的新手。
我想按邮政编码/邮政编码在 MapView 中显示位置。为此,我必须找到纬度和经度。
我已经通过将邮政编码传递给网络服务并获得所有信息的响应来参考许多解决方案。
但我不想使用任何网络服务。我想通过使用CLGeocoder来做到这一点
我正在使用下面的代码来查找纬度经度。
-(IBAction)fetchCoordinates:(id)sender {
if (!self.geocoder) {
self.geocoder = [[CLGeocoder alloc] init];
}
NSString *address = [NSString stringWithFormat:@"%@ %@ %@", self.streetField.text, self.cityField.text, self.countryField.text];
[self.geocoder geocodeAddressString:address completionHandler:^(NSArray *placemarks, NSError *error) {
NSLog(@"mark :: %@", placemarks);
if ([placemarks count] > 0) {
CLPlacemark *placemark = [placemarks objectAtIndex:0];
CLLocation *location = placemark.location;
CLLocationCoordinate2D coordinate = location.coordinate;
self.coordinatesLabel.text = [NSString stringWithFormat:@"%f, %f", coordinate.latitude, coordinate.longitude];
if ([placemark.areasOfInterest count] > 0) {
self.nameLabel.text = [placemark.areasOfInterest objectAtIndex:0];
} else {
self.nameLabel.text = @"No Area of Interest Was Found";
}
}
}];
}
如果我传递城市名称、国家名称或街道名称,则此代码有效,但传递邮政编码时无效。
提前致谢。