//
|
// 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
|