0
我有一個MKMapView
,並且想要抓取基於MKMapView
的中心的城市名稱。我不想放棄任何針腳或註釋。只需自動獲取基於MKMapView
位置中心的數據。我知道有這種方法'[placemarkName locality]'。但是沒有使用地標的方法嗎?是否有可能根據地圖的中心抓取城市等信息
我有一個MKMapView
,並且想要抓取基於MKMapView
的中心的城市名稱。我不想放棄任何針腳或註釋。只需自動獲取基於MKMapView
位置中心的數據。我知道有這種方法'[placemarkName locality]'。但是沒有使用地標的方法嗎?是否有可能根據地圖的中心抓取城市等信息
你可以在地圖視圖的centerCoordinate
上做一個reverseGeocodeLocation
(有效的iOS 5+)。例如,我可以這樣做:
CLLocationCoordinate2D center = self.mapView.centerCoordinate;
CLGeocoder *coder = [[CLGeocoder alloc] init];
[coder reverseGeocodeLocation:[[CLLocation alloc] initWithLatitude:center.latitude longitude:center.longitude] completionHandler:^(NSArray *placemarks, NSError *error) {
self.cityLabel.text = [[placemarks firstObject] locality];
}];
這無可否認,返回地標數組,但你不必與他們做任何你提取城市的名字後。
爲什麼你不想使用地標? – Rob
我相信他的「使用案例」是爲了瞭解用戶在不查看任何城市的情況下查看哪個城市的一般想法。也許更新地圖下方的標籤。 –
同意。但我懷疑他是在混合「地標」(它是與各種興趣點相關的抽象對象)和「註釋」(這些是你添加到地圖以便渲染pin(「註釋視圖」))。當你使用CLGeocoder來獲取地標數組時,並不意味着你必須在地圖上爲它們添加註釋。因此,要獲得城市,他只需從'reverseGeocodeLocation'中獲取地標數組,然後從中獲取城市名稱,然後讓地標落在範圍之外,從而不會向地圖添加任何內容。 – Rob