单军华
2018-07-11 7b02207537d35bfa1714bf8beafc921f717d100a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
//
//  BMKPOISearchOption.h
//  SearchComponent
//
//  本文件中包含了5种POI检索对应的请求参数信息类,以及其中用到的参数类、枚举等。
//  请求参数信息类的命名规则统一为 BMKPOIXXXSearchOption
//
//  Created by Baidu on 2018/5/8.
//  Copyright © 2018年 Baidu. All rights reserved.
//
 
#import <Foundation/Foundation.h>
#import "BMKPoiSearchType.h"
 
 
#pragma mark - 枚举类型
/**
 检索过滤条件中的POI的行业类型
 
 - BMK_POI_INDUSTRY_TYPE_HOTEL: 宾馆
 - BMK_POI_INDUSTRY_TYPE_CATER: 餐饮
 - BMK_POI_INDUSTRY_TYPE_LIFE: 生活娱乐
 */
typedef NS_ENUM(NSUInteger, BMKPOIIndustryType) {
    BMK_POI_INDUSTRY_TYPE_HOTEL = 1,
    BMK_POI_INDUSTRY_TYPE_CATER,
    BMK_POI_INDUSTRY_TYPE_LIFE,
};
 
/**
 检索过滤条件中的排序依据类型
 类型整体分为宾馆行业、餐饮行业、生活娱乐行业3大类
 
 - BMK_POI_SORTNAME_TYPE_HOTEL_DEFAULT: 宾馆行业,默认排序
 - BMK_POI_SORTNAME_TYPE_HOTEL_PRICE: 宾馆行业,按价格排序
 - BMK_POI_SORTNAME_TYPE_HOTEL_DISTANCE: 宾馆行业,按距离排序(只对周边检索有效)
 - BMK_POI_SORTNAME_TYPE_HOTEL_TOTAL_SCORE: 宾馆行业,按好评排序
 - BMK_POI_SORTNAME_TYPE_HOTEL_LEVEL: 宾馆行业,按星级排序
 - BMK_POI_SORTNAME_TYPE_HOTEL_HEALTH_SCORE: 宾馆行业,按卫生排序
 - BMK_POI_SORTNAME_TYPE_CATER_DEFAULT: 餐饮行业,默认排序
 - BMK_POI_SORTNAME_TYPE_CATER_PRICE: 餐饮行业,按价格排序
 - BMK_POI_SORTNAME_TYPE_CATER_DISTANCE: 餐饮行业,按距离排序(只对周边检索有效)
 - BMK_POI_SORTNAME_TYPE_CATER_TASTE_RATING: 餐饮行业,按口味排序
 - BMK_POI_SORTNAME_TYPE_CATER_OVERALL_RATING: 餐饮行业,按好评排序
 - BMK_POI_SORTNAME_TYPE_CATER_SERVICE_RATING: 餐饮行业,按服务排序
 - BMK_POI_SORTNAME_TYPE_LIFE_DEFAULT: 生活娱乐行业,默认排序
 - BMK_POI_SORTNAME_TYPE_LIFE_PRICE: 生活娱乐行业,按价格排序
 - BMK_POI_SORTNAME_TYPE_LIFE_DISTANCE: 生活娱乐行业,按距离排序(只对周边检索有效)
 - BMK_POI_SORTNAME_TYPE_LIFE_OVERALL_RATING: 生活娱乐行业,按好评排序
 - BMK_POI_SORTNAME_TYPE_LIFE_COMMENT_NUMBER: 生活娱乐行业,按服务排序
 */
