GMSGeocoderクラスの使い所
がわからない。
- (void) reverseGeocodeCoordinate:(CLLocationCoordinate2D) coordinate
completionHandler:(GMSReverseGeocodeCallback) handler
のメソッドを使って、その緯度・経度に対応する住所を検索してくれるのだが、
[[GMSGeocoder geocoder]reverseGeocodeCoordinate:coordOPin
completionHandler:^(GMSReverseGeocodeResponse * response, NSError *error){
for(GMSReverseGeocodeResult *result in response.results){
NSLog(@"addressLine1:%@", result.addressLine1);
NSLog(@"addressLine2:%@", result.addressLine2);
}
}];
結果のオブジェクトにはaddressLine1とaddressLine2の2つのプロパティしか無い。
- どこまでが都道府県で、どこまでが市区町村なのかがわからない。
- 当然(?)郵便番号などの情報はなし。
上記のコードで実際に出力されるログを見ると、
addressLine1:
addressLine2:東京都台東区秋葉原1−8
addressLine1:
addressLine2:東京都台東区秋葉原1
addressLine1:
addressLine2:東京都台東区秋葉原
addressLine1:東京都台東区
addressLine2:
addressLine1:東京都
addressLine2:
addressLine1:日本
addressLine2:(null)
と出力される。addressLine1と2をどう使い分けろというのか?リファレンス見てもわからなかった。
使い方がわかってないだけかもしれないが、結局、CLGeocoderを使った。
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
CLLocation *location = [[CLLocation alloc]initWithLatitude:lat longitude:lng];
[geocoder reverseGeocodeLocation:location completionHandler:
^(NSArray *placemarks, NSError *error){
for (CLPlacemark *placemark in placemarks) {
NSLog(@"administrativeArea:%@", placemark.administrativeArea);
NSLog(@"locality:%@", placemark.locality);
NSLog(@"subLocality:%@", placemark.subLocality);
NSLog(@"thoroughfare:%@", placemark.thoroughfare);
NSLog(@"subThoroughfare:%@", placemark.subThoroughfare);
}
}];
localityで市と区が逆に入っているが、そこさえクリアすれば、何とかなりそうな雰囲気。
administrativeArea:神奈川県
locality:鶴見区, 横浜市
subLocality:栄町通
thoroughfare:栄町通 2丁目
subThoroughfare:17番20号