【高德API】如何利用MapKit開發全英文檢索的iOS地圖

來源:互聯網
上載者:User

標籤:

製作全英文地圖的展示並不困難,但是要製作全英文的資料檢索列表,全英文的資訊視窗,你就沒辦法了吧。告訴你,我有妙招!使用iOS內建的MapKit來展示全球英文底圖,結合上高德API的中英文檢索功能,就能打造POI資料最豐富,英文展示全方位的純英文地圖啦!看看,是不是渾然天成?

-------------------------------------------------------------------------------------------------------------------------------

下面開始詳解純英文地圖的步驟啦,助力程式員與國際APPs接軌!

 

第一步:申請Key

先申請高德的KEY:http://lbs.amap.com/console/key/

1、填寫應用程式名稱

2、綁定服務選擇IOS平台

3、輸入bundle id:將Xcode切換到General標籤,即可查看Bundle Identifier

4、點擊擷取KEY

 

第二步、建立地圖工程

在xCode裡,建立一個 Single View Application工程,並且進行配置。

在高德官網有地圖配置的詳細說明,這裡我就不多說了。查看:http://lbs.amap.com/api/ios-sdk/guide/mapview/

  

第三步、添加MKMapView

1、在xCode裡選擇Build Phases標籤,點開Link Binary With Libraries,再點加號。

2、在彈出來的搜尋方塊裡搜尋Mapkit。

3、選擇iOS 8.0-->MapKit.framework,最後點擊add即可。

 

第四步、申請定位許可權

在 info.plist中追加NSLocationAlwaysUsageDescription或者NSLocationAlwaysUsageDescription欄位。

NSLocationWhenInUseUsageDescription表示應用在前台的時候可以搜到更新的位置資訊;NSLocationAlwaysUsageDescription表示應用在前台和後台(suspend或terminated)都可以擷取到更新的位置資料。

所以我還是建議NSLocationAlwaysUsageDescription這種方便的模式,哈哈。

 

 1.在工程的Supporting Files中選擇plist檔案
 2.點擊+號,輸入欄位NSLocationAlwaysUsageDescription  3.按斷行符號,即可完成添加欄位

 

第五步、初始化Mapview

高德的座標系是國內標準座標(GCJ-02,又稱火星座標),國際上一般是採用GPS座標(WGS-84),所以大多數國際應用在中國使用時,需要進行座標轉換。

好在蘋果的MapKit用的是高德的地圖,showUserLocation= YES,座標已經是GCJ-02的啦,可以直接使用~

(PS:不建議使用CLLocationManager定位管理類,它返回的座標是GPS座標,必須進行座標轉換,很麻煩。) 
//申請定位許可權  -  (void) initLocation  {       if(nil == _locationManager)       {           _locationManager = [[CLLocationManager alloc] init];      }          if([[[UIDevice  currentDevice] systemVersion] floatValue] >= 8.0)       {           [_locationManager requestAlwaysAuthorization];       }  } 
//初始化MapView - (void) initMapView{
//構造MKMapView _mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0, 21, CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.bounds))]; _mapView.delegate = self; _mapView.showsUserLocation = YES;//顯示定位元影像標 [_mapView setUserTrackingMode:MKUserTrackingModeFollow];//設定定位元模式
//將mapview添加到Subview中 [self.view addSubview:_mapView]; }

 

第六步、初始化AMapSearchAPI構造AMapSearchAPI對象,設定搜尋結果語言為英文AMapSearchLanguage_en。這步非常重要喔!必須要設定成英文,才能巧妙地讓POI搜尋、逆地理編碼和地理編碼、輸入提示等,都變成純英文喔。 
//初始化AMapSearchAPI  -  (void)initSearch  {       //構造AMapSearchAPI       _search = [[AMapSearchAPI alloc] initWithSearchKey:APIKey Delegate:self];       _search.language = AMapSearchLanguage_en;//設定語言  }

 

第七步、寫個搜尋demo來看看

以一個普通的POI檢索為例,當檢索英文關鍵詞時,出來純英文的搜素建議;搜尋結果也用英文來展示。

/*  POI 搜尋.  */  -  (void)searchPOIWithKey:(NSString *)key adcode:(NSString *)adcode  {       if (key.length == 0)     {           return;       }  
//構造POI搜尋對象AMapPlaceSearchRequest AMapPlaceSearchRequest *place = [[AMapPlaceSearchRequest alloc] init];
//設定關鍵字 place.keywords = key; place.requireExtension = YES;//設定成YES,返回資訊詳細,較費流量 if (adcode.length > 0) { place.city = @[adcode]; } //發起查詢 [_search AMapPlaceSearch:place]; } //回調中顯示結果 - (void)onPlaceSearchDone:(AMapPlaceSearchRequest *)request response:(AMapPlaceSearchResponse *)respons { if (respons.pois.count == 0) { return; } NSMutableArray *poiAnnotations = [NSMutableArray arrayWithCapacity:respons.pois.count]; [respons.pois enumerateObjectsUsingBlock:^(AMapPOI *obj, NSUInteger idx, BOOL *stop) { [poiAnnotations addObject:[[POIAnnotation alloc] initWithPOI:obj]]; }];
/* 將結果以annotation的形式載入到地圖上. */ [_mapView addAnnotations:poiAnnotations];
/* 如果只有一個結果,設定其為中心點. */ if (poiAnnotations.count == 1) { _mapView.centerCoordinate = [poiAnnotations[0] coordinate]; }
/* 如果有多個結果, 設定地圖使所有的annotation都可見. */ else { [_mapView showAnnotations:poiAnnotations animated:NO]; } }

 

最後,想象你是一個外國人,把你的手機語言改成English,這時,英文底圖就出現了!

其實如果用高德iOS SDK,也有英文底圖,但得調用SDK啊,很麻煩呢。如果本來就是給在中國的外國人看,還不如直接調用iOS的MapKit呢~

你要開發安卓版英文地圖的話,那當然直接用高德Android SDK就好了啦~

 

最後,這裡是全部源碼下載:https://github.com/autonaviapi/HelloAmapForEnglish

 

 

大家快動手試試吧~~ 真的是一秒鐘國際範兒的趕腳~ 再看一遍~

 

-------------------------------------------------------------------------------------------------------------------------------

關於為什麼要選擇高德API:

1、蘋果MapKit本來就是調用的高德地圖,看右下角著作權資訊,是不是有個灰色的高德地圖logo,所以不存在座標轉換的問題,嗯,渾然天成;

2、高德推出了全球定位,全英文地圖,全英文檢索(全國僅此一家!)等潮流產品,各種非常適合“國際範兒”這個命題。

-------------------------------------------------------------------------------------------------------------------------------

 

 

【高德API】如何利用MapKit開發全英文檢索的iOS地圖

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.