typedef NS_ENUM(NSUInteger, BMKPOISortBasisType) {
    BMK_POI_SORT_BASIS_TYPE_HOTEL_DEFAULT = 1,
    BMK_POI_SORT_BASIS_TYPE_HOTEL_PRICE,
    BMK_POI_SORT_BASIS_TYPE_HOTEL_DISTANCE,
    BMK_POI_SORT_BASIS_TYPE_HOTEL_TOTAL_SCORE,
    BMK_POI_SORT_BASIS_TYPE_HOTEL_LEVEL,
    BMK_POI_SORT_BASIS_TYPE_HOTEL_HEALTH_SCORE,
    
    BMK_POI_SORT_BASIS_TYPE_CATER_DEFAULT = 10,
    BMK_POI_SORT_BASIS_TYPE_CATER_PRICE,
    BMK_POI_SORT_BASIS_TYPE_CATER_DISTANCE,
    BMK_POI_SORT_BASIS_TYPE_CATER_TASTE_RATING,
    BMK_POI_SORT_BASIS_TYPE_CATER_OVERALL_RATING,
    BMK_POI_SORT_BASIS_TYPE_CATER_SERVICE_RATING,
    
    BMK_POI_SORT_BASIS_TYPE_LIFE_DEFAULT = 20,
    BMK_POI_SORT_BASIS_TYPE_LIFE_PRICE,
    BMK_POI_SORT_BASIS_TYPE_LIFE_DISTANCE,
    BMK_POI_SORT_BASIS_TYPE_LIFE_OVERALL_RATING,
    BMK_POI_SORT_BASIS_TYPE_LIFE_COMMENT_NUMBER,
};
 
/**
 POI检索排序规则
 
 - BMK_POI_SORT_RULE_DESCENDING: 从高到底,降序排列
 - BMK_POI_SORT_RULE_ASCENDING: 从低到高,升序排列
 */
typedef NS_ENUM(NSUInteger, BMKPOISortRuleType) {
    BMK_POI_SORT_RULE_DESCENDING = 0,
    BMK_POI_SORT_RULE_ASCENDING,
};
 
/**
 POI检索结果详细程度
 
 - BMK_POI_SCOPE_BASIC_INFORMATION: 基本信息
 - BMK_POI_SCOPE_DETAIL_INFORMATION: 详细信息
 */
typedef NS_ENUM(NSUInteger, BMKPOISearchScopeType) {
    BMK_POI_SCOPE_BASIC_INFORMATION = 1,
    BMK_POI_SCOPE_DETAIL_INFORMATION,
};
 
 
#pragma mark - POI检索过滤条件类
@interface BMKPOISearchFilter : NSObject
/// POI所属行业类型,设置该字段可提高检索速度和过滤经度
@property (nonatomic, assign) BMKPOIIndustryType industryType;
/**
 排序依据,根据industryType字段指定的行业类型不同,此字段应设置为对应行业的依据值
 比如industryType字段的值为BMK_POI_INDUSTRY_TYPE_CATER,则此字段应选择BMK_POI_SORT_BASIS_TYPE_CATER_XXX对应的枚举值
 */
@property (nonatomic, assign) BMKPOISortBasisType sortBasis;
/// 排序规则
@property (nonatomic, assign) BMKPOISortRuleType sortRule;
/// 是否有团购
@property (nonatomic, assign) BOOL isGroupon;
/// 是否有打折
@property (nonatomic, assign) BOOL isDiscount;
@end
 
 
#pragma mark - POI城市检索参数信息类
/// POI城市检索参数信息类
@interface BMKPOICitySearchOption : NSObject
/// 检索关键字,必选。举例:天安门
@property (nonatomic, copy) NSString *keyword;
/// 检索分类,与keyword字段组合进行检索,多个分类以","分隔。举例:美食,酒店
@property (nonatomic, copy) NSArray<NSString *> *tags;
/// 区域名称(市或区的名字,如北京市,海淀区)或区域编码,必选
@property (nonatomic, copy) NSString *city;
/// 区域数据返回限制,可选,为true时,仅返回city对应区域内数据
@property (nonatomic, assign) BOOL isCityLimit;
/// 检索结果详细程度
@property (nonatomic, assign) BMKPOISearchScopeType scope;
/// 检索过滤条件。scope字段为BMK_POI_SCOPE_DETAIL_INFORMATION时,filter字段才有效
@property (nonatomic, strong) BMKPOISearchFilter *filter;
/// 分页页码,默认为0,0代表第一页,1代表第二页,以此类推
@property (nonatomic, assign) NSInteger pageIndex;
/// 单次召回POI数量,默认为10条记录,最大返回20条。
@property (nonatomic, assign) NSInteger pageSize;
@end
 
 
#pragma mark - POI周边检索参数信息类
/// POI周边检索参数信息类
@interface BMKPOINearbySearchOption : NSObject
/**
 检索关键字,必选。
 在周边检索中关键字为数组类型,可以支持多个关键字并集检索,如银行和酒店。每个关键字对应数组一个元素。
 最多支持10个关键字。
 */
