单军华
2018-07-11 7b02207537d35bfa1714bf8beafc921f717d100a
screendisplay/Pods/BaiduMapKit/BaiduMapKit/BaiduMapAPI_Search.framework/Headers/BMKPoiSearchOption.h
New file
@@ -0,0 +1,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