POI搜索
关键字搜索
1. 导入头文件
#import <NavinfoKit/NavinfoKit.h>
2. 配置APIKEY
参考工程配置说明。
3. 定义 NavinfoPOISearch
定义主搜索对象NavinfoPOISearch ,并继承搜索协议<NavinfoQueryDelegate>。
4. 构造NavinfoPOISearch
构造事件搜索对象NavinfoPOISearch,并设置代理。
self.search = [[NavinfoPOISearch alloc] init]; self.search.delegate = self;
5. 设置关键字搜索查询参数
关键字搜索查询的请求参数类为NavinfoPOIQuery,keyword(关键字)、city(城市)、category(搜索类型)为必设参数。
关键字搜索category 为SERVICE_API_SEARCH_TEXT。
self.query = [[NavinfoPOIQuery alloc] initWithKeyword:@"如家" city:@"北京" lonlats:nil category:SERVICE_API_SEARCH_TEXT];
6. 发起关键字搜索查询参数
通过调用 NavinfoPOISearch的 search方法发起关键字搜索查询。
[self.search search:self.query];
7. 在回调中处理数据
当查询成功时,会进到 POISearch:result:error 回调函数,通过回调函数,可获取查询关键字搜索的结果。
- (void)POISearch:(NavinfoPOISearch *)poiSearch result:(NavinfoPOISearchResult *)result error:(NSError *)error
说明:
1)通过 result. total 获取检索的结果总数 信息。
2)通过 result. filter获取筛选排序配置信息的标识。
3)通过 result. provinces获取省份分布结果列表。详细信息参考NavinfoProvince。
4)通过 result. pois获取POI 信息列表 。详细信息参考NavinfoPOI。
5)通过 result. district获取行政区域切换信息 。详细信息参考NavinfoDistrict
8. 处理失败查询 当检索失败时,Error 会返回,通过该回调函数获取产生的失败的原因。
运行程序,效果如下图所示:
圆形搜索
详细参照关键字搜索,不同设置如下:
5. 设置圆形搜索查询参数
圆形搜索查询的请求参数类为 NavinfoPOIQuery,keyword(关键字)、city(城市)、lonlat (当前位置坐标 )、category(搜索类型)为必设参数。
圆形搜索category 为SERVICE_API_SEARCH_AROUND。
self.query = [[NavinfoPOIQuery alloc] initWithKeyword:@"美食" city:@"北京" lonlats:[NavinfoLonlat toLonlatsWithLonlatStrings:@"116.311050,39.980570"] category:SERVICE_API_SEARCH_AROUND];
矩形搜索
详细参照关键字搜索,不同设置如下:
5. 设置矩形搜索查询参数
矩形搜索查询的请求参数类为 NavinfoPOIQuery,keyword(关键字)、city(城市)、lonlats (矩形坐标串)、category(搜索类型)为必设参数。
矩形搜索category 为SERVICE_API_SEARCH_POLYGON。
NSString *lonlatString = @"116.311050,39.980570;116.310880,39.945280;116.335770,39.926260;116.359210,39.923100"; self.query = [[NavinfoPOIQuery alloc] initWithKeyword:@"美食" city:@"北京" lonlats:[NavinfoLonlat toLonlatsWithLonlatStrings:lonlatString] category:SERVICE_API_SEARCH_AROUND];
沿途搜索
详细参照关键字搜索,不同设置如下:
5. 设置沿途搜索查询参数
沿途搜索查询的请求参数类为 NavinfoPOIQuery,keyword(关键字)、city(城市)、lonlats (矩形坐标串)、category(搜索类型)为必设参数。
沿途搜索category 为SERVICE_API_SEARCH_LINE。
NSString *lonlatString = @"116.311050,39.980570;116.310880,39.945280;116.335770,39.926260;116.359210,39.923100"; self.query = [[NavinfoPOIQuery alloc] initWithKeyword:@"美食" city:@"北京" lonlats:[NavinfoLonlat toLonlatsWithLonlatStrings:lonlatString] category: SERVICE_API_SEARCH_LINE];
详情查询
1. 导入头文件
#import <NavinfoKit/NavinfoKit.h>
2. 配置APIKEY
参考工程配置说明。
3. 定义 NavinfoDetailsSearch
定义主搜索对象NavinfoDetailsSearch,并继承搜索协议<NavinfoQueryDelegate>。
4. 构造 NavinfoDetailsSearch
构造事件搜索对象 NavinfoDetailsSearch,并设置代理。
self.detailSearch= [[NavinfoDetailsSearch alloc] init]; self.detailSearch.delegate = self;
5. 设置地点详情检索查询参数
地点详情检索的请求参数类为 NavinfoDetailsQuery,poiId (POI 唯一 id )、category(搜索类型)为必设参数。
poiId为搜索结果中携带的poi的信息,所以只能先搜索,再查看地点详情。
地点详情检索category 为SERVICE_API_SEARCH_DETAIL 。
self.detailQuery = [[NavinfoDetailsQuery alloc] init]; self.detailQuery.category = SERVICE_API_SEARCH_DETAIL;
6. 发起地点详情检索查询
通过调用 NavinfoDetailsSearch的 getLocationDetails方法发起地点详情检索查询。
self.detailSearch getLocationDetails:[result.pois objectAtIndex:0].poiId query:self.detailQuery];
7. 在回调中处理数据
当查询成功时,会进到 locationDetails:result:error 回调函数,通过回调函数,可获取查询地点详情检索的结果。
- (void)POISearch:(NavinfoPOISearch *)poiSearch result:(NavinfoPOISearchResult *)result error:(NSError *)error
说明:
1)通过 result. total 获取检索的结果总数 信息。
2)通过 result. filter获取筛选排序配置信息的标识。
3)通过 result. provinces获取省份分布结果列表。详细信息参考NavinfoProvince。
4)通过 result. pois获取POI 信息列表 。详细信息参考NavinfoPOI。
5)通过 result. district获取行政区域切换信息 。详细信息参考NavinfoDistrict。
8. 处理失败查询
当检索失败时,Error 会返回,通过该回调函数获取产生的失败的原因。
运行程序,效果如下图所示:
合作方信息查询
1. 导入头文件
#import <NavinfoKit/NavinfoKit.h>
2. 配置APIKEY
参考工程配置说明。
3. 定义 NavinfoCooperationDetailsSearch
定义主搜索对象NavinfoCooperationDetailsSearch,并继承搜索协议<NavinfoCooperationQueryDelegate>。
4. 构造 NavinfoCooperationDetailsSearch
构造事件搜索对象 NavinfoCooperationDetailsSearch,并设置代理。
self.cooperationDetailSearch= [[NavinfoCooperationDetailsSearch alloc] init]; self.cooperationDetailSearch.delegate = self;
5. 设置合作方地点详情检索参数
合作方地点详情检索的请求参数类为 NavinfoCooperationDetailsQuery,poiId (POI唯一id )、poiName (POI唯一名称)为必设参数。
poiId、poiName为搜索结果中携带的poi的信息,所以只能先搜索,再查看地点详情。
self.cooperationDetailQuery = [[NavinfoCooperationDetailsQuery alloc] init];
6. 发起合作方地点详情检索
通过调用 NavinfoCooperationDetailsSearch的 getCooperationLocationDetails 方法发起合作方地点详情检索查询。
[self.cooperationDetailSearch getCooperationLocationDetails:[result.pois objectAtIndex:0].extend.cooperationId cooperationName:[result.pois objectAtIndex:0].extend.cooperationName query:self.cooperationDetailQuery];
7. 在回调中处理数据
当查询成功时,会进到 locationCooperationDetails:result:error 回调函数,通过回调函数,可获取查询合作方地点详情检索的结果。
- (void)locationCooperationDetails:(NavinfoCooperationDetailsSearch *)poiSearch result:(NavinfoCooperationInfomationResult *)result error:(NSError *)error
说明:
1)通过 result. cooperationId获取合作方地点详情唯一标识。
2)通过 result. cooperationName获取合作方地点详情名称。
3)通过 result. lonlat获取合作方地点详情坐标。
4)通过 result. address获取合作方地点详情地址。
5)通过 result. city获取合作方地点详情城市。
6)通过 result. phone获取合作方地点详情电话。
7)通过 result. officeTime获取合作方地点详情营业时间。
8)通过 result. type获取合作方地点详情类别, hotel:酒店、cater:美食、scenery:景点 parking:停车场。
9)通过 result. rinfo获取合作方地点详情简介I。
10)通过 result. rImageUrl获取合作方地点详情封面图。
11)通过 result. facility获取合作方地点详情设施 仅酒店和美食有数据返回。
12)通过 result. recommend获取合作方地点详情推荐信息 type=scenery,返回购票须知 (仅景点有数据返回)。
13)通过 result. rImageUrls获取合作方地点详情图片集最多5个。
14)通过 result. extend获取合作方地点详情扩展信息, 仅当 exinfo =2 时,显示该字段,不同的poi类型,显示的内容不一样。
8. 处理失败查询
当检索失败时,Error 会返回,通过该回调函数获取产生的失败的原因。