私はObjective-Cプログラミングが初めてです。
MapViewで場所を郵便番号・郵便番号で表示したい。そのためには、緯度と経度を見つける必要があります。
郵便番号をWebサービスに渡し、すべての情報を含む応答を取得することで、すでに多くのソリューションを参照していました。
しかし、私はWebサービスを使用したくありません。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";
}
}
}];
}
このコードは、都市名、国名、または通り名を渡す場合は機能しますが、郵便番号を渡す場合は機能しません。
前もって感謝します。