coreLocation-地理的逆符号化について


CoreLocationで得られた位置情報は経度や緯度などで表される地理情報であり、多くの場合、X国XX市XXX区XXX街XX号のような一般人が読める地理的位置記述に逆符号化する必要がある.これはMapKitの地理的位置逆符号化ツールであるMKReverseGeocoderを使用する必要がある.
使用方法:
1,まずプロトコルMKReverseGeocoderDelegateを実現するには,座標情報をサーバに送信してから逆戻りするまでに一定の時間がかかるため,ブロックを防ぐためにメッセージを発信した後,いつメッセージを返すかわからず,メッセージが戻ったときに依頼方法を通知する.ここでこのクラスを実現する主な方法は以下の通りである.
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error{
    NSLog(@"MKReverseGeocoder has failed.");
}
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark{
    
    NSLog(@" :%@",placemark);
}

didFailWithErrorという方法は、エラーメッセージを返す処理を行い、didFindPlacemarkは地理情報が返され、地理情報はplacemarkに含まれ、このオブジェクトには国、都市、ブロック、街などのメンバー変数が含まれます.
2、その後、逆エンコーダをinitして、要求を出すことができます.
MKReverseGeocoder *reverseGeocoder =[[MKReverseGeocoder alloc] initWithCoordinate:coordinate];
    NSLog(@"%g",coordinate.latitude);
    NSLog(@"%g",coordinate.longitude);
    reverseGeocoder.delegate = self;
    [reverseGeocoder start];

MKReverseGeocoderはstartメソッドのほかにcancelメソッドでリクエストをキャンセルします.