我希望設置MKMapView的縮放級別(OR設置區域),以便我可以顯示一個地點。用一個例子來闡述我的背景。我有一個位置(CLLocation *),我使用CLGeocoder(反向地理編碼)找到了該位置。現在說這個地區是'加州庫比蒂諾'地區。如何在MKMapView中找到完全包含Cupertino的區域?將MKMapView縮放級別設置爲一個地方
謝謝。
我希望設置MKMapView的縮放級別(OR設置區域),以便我可以顯示一個地點。用一個例子來闡述我的背景。我有一個位置(CLLocation *),我使用CLGeocoder(反向地理編碼)找到了該位置。現在說這個地區是'加州庫比蒂諾'地區。如何在MKMapView中找到完全包含Cupertino的區域?將MKMapView縮放級別設置爲一個地方
謝謝。
對於創建MKCoordinateRegion
對象,並設置地圖視圖區域:
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(<LATITUDE>, <LONGITUDE>);
MKCoordinateRegion region;
// <LATITUDE> and <LONGITUDE> for Cupertino, CA.
region = MKCoordinateRegionMake(location, MKCoordinateSpanMake(0.5, 0.5));
// 0.5 is spanning value for region, make change if you feel to adjust bit more
MKCoordinateRegion adjustedRegion = [self.mapView regionThatFits:region];
[self.mapView setRegion:adjustedRegion animated:YES];
編輯:
正如你在你的評論,你需要充滿活力的城市機箱提。在這種情況下,我們需要地圖縮放級別(整數值 - 默認值爲0)。
這意味着一些API或Web服務返回的城市/座標和縮放級別。因此,從該縮放級別我們可以實現地圖跨度/地區計算。
和鏈接從經/緯得到縮放級別:http://troybrant.net/blog/2010/01/set-the-zoom-level-of-an-mkmapview/
所以問題這裏是0.5是硬編碼值。由於城市的大小不同,這個值應該是一個變量而不是隨機的硬編碼值。所以我想知道有沒有更好的計算這個跨度? – 2014-11-03 10:40:16
@DeborshiSaha:你有任何API或Web服務引用返回這樣的城市縮放級別嗎? – Kampai 2014-11-03 10:46:40
不,我有'CLLocation'。使用CLGeocoder來反轉地理定位。 – 2014-11-03 11:05:40
見http://stackoverflow.com/questions/9164920/updating-mkmapview-to-clplacemark-returned-from-clgeocoder – Anna 2014-11-03 12:33:12