關(guān)于高德lbs開放平臺,高德lbs開放平臺這個問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!
1、第一步:申請Key,用于搜索SDK。
2、提示:MapKit是不需要Key的,該key僅用于高德的iOS SDK搜索功能。
3、第二步:初始化MKMapView ,并添加到Subview。
4、同時,進(jìn)行定位,設(shè)置定位模式,在地圖上顯示定位點(diǎn)。
5、注意:(1)MapKit中的定位(showUserLocation= YES),在回調(diào)中獲取的坐標(biāo)不用進(jìn)行坐標(biāo)偏轉(zhuǎn);若使用CLLocationManager方法進(jìn)行定位,需要進(jìn)行坐標(biāo)偏轉(zhuǎn)(參考附加內(nèi)容)。
6、(2)MapKit沒有申請定位權(quán)限,需在代碼中申請一下定位權(quán)限。
7、申請方法:在 info.plist中追加NSLocationWhenInUseUsageDescription或NSLocationAlwaysUsageDescription字段。
8、其中:NSLocationWhenInUseUsageDescription表示應(yīng)用在前臺的時候可以搜到更新的位置信息。
9、NSLocationAlwaysUsageDescription表示應(yīng)用在前臺和后臺(suspend或terminated)都可以獲取到更新的位置數(shù)據(jù)。
10、代碼如下: //申請定位權(quán)限- (void) initLocation{ if(nil == _locationManager) { _locationManager = [[CLLocationManager alloc] init]; } if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { [_locationManager requestAlwaysAuthorization]; }} //初始化MapView- (void) initMapView{ //構(gòu)造MKMapView _mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0, 21, CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.bounds))]; _mapView.delegate = self; _mapView.showsUserLocation = YES;//顯示定位圖標(biāo) [_mapView setUserTrackingMode:MKUserTrackingModeFollow];//設(shè)置定位模式 //將mapview添加到Subview中 [self.view addSubview:_mapView]; }第三步:初始化主搜索對象AMapSearchAPI構(gòu)造AMapSearchAPI對象,并設(shè)置搜索結(jié)果語言。
11、(支持英文結(jié)果的搜索功能包括:POI搜索、逆地理編碼和地理編碼、輸入提示,能夠滿足基本的搜索功能)//初始化AMapSearchAPI- (void)initSearch{ //構(gòu)造AMapSearchAPI _search = [[AMapSearchAPI alloc] initWithSearchKey:APIKey Delegate:self]; _search.language = AMapSearchLanguage_en;//設(shè)置語言}第四步:構(gòu)造搜索對象,設(shè)置搜索參數(shù),發(fā)起查詢,在相應(yīng)的回調(diào)中進(jìn)行結(jié)果展示(如:POI查詢結(jié)果以大頭針標(biāo)注等等)。
12、以Demo中的POI查詢?yōu)槔赃x擇的輸入提示語為關(guān)鍵字/* POI 搜索. */- (void)searchPOIWithKey:(NSString *)key adcode:(NSString *)adcode{ if (key.length == 0) { return; }//構(gòu)造POI搜索對象AMapPlaceSearchRequestAMapPlaceSearchRequest *place = [[AMapPlaceSearchRequest alloc] init];//設(shè)置關(guān)鍵字、 place.keywords = key; place.requireExtension = YES;//設(shè)置成YES,返回信息詳細(xì),較費(fèi)流量 if (adcode.length > 0) { ***.city = @[adcode]; } //發(fā)起查詢 [_search AMapPlaceSearch:place];} //回調(diào)中顯示結(jié)果- (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]]; }]; /* 將結(jié)果以annotation的形式加載到地圖上. */ [_mapView addAnnotations:poiAnnotations]; /* 如果只有一個結(jié)果,設(shè)置其為中心點(diǎn). */ if (poiAnnotations.count == 1) { _mapView.centerCoordinate = [poiAnnotations[0] coordinate]; } /* 如果有多個結(jié)果, 設(shè)置地圖使所有的annotation都可見. */ else { [_mapView showAnnotations:poiAnnotations animated:NO]; }}。
本文分享完畢,希望對大家有所幫助。
標(biāo)簽:
免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!