// // BMKPOISearchOption.h // SearchComponent // // 本文件中包含了5种POI检索对应的请求参数信息类,以及其中用到的参数类、枚举等。 // 请求参数信息类的命名规则统一为 BMKPOIXXXSearchOption // // Created by Baidu on 2018/5/8. // Copyright © 2018年 Baidu. All rights reserved. // #import #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 *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 *keywords; /** 检索分类,可选。 该字段与keywords字段组合进行检索。 支持多个分类,如美食和酒店。每个分类对应数组中一个元素 */ @property (nonatomic, copy) NSArray *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 *keywords; /** 检索分类,可选。 该字段与keywords字段组合进行检索。 支持多个分类,如美食和酒店。每个分类对应数组中一个元素 */ @property (nonatomic, copy) NSArray *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 *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