Skip to content

POI检索

构造DMKPoiKeywordSearch对象

定义主搜索对象 DMKPoiKeywordSearch

self.keyWordSearch = [[DMKPoiKeywordSearch alloc] init];

设置检索参数

进行上车点检索的请求参数类为 DMKPoiSearchOption.

DMKPoiSearchOption *option = [[DMKPoiSearchOption alloc] init];
option.latitude = 40.05014946831597;                        //要查询位置的维度(必设)
option.longitude = 116.285842827691;                        //要查询位置的精度(必设)
option.deviceLatitude = 40.05014946831597;                  //当前设备维度
option.deviceLongitude = 116.285842827691;                  //当前设备精度
option.cityName = @"北京市";                                 //查询城市
option.queryWord = @"动物园";		 		                  //搜索关键字(必设)
option.poiQueryType = DMKPoiQueryTypeDeparture;             //位置类型(默认使用DMKPoiQueryTypeOther)

设置代理

继承搜索协议<DMKPoiSearchDelegate>.

self.keyWordSearch.delegate = self;

启动搜索

调用 DMKPoiKeywordSearch 的 poiKeywordSearchWithOption 并发起上车点检索.

[self.keyWordSearch poiKeywordSearchWithOption:option];

结果解析

当检索成功时,会进到onGetPoiSearch 回调函数中,通过解析 DMKPoiSearchResult 对象把检索结果在地图上绘制点展示出来。

说明:

1)可以在回调中解析 poiResult,获取 POI 信息。

2)poiResult.poiDataList 可以获取到 DMKPoiData 列表,POI 详细信息可参考 DMKPoiData 类。

3)如果回调失败,可通过 errorCode 诊断错误类型, 具体错误类型可参考DMKPoiSearchErrorCode类.

- (void)onGetPoiSearch:(DMKPoiBaseSearch *)search result:(DMKPoiSearchResult *)poiResult errorCode:(DMKPoiSearchErrorCode)errorCode {
    if (errorCode != DMK_SEARCH_NO_ERROR) {
        NSLog(@"获取失败");
    }
     
    if (poiResult && [poiResult.poiDataList count] > 0) {
        DMKPoiData *poiData = [poiResult.poiDataList firstObject];
        NSLog(@"%@", poiData);
    }
 
}