POI搜索分好多種篙耗,主要以城市內(nèi)搜索為例講解:
一.POi搜索
1.先說(shuō)一下需要用到的類:
BMKMapView:地圖類
BMKPoiSearch :搜索服務(wù)類
BMKCitySearchOption :搜索包裝的參數(shù)類
2.搜索需要傳遞的參數(shù)為:以下4個(gè)
1.city鹅搪,所在的城市
2.keyword骚灸,搜索的關(guān)鍵字(如美食,酒店等)
3.pageCapacity,搜索的分頁(yè)數(shù)量(默認(rèn)為10,最多為50)
4.pageIndex吊说,搜索的頁(yè)碼(默認(rèn)為0)
3.各種代理方法調(diào)用順序
首先從整體來(lái)說(shuō):
BMKCitySearchOption 的對(duì)象作為包裝參數(shù)cityOption,通過(guò)BMKPoiSearch的對(duì)象self.poiSearch調(diào)用poiSearchInCity优炬,
BOOL flag =[self.poiSearch poiSearchInCity:cityOption]
之后通過(guò)BMKSearchDelegate的onGetPoiResult:方法
告訴用戶獲得到搜索返回的數(shù)組列表颁井,在onGetPoiResult中包裝成若干個(gè)大頭針模型,之后把大頭針模型添加到地圖上,如:[self.mapView addAnnotations:annotionArray];
分別先后調(diào)用了BMKMapViewDelegate 的viewForAnnotation: (目的:根據(jù)傳過(guò)來(lái)的annotion生成對(duì)應(yīng)的View)和didAddAnnotationViews: (之后添加到地圖上)的2個(gè)方法肉拓,完成搜索到的信息在地圖上展示的功能。
綜上:方法調(diào)用順序?yàn)閜oiSearchInCit:------->onGetPoiResult------->viewForAnnotation(每添加一次調(diào)用一次)------->didAddAnnotationViews(每添加一次調(diào)用一次)眉抬,最終完成了地圖上的Poi(興趣點(diǎn))搜索功能。
二.地理編碼和反地理編碼
正向地理編碼指的是:告訴地方名稱懈凹,編碼出經(jīng)緯度
反向地理編碼指的是:告訴地理經(jīng)緯度蜀变,編碼出地方名稱
不要搞混了哦!
1.用到的類:
BMKMapView:地圖類
BMKGeoCodeSearch:地理反地理編碼類
BMKGeoCodeSearchOption:地理編碼編碼參數(shù)類
BMKReverseGeoCodeOption:反地理編碼編碼參數(shù)類
2.調(diào)用順序:
1.正向地理編碼
1.[self.geoSearch geoCode:geoSearchOption] 觸發(fā)了正向地理編碼
通過(guò)BMKGeoCodeSearchDelegate 的onGetGeoCodeResult:方法獲得到編碼的信息(可以展示)介评,也可以通過(guò)[self.mapView addAnnotation:item];調(diào)用BMKMapViewDelegate的viewForAnnotation:這個(gè)方法库北,在里面通過(guò)大頭針模型生成大頭針View展示到地圖上,完成正向地理編碼们陆。
2.反向地理編碼
同上:(只是代理方法稍微不同寒瓦,詳見(jiàn)Demo)