@property (nonatomic, copy) NSArray<NSString *> *keywords;
/**
 检索分类,可选。
 该字段与keywords字段组合进行检索。
 支持多个分类,如美食和酒店。每个分类对应数组中一个元素
 */
@property (nonatomic, copy) NSArray<NSString *> *tags;
/// 检索中心点的经纬度,必选
@property (nonatomic, assign) CLLocationCoordinate2D location;
/**
 检索半径,可选,单位是米。
 当半径过大,超过中心点所在城市边界时,会变为城市范围检索,检索范围为中心点所在城市
 */
@property (nonatomic, assign) NSInteger radius;
/**
 是否严格限定召回结果在设置检索半径范围内。默认值为false。
 值为true代表检索结果严格限定在半径范围内;值为false时不严格限定。
 注意:值为true时会影响返回结果中total准确性及每页召回poi数量,我们会逐步解决此类问题。
 */
@property (nonatomic, assign) BOOL isRadiusLimit;
/// 检索结果详细程度
@property (nonatomic, assign) BMKPOISearchScopeType scope;
/// 检索过滤条件。scope字段为BMK_POI_SCOPE_DETAIL_INFORMATION时,filter字段才有效
@property (nonatomic, strong) BMKPOISearchFilter *filter;
/// 分页页码,默认为0,0代表第一页,1代表第二页,以此类推
@property (nonatomic, assign) NSInteger pageIndex;
/// 单次召回POI数量,默认为10条记录,最大返回20条。
@property (nonatomic, assign) NSInteger pageSize;
@end
 
 
#pragma mark - POI矩形区域检索参数信息类
/// POI矩形区域检索参数信息类
@interface BMKPOIBoundSearchOption : NSObject
/**
 检索关键字,必选。
 在矩形检索中关键字为数组类型,可以支持多个关键字并集检索,如银行和酒店。每个关键字对应数组一个元素。
 最多支持10个关键字。
 */
@property (nonatomic, copy) NSArray<NSString *> *keywords;
/**
 检索分类,可选。
 该字段与keywords字段组合进行检索。
 支持多个分类,如美食和酒店。每个分类对应数组中一个元素
 */
@property (nonatomic, copy) NSArray<NSString *> *tags;
/// 矩形检索区域的左下角经纬度坐标,必选
@property (nonatomic, assign) CLLocationCoordinate2D leftBottom;
/// 矩形检索区域的右上角经纬度坐标,必选
@property (nonatomic, assign) CLLocationCoordinate2D rightTop;
/// 检索结果详细程度
@property (nonatomic, assign) BMKPOISearchScopeType scope;
/// 检索过滤条件。scope字段为BMK_POI_SCOPE_DETAIL_INFORMATION时,filter字段才有效
@property (nonatomic, strong) BMKPOISearchFilter *filter;
/// 分页页码,默认为0,0代表第一页,1代表第二页,以此类推
@property (nonatomic, assign) NSInteger pageIndex;
/// 单次召回POI数量,默认为10条记录,最大返回20条。
@property (nonatomic, assign) NSInteger pageSize;
@end
 
 
#pragma mark - POI详情检索参数信息类
/// POI详情检索信息类
@interface BMKPOIDetailSearchOption : NSObject
/// POI的唯一标识符集合,必选
@property (nonatomic, copy) NSArray<NSString *> *poiUIDs;
/// 检索结果详细程度
@property (nonatomic, assign) BMKPOISearchScopeType scope;
@end
 
 
#pragma mark - POI室内检索参数信息类
/// 室内POI检索参数信息类
@interface BMKPOIIndoorSearchOption : NSObject
/// 室内检索唯一标识符,必选
@property (nonatomic, copy) NSString *indoorID;
/// 室内检索关键字,必选
@property (nonatomic, copy) NSString *keyword;
/// 楼层(可选),设置后,会优先获取该楼层的室内POI,然后是其它楼层的。如“F3”,"B3"等。
@property (nonatomic, copy) NSString *floor;
/// 分页页码,默认为0,0代表第一页,1代表第二页,以此类推
@property (nonatomic, assign) NSInteger pageIndex;
/// 单次召回POI数量,默认为10条记录,最大返回20条。
@property (nonatomic, assign) NSInteger pageSize;
@end