parent
b7c96e6fc6
commit
47a02a9e07
3
Podfile
3
Podfile
|
|
@ -60,8 +60,9 @@ target 'QuickLocation' do
|
|||
pod 'WechatOpenSDK-XCFramework'
|
||||
|
||||
#高德地图
|
||||
pod 'AMapNavi-NO-IDFA' #导航SDK(含地图+搜索+导航)
|
||||
pod 'AMapNavi-NO-IDFA' #导航SDK
|
||||
pod 'AMapLocation-NO-IDFA' #定位SDK
|
||||
pod 'AMapSearch-NO-IDFA' #搜索SDK
|
||||
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ PODS:
|
|||
- AMapFoundation-NO-IDFA (>= 1.9.0)
|
||||
- AMapNavi-NO-IDFA (11.2.000):
|
||||
- AMapFoundation-NO-IDFA (>= 1.9.0)
|
||||
- AMapSearch-NO-IDFA (9.8.0):
|
||||
- AMapFoundation-NO-IDFA (>= 1.9.0)
|
||||
- BRPickerView (3.0.0):
|
||||
- BRPickerView/Default (= 3.0.0)
|
||||
- BRPickerView/Core (3.0.0)
|
||||
|
|
@ -188,6 +190,7 @@ DEPENDENCIES:
|
|||
- AlipaySDK-iOS
|
||||
- AMapLocation-NO-IDFA
|
||||
- AMapNavi-NO-IDFA
|
||||
- AMapSearch-NO-IDFA
|
||||
- BRPickerView
|
||||
- CocoaLumberjack/Swift
|
||||
- CocoaMQTT
|
||||
|
|
@ -231,6 +234,7 @@ SPEC REPOS:
|
|||
- AMapFoundation-NO-IDFA
|
||||
- AMapLocation-NO-IDFA
|
||||
- AMapNavi-NO-IDFA
|
||||
- AMapSearch-NO-IDFA
|
||||
- BRPickerView
|
||||
- CocoaLumberjack
|
||||
- CocoaMQTT
|
||||
|
|
@ -296,6 +300,7 @@ SPEC CHECKSUMS:
|
|||
AMapFoundation-NO-IDFA: a2e3c895398d7ee757278e1a0a8f9359da4b146e
|
||||
AMapLocation-NO-IDFA: 7cd8fc837ea41edfbf4d937cd20572e277b77d18
|
||||
AMapNavi-NO-IDFA: d55b9b138c6e540f737c689975cae2c9dbd1026a
|
||||
AMapSearch-NO-IDFA: c0afd2a69a076d4228becda4401dbe4a279a03ef
|
||||
BRPickerView: cd2e0e3aa87af062bc7a1b6f78d3dfd5f04f04bb
|
||||
CocoaLumberjack: e4ba3b414dfca8c1916c6303d37f63b3a95134c6
|
||||
CocoaMQTT: 1e2fa493d57045d66fb1eba2bb5ffb8d77039c60
|
||||
|
|
@ -347,6 +352,6 @@ SPEC CHECKSUMS:
|
|||
YYImage: 1e1b62a9997399593e4b9c4ecfbbabbf1d3f3b54
|
||||
ZXSDK: 786338c0a18e98e03eda00699c3bfd2700b97117
|
||||
|
||||
PODFILE CHECKSUM: 848cd9ba02b2f1c209ac9eef708dd2c43b005385
|
||||
PODFILE CHECKSUM: 55d478000a8bba48e7bb7de252ef246a0b3784c4
|
||||
|
||||
COCOAPODS: 1.16.2
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -0,0 +1,939 @@
|
|||
//
|
||||
// AMapCommonObj.h
|
||||
// AMapSearchKit
|
||||
//
|
||||
// Created by xiaoming han on 15/7/22.
|
||||
// Copyright (c) 2015年 Amap. All rights reserved.
|
||||
//
|
||||
|
||||
/* 该文件定义了搜索结果的基础数据类型。*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#pragma mark - AMapSearchObject
|
||||
|
||||
///搜索SDK基础类, 通用数据结构和response支持copy和coding(since 4.4.1)。
|
||||
@interface AMapSearchObject : NSObject<NSCopying, NSCoding>
|
||||
|
||||
/**
|
||||
* @brief 返回格式化的描述信息。通用数据结构和response类型有效。
|
||||
*/
|
||||
- (NSString *)formattedDescription;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark - 通用数据结构
|
||||
|
||||
///经纬度, description中格式为 <经度,纬度>
|
||||
@interface AMapGeoPoint : AMapSearchObject
|
||||
///纬度(垂直方向)
|
||||
@property (nonatomic, assign) CGFloat latitude;
|
||||
///经度(水平方向)
|
||||
@property (nonatomic, assign) CGFloat longitude;
|
||||
|
||||
/**
|
||||
* @brief 实例化一个AMapGeoPoint对象
|
||||
* @param lat 纬度
|
||||
* @param lon 经度
|
||||
*/
|
||||
+ (AMapGeoPoint *)locationWithLatitude:(CGFloat)lat longitude:(CGFloat)lon;
|
||||
@end
|
||||
|
||||
///多边形, 当传入两个点的时候,当做矩形处理:左下-右上两个顶点;其他情况视为多边形,几个点即为几边型。
|
||||
@interface AMapGeoPolygon : AMapSearchObject
|
||||
///坐标集, AMapGeoPoint 数组
|
||||
@property (nonatomic, strong) NSArray<AMapGeoPoint *> *points;
|
||||
|
||||
/**
|
||||
* @brief 实例化一个多边形对象
|
||||
* @param points 坐标集, AMapGeoPoint 数组
|
||||
*/
|
||||
+ (AMapGeoPolygon *)polygonWithPoints:(NSArray *)points;
|
||||
@end
|
||||
|
||||
@class AMapDistrict;
|
||||
///城市
|
||||
@interface AMapCity : AMapSearchObject
|
||||
///城市名称
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
///城市编码
|
||||
@property (nonatomic, copy) NSString *citycode;
|
||||
///城市区域编码
|
||||
@property (nonatomic, copy) NSString *adcode;
|
||||
///此区域的建议结果数目, AMapSuggestion 中使用
|
||||
@property (nonatomic, assign) NSInteger num;
|
||||
///途径区域 AMapDistrict 数组,AMepStep中使用,只有name和adcode。
|
||||
@property (nonatomic, strong) NSArray<AMapDistrict *> *districts;
|
||||
@end
|
||||
|
||||
///建议信息
|
||||
@interface AMapSuggestion : AMapSearchObject
|
||||
///NSString 数组
|
||||
@property (nonatomic, strong) NSArray<NSString *> *keywords;
|
||||
///AMapCity 数组
|
||||
@property (nonatomic, strong) NSArray<AMapCity *> *cities;
|
||||
@end
|
||||
|
||||
#pragma mark - 输入提示
|
||||
|
||||
///输入提示
|
||||
@interface AMapTip : AMapSearchObject
|
||||
///poi的id
|
||||
@property (nonatomic, copy) NSString *uid;
|
||||
///名称
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
///区域编码
|
||||
@property (nonatomic, copy) NSString *adcode;
|
||||
///所属区域
|
||||
@property (nonatomic, copy) NSString *district;
|
||||
///地址
|
||||
@property (nonatomic, copy) NSString *address;
|
||||
///位置
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///类型码, since 4.5.0. 对应描述可下载参考官网文档 http://a.amap.com/lbs/static/zip/AMap_API_Table.zip。
|
||||
@property (nonatomic, copy) NSString *typecode;
|
||||
@end
|
||||
|
||||
#pragma mark - POI
|
||||
|
||||
///POI图片信息
|
||||
@interface AMapImage : AMapSearchObject
|
||||
///标题
|
||||
@property (nonatomic, copy) NSString *title;
|
||||
///url
|
||||
@property (nonatomic, copy) NSString *url;
|
||||
@end
|
||||
|
||||
///POI扩展信息
|
||||
@interface AMapPOIExtension : AMapSearchObject
|
||||
///评分
|
||||
@property (nonatomic, assign) CGFloat rating;
|
||||
///人均消费
|
||||
@property (nonatomic, assign) CGFloat cost;
|
||||
///营业时间
|
||||
@property (nonatomic, copy) NSString *openTime;
|
||||
@end
|
||||
|
||||
///POI榜单信息 @since 9.7.0
|
||||
@interface AMapTopListItem : AMapSearchObject
|
||||
///榜单类型
|
||||
@property (nonatomic, copy) NSString *type;
|
||||
///榜单名称
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
@end
|
||||
|
||||
///POI室内地图信息
|
||||
@interface AMapIndoorData : AMapSearchObject
|
||||
/// 是否有室内地图标志 1为有 0为没有 @since 9.4.0
|
||||
@property (nonatomic, assign) NSInteger indoorMap;
|
||||
///楼层索引,一般会用数字表示,例如8。indoorMap为0时不返回
|
||||
@property (nonatomic, assign) NSInteger floor;
|
||||
///所在楼层,一般会带有字母,例如F8。indoorMap为0时不返回
|
||||
@property (nonatomic, copy) NSString *floorName;
|
||||
///如果当前POI为建筑物类POI,则cpid为自身POI ID;如果当前POI为商铺类POI,则cpid为其所在建筑物的POI ID。indoorMap为0时不返回
|
||||
@property (nonatomic, copy) NSString *pid;
|
||||
@end
|
||||
|
||||
///POI商圈信息 @since 9.4.0
|
||||
@interface AMapBusinessData : AMapSearchObject
|
||||
///POI所属商圈
|
||||
@property (nonatomic, copy) NSString *businessArea;
|
||||
///POI今日营业时间,如 08:30-17:30 08:30-09:00 12:00-13:30 09:00-13:00
|
||||
@property (nonatomic, copy) NSString *opentimeToday;
|
||||
///POI营业时间描述,如 周一至周五:08:30-17:30(延时服务时间:08:30-09:00;12:00-13:30);周六延时服务时间:09:00-13:00(法定节假日除外)
|
||||
@property (nonatomic, copy) NSString *opentimeWeek;
|
||||
///POI的联系电话
|
||||
@property (nonatomic, copy) NSString *tel;
|
||||
///POI特色内容,目前仅在美食POI下返回
|
||||
@property (nonatomic, copy) NSString *tag;
|
||||
///POI评分,目前仅在餐饮、酒店、景点、影院类POI下返回
|
||||
@property (nonatomic, copy) NSString *rating;
|
||||
///POI人均消费,目前仅在餐饮、酒店、景点、影院类POI下返回
|
||||
@property (nonatomic, copy) NSString *cost;
|
||||
///停车场类型(地下、地面、路边),目前仅在停车场类POI下返回
|
||||
@property (nonatomic, copy) NSString *parkingType;
|
||||
///POI的别名,无别名时不返回
|
||||
@property (nonatomic, copy) NSString *alias;
|
||||
@end
|
||||
|
||||
///子POI
|
||||
@interface AMapSubPOI : AMapSearchObject
|
||||
///POI全局唯一ID
|
||||
@property (nonatomic, copy) NSString *uid;
|
||||
///名称
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
///名称简写
|
||||
@property (nonatomic, copy) NSString *sname;
|
||||
///经纬度
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///地址
|
||||
@property (nonatomic, copy) NSString *address;
|
||||
///距中心点距离
|
||||
@property (nonatomic, assign) NSInteger distance;
|
||||
///子POI类型
|
||||
@property (nonatomic, copy) NSString *subtype;
|
||||
///子POI分类编码 @since 9.4.0
|
||||
@property (nonatomic, copy) NSString *typeCode;
|
||||
@end
|
||||
|
||||
///沿途POI
|
||||
@interface AMapRoutePOI : AMapSearchObject
|
||||
///POI全局唯一ID
|
||||
@property (nonatomic, copy) NSString *uid;
|
||||
///名称
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
///经纬度
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///用户起点经过途经点再到终点的距离,单位是米
|
||||
@property (nonatomic, assign) NSInteger distance;
|
||||
///用户起点经过途经点再到终点的时间,单位为秒
|
||||
@property (nonatomic, assign) NSInteger duration;
|
||||
@end
|
||||
|
||||
///POI
|
||||
@interface AMapPOI : AMapSearchObject
|
||||
///POI全局唯一ID
|
||||
@property (nonatomic, copy) NSString *uid;
|
||||
///名称
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
///兴趣点类型
|
||||
@property (nonatomic, copy) NSString *type;
|
||||
///类型编码
|
||||
@property (nonatomic, copy) NSString *typecode;
|
||||
///经纬度
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///地址
|
||||
@property (nonatomic, copy) NSString *address;
|
||||
///电话
|
||||
@property (nonatomic, copy) NSString *tel;
|
||||
///距中心点的距离,单位米。在周边搜索时有效
|
||||
@property (nonatomic, assign) CGFloat distance;
|
||||
///停车场类型,地上、地下、路边
|
||||
@property (nonatomic, copy) NSString *parkingType;
|
||||
///商铺id
|
||||
@property (nonatomic, copy) NSString *shopID;
|
||||
|
||||
///邮编
|
||||
@property (nonatomic, copy) NSString *postcode;
|
||||
///网址
|
||||
@property (nonatomic, copy) NSString *website;
|
||||
///电子邮件
|
||||
@property (nonatomic, copy) NSString *email;
|
||||
///省
|
||||
@property (nonatomic, copy) NSString *province;
|
||||
///省编码
|
||||
@property (nonatomic, copy) NSString *pcode;
|
||||
///城市名称
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
///城市编码
|
||||
@property (nonatomic, copy) NSString *citycode;
|
||||
///区域名称
|
||||
@property (nonatomic, copy) NSString *district;
|
||||
///区域编码
|
||||
@property (nonatomic, copy) NSString *adcode;
|
||||
///POI对应的导航引导点坐标 @since 9.4.0
|
||||
@property (nonatomic, copy) NSString *naviPOIId;
|
||||
///地理格ID
|
||||
@property (nonatomic, copy) NSString *gridcode;
|
||||
///入口经纬度
|
||||
@property (nonatomic, copy) AMapGeoPoint *enterLocation;
|
||||
///出口经纬度
|
||||
@property (nonatomic, copy) AMapGeoPoint *exitLocation;
|
||||
///方向
|
||||
@property (nonatomic, copy) NSString *direction;
|
||||
///是否有室内地图
|
||||
@property (nonatomic, assign) BOOL hasIndoorMap;
|
||||
///所在商圈
|
||||
@property (nonatomic, copy) NSString *businessArea;
|
||||
///室内信息
|
||||
@property (nonatomic, strong) AMapIndoorData *indoorData;
|
||||
///子POI列表
|
||||
@property (nonatomic, strong) NSArray<AMapSubPOI *> *subPOIs;
|
||||
///图片列表
|
||||
@property (nonatomic, strong) NSArray<AMapImage *> *images;
|
||||
///所在商圈 @since 9.4.0
|
||||
@property (nonatomic, strong) AMapBusinessData *businessData;
|
||||
///扩展信息只有在ID查询时有效
|
||||
@property (nonatomic, strong) AMapPOIExtension *extensionInfo;
|
||||
@end
|
||||
|
||||
#pragma mark - 逆地理编码 && 地理编码
|
||||
|
||||
///兴趣区域
|
||||
@interface AMapAOI : AMapSearchObject
|
||||
///AOI全局唯一ID
|
||||
@property (nonatomic, copy) NSString *uid;
|
||||
///名称
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
///所在区域编码
|
||||
@property (nonatomic, copy) NSString *adcode;
|
||||
///中心点经纬度
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///面积,单位平方米
|
||||
@property (nonatomic, assign) CGFloat area;
|
||||
///输入经纬度是否在 aoi 面之中:0,代表在 aoi 内 其余整数代表距离 AOI 的距离 @since V9.7.4
|
||||
@property (nonatomic, assign) CGFloat distance;
|
||||
///所属 aoi 类型 @since V9.7.4
|
||||
@property (nonatomic, copy) NSString *type;
|
||||
@end
|
||||
|
||||
///道路
|
||||
@interface AMapRoad : AMapSearchObject
|
||||
///道路ID
|
||||
@property (nonatomic, copy) NSString *uid;
|
||||
///道路名称
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
///距离(单位:米)
|
||||
@property (nonatomic, assign) NSInteger distance;
|
||||
///方向
|
||||
@property (nonatomic, copy) NSString *direction;
|
||||
///坐标点
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
@end
|
||||
|
||||
///道路交叉口
|
||||
@interface AMapRoadInter : AMapSearchObject
|
||||
///距离(单位:米)
|
||||
@property (nonatomic, assign) NSInteger distance;
|
||||
///方向
|
||||
@property (nonatomic, copy) NSString *direction;
|
||||
///经纬度
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///第一条道路ID
|
||||
@property (nonatomic, copy) NSString *firstId;
|
||||
///第一条道路名称
|
||||
@property (nonatomic, copy) NSString *firstName;
|
||||
///第二条道路ID
|
||||
@property (nonatomic, copy) NSString *secondId;
|
||||
///第二条道路名称
|
||||
@property (nonatomic, copy) NSString *secondName;
|
||||
@end
|
||||
|
||||
///门牌信息
|
||||
@interface AMapStreetNumber : AMapSearchObject
|
||||
///街道名称
|
||||
@property (nonatomic, copy) NSString *street;
|
||||
///门牌号
|
||||
@property (nonatomic, copy) NSString *number;
|
||||
///坐标点
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///距离(单位:米)
|
||||
@property (nonatomic, assign) NSInteger distance;
|
||||
///方向
|
||||
@property (nonatomic, copy) NSString *direction;
|
||||
@end
|
||||
|
||||
///商圈
|
||||
@interface AMapBusinessArea : AMapSearchObject
|
||||
///名称
|
||||
@property (nonatomic, strong) NSString *name;
|
||||
///中心坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
@end
|
||||
|
||||
///地址组成要素
|
||||
@interface AMapAddressComponent : AMapSearchObject
|
||||
///国家(since 5.7.0)
|
||||
@property (nonatomic, copy) NSString *country;
|
||||
///国家简码(since 7.4.0)仅海外生效
|
||||
@property (nonatomic, copy) NSString *countryCode;
|
||||
///省/直辖市
|
||||
@property (nonatomic, copy) NSString *province;
|
||||
///市
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
///城市编码
|
||||
@property (nonatomic, copy) NSString *citycode;
|
||||
///区
|
||||
@property (nonatomic, copy) NSString *district;
|
||||
///区域编码
|
||||
@property (nonatomic, copy) NSString *adcode;
|
||||
///乡镇街道
|
||||
@property (nonatomic, copy) NSString *township;
|
||||
///乡镇街道编码
|
||||
@property (nonatomic, copy) NSString *towncode;
|
||||
///社区
|
||||
@property (nonatomic, copy) NSString *neighborhood;
|
||||
///建筑
|
||||
@property (nonatomic, copy) NSString *building;
|
||||
///门牌信息
|
||||
@property (nonatomic, strong) AMapStreetNumber *streetNumber;
|
||||
///商圈列表 AMapBusinessArea 数组
|
||||
@property (nonatomic, strong) NSArray<AMapBusinessArea *> *businessAreas;
|
||||
@end
|
||||
|
||||
///逆地理编码
|
||||
@interface AMapReGeocode : AMapSearchObject
|
||||
///格式化地址
|
||||
@property (nonatomic, copy) NSString *formattedAddress;
|
||||
///地址组成要素
|
||||
@property (nonatomic, strong) AMapAddressComponent *addressComponent;
|
||||
|
||||
///道路信息 AMapRoad 数组
|
||||
@property (nonatomic, strong) NSArray<AMapRoad *> *roads;
|
||||
///道路路口信息 AMapRoadInter 数组
|
||||
@property (nonatomic, strong) NSArray<AMapRoadInter *> *roadinters;
|
||||
///兴趣点信息 AMapPOI 数组
|
||||
@property (nonatomic, strong) NSArray<AMapPOI *> *pois;
|
||||
///兴趣区域信息 AMapAOI 数组
|
||||
@property (nonatomic, strong) NSArray<AMapAOI *> *aois;
|
||||
@end
|
||||
|
||||
///地理编码
|
||||
@interface AMapGeocode : AMapSearchObject
|
||||
///格式化地址
|
||||
@property (nonatomic, copy) NSString *formattedAddress;
|
||||
///所在省/直辖市
|
||||
@property (nonatomic, copy) NSString *province;
|
||||
///城市名
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
///城市编码
|
||||
@property (nonatomic, copy) NSString *citycode;
|
||||
///区域名称
|
||||
@property (nonatomic, copy) NSString *district;
|
||||
///区域编码
|
||||
@property (nonatomic, copy) NSString *adcode;
|
||||
///乡镇街道
|
||||
@property (nonatomic, copy) NSString *township;
|
||||
///社区
|
||||
@property (nonatomic, copy) NSString *neighborhood;
|
||||
///楼
|
||||
@property (nonatomic, copy) NSString *building;
|
||||
///坐标点
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///匹配的等级
|
||||
@property (nonatomic, copy) NSString *level;
|
||||
///国家(since 7.4.0)仅海外生效
|
||||
@property (nonatomic, copy) NSString *country;
|
||||
///国家简码(since 7.4.0)仅海外生效
|
||||
@property (nonatomic, copy) NSString *postcode;
|
||||
@end
|
||||
|
||||
#pragma mark - 公交查询
|
||||
@class AMapBusLine;
|
||||
|
||||
///公交站
|
||||
@interface AMapBusStop : AMapSearchObject
|
||||
///公交站点ID
|
||||
@property (nonatomic, copy) NSString *uid;
|
||||
///区域编码
|
||||
@property (nonatomic, copy) NSString *adcode;
|
||||
///公交站名
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
///城市编码
|
||||
@property (nonatomic, copy) NSString *citycode;
|
||||
///经纬度坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///途径此站的公交路线 AMapBusLine 数组
|
||||
@property (nonatomic, strong) NSArray<AMapBusLine *> *buslines;
|
||||
///查询公交线路时的第几站
|
||||
@property (nonatomic, copy) NSString *sequence;
|
||||
@end
|
||||
|
||||
///公交线路
|
||||
@interface AMapBusLine : AMapSearchObject
|
||||
///公交线路ID
|
||||
@property (nonatomic, copy) NSString *uid;
|
||||
///公交类型
|
||||
@property (nonatomic, copy) NSString *type;
|
||||
///公交线路名称
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
///坐标集合
|
||||
@property (nonatomic, copy) NSString *polyline;
|
||||
///城市编码
|
||||
@property (nonatomic, copy) NSString *citycode;
|
||||
///首发站
|
||||
@property (nonatomic, copy) NSString *startStop;
|
||||
///终点站
|
||||
@property (nonatomic, copy) NSString *endStop;
|
||||
///当查询公交站点时,返回的 AMapBusLine 中含有该字段
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
|
||||
///首班车时间
|
||||
@property (nonatomic, copy) NSString *startTime;
|
||||
///末班车时间
|
||||
@property (nonatomic, copy) NSString *endTime;
|
||||
///所属公交公司
|
||||
@property (nonatomic, copy) NSString *company;
|
||||
///距离。在公交线路查询时,该值为此线路的全程距离,单位为千米; 在公交路径规划时,该值为乘坐此路公交车的行驶距离,单位为米
|
||||
@property (nonatomic, assign) CGFloat distance;
|
||||
///起步价
|
||||
@property (nonatomic, assign) CGFloat basicPrice;
|
||||
///全程票价
|
||||
@property (nonatomic, assign) CGFloat totalPrice;
|
||||
///矩形区域左下、右上顶点坐标
|
||||
@property (nonatomic, copy) AMapGeoPolygon *bounds;
|
||||
///本线路公交站 AMapBusStop 数组
|
||||
@property (nonatomic, strong) NSArray<AMapBusStop *> *busStops;
|
||||
|
||||
///起程站
|
||||
@property (nonatomic, strong) AMapBusStop *departureStop;
|
||||
///下车站
|
||||
@property (nonatomic, strong) AMapBusStop *arrivalStop;
|
||||
///途径公交站 AMapBusStop 数组
|
||||
@property (nonatomic, strong) NSArray<AMapBusStop *> *viaBusStops;
|
||||
///预计行驶时间(单位:秒)
|
||||
@property (nonatomic, assign) NSInteger duration;
|
||||
///此段途径公交站数
|
||||
@property (nonatomic, assign) NSInteger viaNum;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark - 行政区划
|
||||
///行政区划
|
||||
@interface AMapDistrict : AMapSearchObject
|
||||
///区域编码
|
||||
@property (nonatomic, copy) NSString *adcode;
|
||||
///城市编码
|
||||
@property (nonatomic, copy) NSString *citycode;
|
||||
///行政区名称
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
///级别
|
||||
@property (nonatomic, copy) NSString *level;
|
||||
///城市中心点
|
||||
@property (nonatomic, copy) AMapGeoPoint *center;
|
||||
///下级行政区域数组
|
||||
@property (nonatomic, strong) NSArray<AMapDistrict *> *districts;
|
||||
///行政区边界坐标点, NSString 数组
|
||||
@property (nonatomic, strong) NSArray<NSString *> *polylines;
|
||||
@end
|
||||
|
||||
#pragma mark - 路径规划
|
||||
///公交方案详细导航动作指令
|
||||
@interface AMapTransitNavi : AMapSearchObject
|
||||
///导航主要动作指令
|
||||
@property (nonatomic, copy) NSString *action;
|
||||
///导航辅助动作指令
|
||||
@property (nonatomic, copy) NSString *assistantAction;
|
||||
///算路结果中存在的道路类型:
|
||||
/*
|
||||
*0,普通道路 1,人行横道 3,地下通道 4,过街天桥
|
||||
*5,地铁通道 6,公园 7,广场 8,扶梯 9,直梯
|
||||
*10,索道 11,空中通道 12,建筑物穿越通道
|
||||
*13,行人通道 14,游船路线 15,观光车路线 16,滑道
|
||||
*18,扩路 19,道路附属连接线 20,阶梯 21,斜坡
|
||||
*22,桥 23,隧道 30,轮渡
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *walkType;
|
||||
@end
|
||||
|
||||
///实时路况信息
|
||||
@interface AMapTMC : AMapSearchObject
|
||||
///长度(单位:米)
|
||||
@property (nonatomic, assign) NSInteger distance;
|
||||
///路况状态描述:0 未知,1 畅通,2 缓行,3 拥堵,4 严重拥堵
|
||||
@property (nonatomic, copy) NSString *status;
|
||||
///此路段坐标点串
|
||||
@property (nonatomic, copy) NSString *polyline;
|
||||
@end
|
||||
|
||||
///路段基本信息
|
||||
@interface AMapStep : AMapSearchObject
|
||||
///行走指示
|
||||
@property (nonatomic, copy) NSString *instruction;
|
||||
///方向
|
||||
@property (nonatomic, copy) NSString *orientation;
|
||||
///道路名称
|
||||
@property (nonatomic, copy) NSString *road;
|
||||
///此路段长度(单位:米)
|
||||
@property (nonatomic, assign) NSInteger distance;
|
||||
///此路段预计耗时(单位:秒)
|
||||
@property (nonatomic, assign) NSInteger duration;
|
||||
///此路段坐标点串
|
||||
@property (nonatomic, copy) NSString *polyline;
|
||||
///导航主要动作
|
||||
@property (nonatomic, copy) NSString *action;
|
||||
///导航辅助动作
|
||||
@property (nonatomic, copy) NSString *assistantAction;
|
||||
///道路类型
|
||||
@property (nonatomic, assign) NSInteger walkType;
|
||||
///此段收费(单位:元)
|
||||
@property (nonatomic, assign) CGFloat tolls;
|
||||
///收费路段长度(单位:米)
|
||||
@property (nonatomic, assign) NSInteger tollDistance;
|
||||
///主要收费路段
|
||||
@property (nonatomic, copy) NSString *tollRoad;
|
||||
///此段交通信号灯个数 since 9.2.0 ( 只在算路2.0接口有效 )
|
||||
@property (nonatomic, assign) NSInteger totalTrafficLights;
|
||||
|
||||
///途径城市 AMapCity 数组,只有驾车路径规划时有效
|
||||
@property (nonatomic, strong) NSArray<AMapCity *> *cities;
|
||||
///路况信息数组,只有驾车路径规划时有效
|
||||
@property (nonatomic, strong) NSArray<AMapTMC *> *tmcs;
|
||||
@end
|
||||
|
||||
///步行、骑行、驾车方案
|
||||
@interface AMapPath : AMapSearchObject
|
||||
///起点和终点的距离
|
||||
@property (nonatomic, assign) NSInteger distance;
|
||||
///预计耗时(单位:秒)
|
||||
@property (nonatomic, assign) NSInteger duration;
|
||||
///导航策略
|
||||
@property (nonatomic, copy) NSString *strategy;
|
||||
///导航路段 AMapStep 数组
|
||||
@property (nonatomic, strong) NSArray<AMapStep *> *steps;
|
||||
///此方案费用(单位:元)
|
||||
@property (nonatomic, assign) CGFloat tolls;
|
||||
///此方案收费路段长度(单位:米)
|
||||
@property (nonatomic, assign) NSInteger tollDistance;
|
||||
///此方案交通信号灯个数
|
||||
@property (nonatomic, assign) NSInteger totalTrafficLights;
|
||||
|
||||
/**
|
||||
限行信息,仅在驾车和货车路径规划时有效。(since 6.0.0)
|
||||
驾车路径规划时:
|
||||
0 代表限行已规避或未限行; 1 代表限行无法规避。
|
||||
货车路径规划时:
|
||||
0,未知(未输入完整/正确车牌号信息时候显示)
|
||||
1,已规避限行
|
||||
2,起点限行
|
||||
3,途径点在限行区域内(设置途径点才出现此报错)
|
||||
4,途径限行区域
|
||||
5,终点限行
|
||||
*/
|
||||
@property (nonatomic, assign) NSInteger restriction;
|
||||
///规划路径完整坐标点串集合(since 7.4.0)
|
||||
@property (nonatomic, copy) NSString *polyline;
|
||||
|
||||
@end
|
||||
|
||||
@interface AMapFutureTimeInfoElement : AMapSearchObject
|
||||
|
||||
///总时长(分钟)
|
||||
@property (nonatomic, assign) NSInteger duration;
|
||||
///对应的路径规划方案中的路线
|
||||
@property (nonatomic, assign) NSInteger pathindex;
|
||||
/**
|
||||
0:代表限行已规避或未限行,即该路线没有限行路段
|
||||
1:代表限行无法规避,即该线路有限行路段
|
||||
*/
|
||||
@property (nonatomic, assign) NSInteger restriction;
|
||||
///路况信息数组,只会返回AMapTMC中的status、polyline
|
||||
@property (nonatomic, strong) NSArray<AMapTMC *> *tmcs;
|
||||
|
||||
@end
|
||||
|
||||
@interface AMapFutureTimeInfo : AMapSearchObject
|
||||
|
||||
///出发时间
|
||||
@property (nonatomic, copy) NSString *startTime;
|
||||
///路线列表 AMapFutureTimeInfoElement 数组
|
||||
@property (nonatomic, strong) NSArray<AMapFutureTimeInfoElement *> *elements;
|
||||
@end
|
||||
|
||||
///步行换乘信息
|
||||
@interface AMapWalking : AMapSearchObject
|
||||
///起点坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *origin;
|
||||
///终点坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *destination;
|
||||
///起点和终点的步行距离
|
||||
@property (nonatomic, assign) NSInteger distance;
|
||||
///步行预计时间
|
||||
@property (nonatomic, assign) NSInteger duration;
|
||||
///步行路段 AMapStep 数组
|
||||
@property (nonatomic, strong) NSArray<AMapStep *> *steps;
|
||||
@end
|
||||
|
||||
///出租车信息
|
||||
@interface AMapTaxi : AMapSearchObject
|
||||
///起点坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *origin;
|
||||
///终点坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *destination;
|
||||
///距离,单位米
|
||||
@property (nonatomic, assign) NSInteger distance;
|
||||
///耗时,单位秒
|
||||
@property (nonatomic, assign) NSInteger duration;
|
||||
///起点名称
|
||||
@property (nonatomic, copy) NSString *sname;
|
||||
///终点名称
|
||||
@property (nonatomic, copy) NSString *tname;
|
||||
///打车预计花费金额 @singce 9.4.0
|
||||
@property (nonatomic, copy) NSString *price;
|
||||
///线路点集合,通过show_fields控制返回与否 @singce 9.4.0
|
||||
@property (nonatomic, copy) NSString *polyline;
|
||||
@end
|
||||
|
||||
///火车站
|
||||
@interface AMapRailwayStation : AMapSearchObject
|
||||
///火车站ID
|
||||
@property (nonatomic, copy) NSString *uid;
|
||||
///名称
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
///经纬度坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///区域编码
|
||||
@property (nonatomic, copy) NSString *adcode;
|
||||
///发车、到站时间,途径站时则为进站时间
|
||||
@property (nonatomic, copy) NSString *time;
|
||||
///途径站点的停靠时间,单位为分钟
|
||||
@property (nonatomic, assign) NSInteger wait;
|
||||
///是否是始发站,为出发站时有效
|
||||
@property (nonatomic, assign) BOOL isStart;
|
||||
///是否是终点站,为到达站时有效
|
||||
@property (nonatomic, assign) BOOL isEnd;
|
||||
@end
|
||||
|
||||
///火车仓位及价格信息
|
||||
@interface AMapRailwaySpace : AMapSearchObject
|
||||
///类型,硬卧、硬座等
|
||||
@property (nonatomic, copy) NSString *code;
|
||||
///票价,单位元
|
||||
@property (nonatomic, assign) CGFloat cost;
|
||||
@end
|
||||
|
||||
///火车信息
|
||||
@interface AMapRailway : AMapSearchObject
|
||||
///火车线路ID
|
||||
@property (nonatomic, copy) NSString *uid;
|
||||
///名称
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
///车次
|
||||
@property (nonatomic, copy) NSString *trip;
|
||||
///类型
|
||||
@property (nonatomic, copy) NSString *type;
|
||||
///该换乘段行车总距离,单位为米
|
||||
@property (nonatomic, assign) NSInteger distance;
|
||||
///该线路车段耗时,单位为秒
|
||||
@property (nonatomic, assign) NSInteger time;
|
||||
///出发站
|
||||
@property (nonatomic, strong) AMapRailwayStation *departureStation;
|
||||
///到达站
|
||||
@property (nonatomic, strong) AMapRailwayStation *arrivalStation;
|
||||
///仓位及价格信息
|
||||
@property (nonatomic, strong) NSArray<AMapRailwaySpace *> *spaces;
|
||||
|
||||
///途径站点信息
|
||||
@property (nonatomic, strong) NSArray<AMapRailwayStation *> *viaStops;
|
||||
///备选路线信息, 目前只有id和name
|
||||
@property (nonatomic, strong) NSArray<AMapRailway *> *alters;
|
||||
@end
|
||||
|
||||
|
||||
///公交换乘路段,如果walking和buslines同时有值,则是先walking后buslines
|
||||
@interface AMapSegment : AMapSearchObject
|
||||
///此路段步行导航信息
|
||||
@property (nonatomic, strong) AMapWalking *walking;
|
||||
///此路段可供选择的不同公交线路 AMapBusLine 数组
|
||||
@property (nonatomic, strong) NSArray<AMapBusLine *> *buslines;
|
||||
///出租车信息,跨城时有效
|
||||
@property (nonatomic, strong) AMapTaxi *taxi;
|
||||
///火车信息,跨城时有效
|
||||
@property (nonatomic, strong) AMapRailway *railway;
|
||||
///入口名称
|
||||
@property (nonatomic, copy) NSString *enterName;
|
||||
///入口经纬度
|
||||
@property (nonatomic, copy) AMapGeoPoint *enterLocation;
|
||||
///出口名称
|
||||
@property (nonatomic, copy) NSString *exitName;
|
||||
///出口经纬度
|
||||
@property (nonatomic, copy) AMapGeoPoint *exitLocation;
|
||||
@end
|
||||
|
||||
///公交方案
|
||||
@interface AMapTransit : AMapSearchObject
|
||||
///此公交方案价格(单位:元)
|
||||
@property (nonatomic, assign) CGFloat cost;
|
||||
///此换乘方案预期时间(单位:秒)
|
||||
@property (nonatomic, assign) NSInteger duration;
|
||||
///是否是夜班车
|
||||
@property (nonatomic, assign) BOOL nightflag;
|
||||
///此方案总步行距离(单位:米)
|
||||
@property (nonatomic, assign) NSInteger walkingDistance;
|
||||
///换乘路段 AMapSegment 数组
|
||||
@property (nonatomic, strong) NSArray<AMapSegment *> *segments;
|
||||
///当前方案的总距离
|
||||
@property (nonatomic, assign) NSInteger distance;
|
||||
@end
|
||||
|
||||
///路径规划信息
|
||||
@interface AMapRoute : AMapSearchObject
|
||||
///起点坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *origin;
|
||||
///终点坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *destination;
|
||||
///出租车费用(单位:元)
|
||||
@property (nonatomic, assign) CGFloat taxiCost;
|
||||
///步行、骑行、驾车方案列表 AMapPath 数组
|
||||
@property (nonatomic, strong) NSArray<AMapPath *> *paths;
|
||||
///公交换乘方案列表 AMapTransit 数组
|
||||
@property (nonatomic, strong) NSArray<AMapTransit *> *transits;
|
||||
///详细导航动作指令 since 9.4.0
|
||||
@property (nonatomic, strong) AMapTransitNavi *transitNavi;
|
||||
///分路段坐标点串,两点间用“,”分隔 since 9.4.0
|
||||
@property (nonatomic, copy) NSString *polyline;
|
||||
/// 起点和终点总距离
|
||||
@property (nonatomic, assign) CGFloat distance;
|
||||
@end
|
||||
|
||||
///距离测量结果
|
||||
@interface AMapDistanceResult : AMapSearchObject
|
||||
///起点坐标,起点坐标序列号(从1开始)
|
||||
@property (nonatomic, assign) NSInteger originID;
|
||||
///终点坐标,终点坐标序列号(从1开始)
|
||||
@property (nonatomic, assign) NSInteger destID;
|
||||
///路径距离,单位:米
|
||||
@property (nonatomic, assign) NSInteger distance;
|
||||
///预计行驶时间,单位:秒
|
||||
@property (nonatomic, assign) NSInteger duration;
|
||||
///错误信息,建议用此字段判断请求是否成功
|
||||
@property (nonatomic, copy) NSString *info;
|
||||
///在驾车模式下有效。默认为0;1:指定地点之间没有可以行车的道路;2:起点/终点 距离所有道路均距离过远(例如在海洋/矿业);3;起点/终点不在中国境内;
|
||||
@property (nonatomic, assign) NSInteger code;
|
||||
@end
|
||||
|
||||
#pragma mark - 天气查询
|
||||
|
||||
///实况天气,仅支持中国部分地区数据(台湾省目前没有数据)返回
|
||||
@interface AMapLocalWeatherLive : AMapSearchObject
|
||||
///区域编码
|
||||
@property (nonatomic, copy) NSString *adcode;
|
||||
///省份名
|
||||
@property (nonatomic, copy) NSString *province;
|
||||
///城市名
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
///天气现象
|
||||
@property (nonatomic, copy) NSString *weather;
|
||||
///实时温度
|
||||
@property (nonatomic, copy) NSString *temperature;
|
||||
///风向
|
||||
@property (nonatomic, copy) NSString *windDirection;
|
||||
///风力,单位:级
|
||||
@property (nonatomic, copy) NSString *windPower;
|
||||
///空气湿度
|
||||
@property (nonatomic, copy) NSString *humidity;
|
||||
///数据发布时间
|
||||
@property (nonatomic, copy) NSString *reportTime;
|
||||
@end
|
||||
|
||||
///某一天的天气预报信息
|
||||
@interface AMapLocalDayWeatherForecast : AMapSearchObject
|
||||
///日期
|
||||
@property (nonatomic, copy) NSString *date;
|
||||
///星期
|
||||
@property (nonatomic, copy) NSString *week;
|
||||
///白天天气现象
|
||||
@property (nonatomic, copy) NSString *dayWeather;
|
||||
///晚上天气现象
|
||||
@property (nonatomic, copy) NSString *nightWeather;
|
||||
///白天温度
|
||||
@property (nonatomic, copy) NSString *dayTemp;
|
||||
///晚上温度
|
||||
@property (nonatomic, copy) NSString *nightTemp;
|
||||
///白天风向
|
||||
@property (nonatomic, copy) NSString *dayWind;
|
||||
///晚上风向
|
||||
@property (nonatomic, copy) NSString *nightWind;
|
||||
///白天风力
|
||||
@property (nonatomic, copy) NSString *dayPower;
|
||||
///晚上风力
|
||||
@property (nonatomic, copy) NSString *nightPower;
|
||||
@end
|
||||
|
||||
///天气预报类,支持当前时间在内的3天的天气进行预报
|
||||
@interface AMapLocalWeatherForecast : AMapSearchObject
|
||||
///区域编码
|
||||
@property (nonatomic, copy) NSString *adcode;
|
||||
///省份名
|
||||
@property (nonatomic, copy) NSString *province;
|
||||
///城市名
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
///数据发布时间
|
||||
@property (nonatomic, copy) NSString *reportTime;
|
||||
///天气预报AMapLocalDayWeatherForecast数组
|
||||
@property (nonatomic, strong) NSArray<AMapLocalDayWeatherForecast *> *casts;
|
||||
@end
|
||||
|
||||
#pragma mark - 附近搜索
|
||||
///附近搜索返回的用户信息
|
||||
@interface AMapNearbyUserInfo : AMapSearchObject
|
||||
///用户ID
|
||||
@property (nonatomic, copy) NSString *userID;
|
||||
///最后更新位置
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///与搜索点的距离,由搜索时searchType决定
|
||||
@property (nonatomic, assign) CGFloat distance;
|
||||
///最后更新的时间戳,单位秒
|
||||
@property (nonatomic, assign) NSTimeInterval updatetime;
|
||||
@end
|
||||
|
||||
#pragma mark - 交通态势
|
||||
|
||||
///道路路况评价 since 5.1.0
|
||||
@interface AMapTrafficEvaluation : AMapSearchObject
|
||||
///综述
|
||||
@property (nonatomic, copy) NSString *evaluationDescription;
|
||||
///0:未知;1:畅通;2:缓行;3:拥堵
|
||||
@property (nonatomic, assign) NSInteger status;
|
||||
///畅通所占百分比
|
||||
@property (nonatomic, copy) NSString *expedite;
|
||||
///缓行所占百分比
|
||||
@property (nonatomic, copy) NSString *congested;
|
||||
///拥堵所占百分比
|
||||
@property (nonatomic, copy) NSString *blocked;
|
||||
///未知路段所占百分比
|
||||
@property (nonatomic, copy) NSString *unknown;
|
||||
@end
|
||||
|
||||
///道路路况返回的道路信息 since 5.1.0
|
||||
@interface AMapTrafficRoad : AMapSearchObject
|
||||
///道路名称
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
///0:未知;1:畅通;2:缓行;3:拥堵
|
||||
@property (nonatomic, assign) NSInteger status;
|
||||
///方向描述
|
||||
@property (nonatomic, copy) NSString *direction;
|
||||
///车行角度,判断道路正反向使用。 以正东方向为0度,逆时针方向为正,取值范围:[0,360]
|
||||
@property (nonatomic, assign) float angle;
|
||||
///速度 单位:千米/小时
|
||||
@property (nonatomic, assign) float speed;
|
||||
///道路坐标集,经度和纬度使用","分隔,坐标之间使用";"分隔。例如:x1,y1;x2,y2
|
||||
@property (nonatomic, copy) NSString *polyline;
|
||||
@end
|
||||
|
||||
///道路路况信息 since 5.1.0
|
||||
@interface AMapTrafficInfo : AMapSearchObject
|
||||
///路况综述
|
||||
@property (nonatomic, copy) NSString *statusDescription;
|
||||
///路况评价
|
||||
@property (nonatomic, strong) AMapTrafficEvaluation *evaluation;
|
||||
///道路信息
|
||||
@property (nonatomic, strong) NSArray<AMapTrafficRoad*>* roads;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark - 企业地图基础数据类型
|
||||
|
||||
///POI点的图片信息
|
||||
@interface AMapCloudImage : AMapSearchObject
|
||||
///图片的id标识
|
||||
@property (nonatomic, copy) NSString *uid;
|
||||
///图片压缩后的url串
|
||||
@property (nonatomic, copy) NSString *preurl;
|
||||
///图片原始的url
|
||||
@property (nonatomic, copy) NSString *url;
|
||||
@end
|
||||
|
||||
///POI信息
|
||||
@interface AMapCloudPOI : AMapSearchObject
|
||||
///唯一标识
|
||||
@property (nonatomic, assign) NSInteger uid;
|
||||
///名称
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
///坐标位置
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///地址
|
||||
@property (nonatomic, copy) NSString *address;
|
||||
///用户自定义字段
|
||||
@property (nonatomic, strong) NSDictionary *customFields;
|
||||
///创建时间
|
||||
@property (nonatomic, copy) NSString *createTime;
|
||||
///更新时间
|
||||
@property (nonatomic, copy) NSString *updateTime;
|
||||
///离当前位置的距离(只在企业地图周边搜索时有效)
|
||||
@property (nonatomic, assign) NSInteger distance;
|
||||
///图片信息
|
||||
@property (nonatomic, strong) NSArray<AMapCloudImage *> *images __attribute((deprecated("已废弃 since 7.4.0")));
|
||||
|
||||
@end
|
||||
85
Pods/AMapSearch-NO-IDFA/AMapSearchKit.framework/Headers/AMapNearbySearchManager.h
generated
Normal file
85
Pods/AMapSearch-NO-IDFA/AMapSearchKit.framework/Headers/AMapNearbySearchManager.h
generated
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
//
|
||||
// AMapNearbySearchManager.h
|
||||
// AMapSearchKit
|
||||
//
|
||||
// Created by xiaoming han on 15/8/31.
|
||||
// Copyright (c) 2015年 Amap. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "AMapNearbyUploadInfo.h"
|
||||
|
||||
@class AMapNearbySearchManager;
|
||||
|
||||
///附近搜索代理
|
||||
@protocol AMapNearbySearchManagerDelegate <NSObject>
|
||||
@optional
|
||||
|
||||
/**
|
||||
* @brief 开启自动上传,需实现该回调。
|
||||
*/
|
||||
- (AMapNearbyUploadInfo *)nearbyInfoForUploading:(AMapNearbySearchManager *)manager;
|
||||
|
||||
/**
|
||||
* @brief 用户信息上传完毕回调。
|
||||
* @param error 错误,为空时表示成功。
|
||||
*/
|
||||
- (void)onNearbyInfoUploadedWithError:(NSError *)error;
|
||||
|
||||
/**
|
||||
* @brief 用户信息清除完毕回调。
|
||||
* @param error 错误,为空时表示成功。
|
||||
*/
|
||||
- (void)onUserInfoClearedWithError:(NSError *)error;
|
||||
|
||||
@end
|
||||
|
||||
///附近搜索管理类,同时只能有一个实例开启,否则可能会出现错误。
|
||||
@interface AMapNearbySearchManager : NSObject
|
||||
|
||||
///上传最小间隔,默认15s,最小7s。自动上传的过程中设置无效。
|
||||
@property (nonatomic, assign) NSTimeInterval uploadTimeInterval;
|
||||
|
||||
///代理对象。
|
||||
@property (nonatomic, weak) id<AMapNearbySearchManagerDelegate> delegate;
|
||||
|
||||
///是否正在自动上传状态中。
|
||||
@property (nonatomic, readonly) BOOL isAutoUploading;
|
||||
|
||||
/**
|
||||
* @brief manager单例.
|
||||
* 初始化之前请设置key,否则将无法正常使用该服务.
|
||||
* @return nearbySearch实例。
|
||||
*/
|
||||
+ (instancetype)sharedInstance;
|
||||
|
||||
/**
|
||||
* @brief 请使用单例。
|
||||
*/
|
||||
- (instancetype)init __attribute__((unavailable));
|
||||
|
||||
/**
|
||||
* @brief 启动自动上传。
|
||||
*/
|
||||
- (void)startAutoUploadNearbyInfo;
|
||||
|
||||
/**
|
||||
* @brief 关闭自动上传。
|
||||
*/
|
||||
- (void)stopAutoUploadNearbyInfo;
|
||||
|
||||
/**
|
||||
* @brief 执行单次上传,执行间隔不低于uploadTimeInterval最小值,否则执行失败。
|
||||
* @param info 需要上传的信息。
|
||||
* @return 成功执行返回YES,否则返回NO。
|
||||
*/
|
||||
- (BOOL)uploadNearbyInfo:(AMapNearbyUploadInfo *)info __attribute((deprecated("已废弃 since 7.4.0,该功能不再支持")));
|
||||
|
||||
/**
|
||||
* @brief 清除服务器上某一用户的信息。
|
||||
* @param userID 指定的用户ID
|
||||
* @return 成功执行返回YES,否则返回NO。
|
||||
*/
|
||||
- (BOOL)clearUserInfoWithID:(NSString *)userID __attribute((deprecated("已废弃 since 7.4.0,该功能不再支持")));
|
||||
|
||||
@end
|
||||
32
Pods/AMapSearch-NO-IDFA/AMapSearchKit.framework/Headers/AMapNearbyUploadInfo.h
generated
Normal file
32
Pods/AMapSearch-NO-IDFA/AMapSearchKit.framework/Headers/AMapNearbyUploadInfo.h
generated
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
//
|
||||
// AMapNearbyUploadInfo.h
|
||||
// AMapSearchKit
|
||||
//
|
||||
// Created by xiaoming han on 15/9/6.
|
||||
// Copyright (c) 2015年 Amap. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreLocation/CoreLocation.h>
|
||||
|
||||
///上传经纬度类型
|
||||
typedef NS_ENUM(NSInteger, AMapSearchCoordinateType)
|
||||
{
|
||||
AMapSearchCoordinateTypeGPS = 1, ///< 标准GPS坐标
|
||||
AMapSearchCoordinateTypeAMap = 2, ///< 高德坐标
|
||||
};
|
||||
|
||||
|
||||
///附近搜索上传信息
|
||||
@interface AMapNearbyUploadInfo : NSObject<NSCopying>
|
||||
|
||||
///用户唯一标识,不能为空,否则上传会失败. 长度不超过32字符,只能包含英文、数字、下划线、短横杠
|
||||
@property (nonatomic, copy) NSString *userID;
|
||||
|
||||
///坐标类型,默认是 AMapSearchCoordinateTypeAMap
|
||||
@property (nonatomic, assign) AMapSearchCoordinateType coordinateType;
|
||||
|
||||
///用户位置经纬度。
|
||||
@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
|
||||
|
||||
@end
|
||||
|
|
@ -0,0 +1,431 @@
|
|||
//
|
||||
// AMapSearchAPI.h
|
||||
// AMapSearchKit
|
||||
//
|
||||
// Created by xiaoming han on 15/7/22.
|
||||
// Copyright (c) 2015年 Amap. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "AMapSearchObjV1.h"
|
||||
#import "AMapSearchObj.h"
|
||||
#import "AMapCommonObj.h"
|
||||
#import <AMapFoundationKit/AMapServices.h>
|
||||
|
||||
@protocol AMapSearchDelegate;
|
||||
|
||||
///搜索结果语言
|
||||
#define AMapSearchLanguageZhCN @"zh-Hans" ///< 中文
|
||||
#define AMapSearchLanguageEn @"en" ///< 英文
|
||||
|
||||
///搜索类
|
||||
@interface AMapSearchAPI : NSObject
|
||||
|
||||
///实现了 AMapSearchDelegate 协议的类指针。
|
||||
@property (nonatomic, weak) id<AMapSearchDelegate> delegate;
|
||||
|
||||
///查询超时时间,单位秒,默认为20秒。
|
||||
@property (nonatomic, assign) NSInteger timeout;
|
||||
|
||||
// 注意:在使用地图功能前,请通过 [AMapServices sharedServices].regionLanguageType 来设置语言类型 (since 11.2.000)
|
||||
///查询结果返回语言, 默认为中文。
|
||||
//@property (nonatomic, copy) NSString *language;
|
||||
|
||||
///自定义参数
|
||||
@property (nonatomic, copy) NSDictionary<NSString *, NSString *> *customParams;
|
||||
|
||||
/**
|
||||
* @brief AMapSearch的初始化函数。
|
||||
* 初始化之前请正确设置key,否则将无法正常使用搜索服务.
|
||||
* @return AMapSearch类对象实例
|
||||
*/
|
||||
- (instancetype)init;
|
||||
|
||||
/**
|
||||
* @brief 取消所有未回调的请求,触发错误回调。
|
||||
*/
|
||||
- (void)cancelAllRequests;
|
||||
|
||||
#pragma mark - Privacy 隐私合规
|
||||
/**
|
||||
* @brief 更新App是否显示隐私弹窗的状态,隐私弹窗是否包含高德SDK隐私协议内容的状态. since 8.1.0
|
||||
* @param showStatus 隐私弹窗状态
|
||||
* @param containStatus 包含高德SDK隐私协议状态
|
||||
*/
|
||||
+ (void)updatePrivacyShow:(AMapPrivacyShowStatus)showStatus privacyInfo:(AMapPrivacyInfoStatus)containStatus;
|
||||
/**
|
||||
* @brief 更新用户授权高德SDK隐私协议状态. since 8.1.0
|
||||
* @param agreeStatus 用户授权高德SDK隐私协议状态
|
||||
*/
|
||||
+ (void)updatePrivacyAgree:(AMapPrivacyAgreeStatus)agreeStatus;
|
||||
|
||||
|
||||
#pragma mark - 搜索服务接口
|
||||
|
||||
/**
|
||||
* @brief POI ID查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapPOIIDSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapPOIIDSearch:(AMapPOIIDSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief POI 视觉图片搜索接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapVisualSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapPOIPicVisualSearch:(AMapVisualSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief POI 关键字查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapPOIKeywordsSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapPOIKeywordsSearch:(AMapPOIKeywordsSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief POI 周边查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapPOIAroundSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapPOIAroundSearch:(AMapPOIAroundSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief POI 多边形查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapPOIPolygonSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapPOIPolygonSearch:(AMapPOIPolygonSearchRequest *)request;
|
||||
|
||||
#pragma mark - 搜索服务接口V1(API版本V3)
|
||||
|
||||
/**
|
||||
* @brief POI ID查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapPOIIDSearchRequestV1 类。
|
||||
*/
|
||||
- (void)AMapPOIIDSearchV1:(AMapPOIIDSearchRequestV1 *)request;
|
||||
|
||||
/**
|
||||
* @brief POI 关键字查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapPOIKeywordsSearchRequestV1 类。
|
||||
*/
|
||||
- (void)AMapPOIKeywordsSearchV1:(AMapPOIKeywordsSearchRequestV1 *)request;
|
||||
|
||||
/**
|
||||
* @brief POI 周边查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapPOIAroundSearchRequestV1 类。
|
||||
*/
|
||||
- (void)AMapPOIAroundSearchV1:(AMapPOIAroundSearchRequestV1 *)request;
|
||||
|
||||
/**
|
||||
* @brief POI 多边形查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapPOIPolygonSearchRequestV1 类。
|
||||
*/
|
||||
- (void)AMapPOIPolygonSearchV1:(AMapPOIPolygonSearchRequestV1 *)request;
|
||||
|
||||
/**
|
||||
* @brief 沿途查询接口 (v4.3.0)
|
||||
* @param request 查询选项。具体属性字段请参考 AMapRoutePOISearchRequest 类。
|
||||
*/
|
||||
- (void)AMapRoutePOISearch:(AMapRoutePOISearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 地址编码查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapGeocodeSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapGeocodeSearch:(AMapGeocodeSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 逆地址编码查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapReGeocodeSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapReGoecodeSearch:(AMapReGeocodeSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 输入提示查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapInputTipsSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapInputTipsSearch:(AMapInputTipsSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 公交站点查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapBusStopSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapBusStopSearch:(AMapBusStopSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 公交线路关键字查询
|
||||
* @param request 查询选项。具体属性字段请参考 AMapBusLineIDSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapBusLineIDSearch:(AMapBusLineIDSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 公交线路关键字查询
|
||||
* @param request 查询选项。具体属性字段请参考 AMapBusLineNameSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapBusLineNameSearch:(AMapBusLineNameSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 行政区域查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapDistrictSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapDistrictSearch:(AMapDistrictSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 驾车路径规划1.0查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapDrivingRouteSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapDrivingRouteSearch:(AMapDrivingRouteSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 驾车路径规划V2.0查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapDrivingCalRouteSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapDrivingV2RouteSearch:(AMapDrivingCalRouteSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 步行路径规划查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapWalkingRouteSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapWalkingRouteSearch:(AMapWalkingRouteSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 公交路径规划查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapTransitRouteSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapTransitRouteSearch:(AMapTransitRouteSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 骑行路径规划查询接口 (since 4.3.0)
|
||||
* @param request 查询选项。具体属性字段请参考 AMapRidingRouteSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapRidingRouteSearch:(AMapRidingRouteSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 货车路径规划查询接口 (since 6.1.0)
|
||||
* @param request 查询选项。具体属性字段请参考 AMapTruckRouteSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapTruckRouteSearch:(AMapTruckRouteSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 未来路线规划查询接口 (since 6.9.0)
|
||||
* @param request 查询选项。具体属性字段请参考 AMapTruckRouteSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapFutureRouteSearch:(AMapFutureRouteSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 天气查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapWeatherSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapWeatherSearch:(AMapWeatherSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 距离查询(since 6.1.0)
|
||||
* @param request 查询选项。具体属性字段请参考 AMapDistanceSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapDistanceSearch:(AMapDistanceSearchRequest *)request;
|
||||
|
||||
- (void)AMapChargeStationSearch:(AMapChargeStationSearchRequest *)request;
|
||||
#pragma mark - 附近搜索相关
|
||||
|
||||
/**
|
||||
* @brief 附近搜索查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapNearbySearchRequest 类。
|
||||
*/
|
||||
- (void)AMapNearbySearch:(AMapNearbySearchRequest *)request __attribute__((deprecated("已废弃, from 7.4.0,该功能不再支持")));
|
||||
|
||||
#pragma mark - 企业地图搜索相关
|
||||
|
||||
/**
|
||||
* @brief 企业地图周边查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapCloudPOIAroundSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapCloudPOIAroundSearch:(AMapCloudPOIAroundSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 企业地图polygon区域查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapCloudPOIPolygonSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapCloudPOIPolygonSearch:(AMapCloudPOIPolygonSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 企业地图ID查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapCloudPOIIDSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapCloudPOIIDSearch:(AMapCloudPOIIDSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 企业地图本地查询接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapCloudPOILocalSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapCloudPOILocalSearch:(AMapCloudPOILocalSearchRequest *)request;
|
||||
|
||||
#pragma mark - 短串分享相关
|
||||
|
||||
/**
|
||||
* @brief 位置短串分享接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapLocationShareSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapLocationShareSearch:(AMapLocationShareSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 兴趣点短串分享接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapPOIShareSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapPOIShareSearch:(AMapPOIShareSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 路线规划短串分享接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapRouteShareSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapRouteShareSearch:(AMapRouteShareSearchRequest *)request;
|
||||
|
||||
/**
|
||||
* @brief 导航短串分享接口
|
||||
* @param request 查询选项。具体属性字段请参考 AMapNavigationShareSearchRequest 类。
|
||||
*/
|
||||
- (void)AMapNavigationShareSearch:(AMapNavigationShareSearchRequest *)request;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark - AMapSearchDelegate
|
||||
|
||||
///AMapSearchDelegate协议, 定义了搜索结果的回调方法,发生错误时的错误回调方法。
|
||||
@protocol AMapSearchDelegate<NSObject>
|
||||
@optional
|
||||
|
||||
/**
|
||||
* @brief 当请求发生错误时,会调用代理的此方法.
|
||||
* @param request 发生错误的请求.
|
||||
* @param error 返回的错误.
|
||||
*/
|
||||
- (void)AMapSearchRequest:(id)request didFailWithError:(NSError *)error;
|
||||
|
||||
/**
|
||||
* @brief POI查询回调函数
|
||||
* @param request 发起的请求,具体字段参考 AMapPOISearchBaseRequest 及其子类。
|
||||
* @param response 响应结果,具体字段参考 AMapPOISearchResponse 。
|
||||
*/
|
||||
- (void)onPOISearchDone:(AMapPOISearchBaseRequest *)request response:(AMapPOISearchResponse *)response;
|
||||
|
||||
/**
|
||||
* @brief POI查询回调函数
|
||||
* @param request 发起的请求,具体字段参考 AMapPOISearchBaseRequest 及其子类。
|
||||
* @param response 响应结果,具体字段参考 AMapPOISearchResponse 。
|
||||
*/
|
||||
- (void)onPOISearchDoneV1:(AMapPOISearchBaseRequestV1 *)request response:(AMapPOISearchResponseV1 *)response;
|
||||
/**
|
||||
* @brief 视觉图片搜索回调函数
|
||||
* @param request 发起的请求,具体字段参考 AMapVisualSearchRequest 。
|
||||
* @param response 响应结果,具体字段参考 AMapVisualSearchResponse 。
|
||||
*/
|
||||
- (void)onVisualSearchDone:(AMapVisualSearchRequest *)request response:(AMapVisualSearchResponse *)response;
|
||||
|
||||
/**
|
||||
* @brief 沿途查询回调函数 (since v4.3.0)
|
||||
* @param request 发起的请求,具体字段参考 AMapRoutePOISearchRequest 及其子类。
|
||||
* @param response 响应结果,具体字段参考 AMapRoutePOISearchResponse 。
|
||||
*/
|
||||
- (void)onRoutePOISearchDone:(AMapRoutePOISearchRequest *)request response:(AMapRoutePOISearchResponse *)response;
|
||||
|
||||
/**
|
||||
* @brief 地理编码查询回调函数
|
||||
* @param request 发起的请求,具体字段参考 AMapGeocodeSearchRequest 。
|
||||
* @param response 响应结果,具体字段参考 AMapGeocodeSearchResponse 。
|
||||
*/
|
||||
- (void)onGeocodeSearchDone:(AMapGeocodeSearchRequest *)request response:(AMapGeocodeSearchResponse *)response;
|
||||
|
||||
/**
|
||||
* @brief 逆地理编码查询回调函数
|
||||
* @param request 发起的请求,具体字段参考 AMapReGeocodeSearchRequest 。
|
||||
* @param response 响应结果,具体字段参考 AMapReGeocodeSearchResponse 。
|
||||
*/
|
||||
- (void)onReGeocodeSearchDone:(AMapReGeocodeSearchRequest *)request response:(AMapReGeocodeSearchResponse *)response;
|
||||
|
||||
/**
|
||||
* @brief 输入提示查询回调函数
|
||||
* @param request 发起的请求,具体字段参考 AMapInputTipsSearchRequest 。
|
||||
* @param response 响应结果,具体字段参考 AMapInputTipsSearchResponse 。
|
||||
*/
|
||||
- (void)onInputTipsSearchDone:(AMapInputTipsSearchRequest *)request response:(AMapInputTipsSearchResponse *)response;
|
||||
|
||||
/**
|
||||
* @brief 公交站查询回调函数
|
||||
* @param request 发起的请求,具体字段参考 AMapBusStopSearchRequest 。
|
||||
* @param response 响应结果,具体字段参考 AMapBusStopSearchResponse 。
|
||||
*/
|
||||
- (void)onBusStopSearchDone:(AMapBusStopSearchRequest *)request response:(AMapBusStopSearchResponse *)response;
|
||||
|
||||
/**
|
||||
* @brief 公交线路关键字查询回调
|
||||
* @param request 发起的请求,具体字段参考 AMapBusLineSearchRequest 。
|
||||
* @param response 响应结果,具体字段参考 AMapBusLineSearchResponse 。
|
||||
*/
|
||||
- (void)onBusLineSearchDone:(AMapBusLineBaseSearchRequest *)request response:(AMapBusLineSearchResponse *)response;
|
||||
|
||||
/**
|
||||
* @brief 行政区域查询回调函数
|
||||
* @param request 发起的请求,具体字段参考 AMapDistrictSearchRequest 。
|
||||
* @param response 响应结果,具体字段参考 AMapDistrictSearchResponse 。
|
||||
*/
|
||||
- (void)onDistrictSearchDone:(AMapDistrictSearchRequest *)request response:(AMapDistrictSearchResponse *)response;
|
||||
|
||||
/**
|
||||
* @brief 路径规划查询回调
|
||||
* @param request 发起的请求,具体字段参考 AMapRouteSearchBaseRequest 及其子类。
|
||||
* @param response 响应结果,具体字段参考 AMapRouteSearchResponse 。
|
||||
*/
|
||||
- (void)onRouteSearchDone:(AMapRouteSearchBaseRequest *)request response:(AMapRouteSearchResponse *)response;
|
||||
|
||||
/**
|
||||
* @brief 未来路径规划查询回调 since 6.9.0
|
||||
* @param request 发起的请求,具体字段参考 AMapRouteSearchBaseRequest 及其子类。
|
||||
* @param response 响应结果,具体字段参考 AMapRouteSearchResponse 。
|
||||
*/
|
||||
- (void)onFutureRouteSearchDone:(AMapRouteSearchBaseRequest *)request response:(AMapFutureRouteSearchResponse *)response;
|
||||
|
||||
/**
|
||||
* @brief 距离查询回调
|
||||
* @param request 发起的请求,具体字段参考 AMapDistanceSearchRequest 及其子类。
|
||||
* @param response 响应结果,具体字段参考 AMapDistanceSearchResponse 。
|
||||
*/
|
||||
- (void)onDistanceSearchDone:(AMapDistanceSearchRequest *)request response:(AMapDistanceSearchResponse *)response;
|
||||
|
||||
/**
|
||||
* @brief 天气查询回调
|
||||
* @param request 发起的请求,具体字段参考 AMapWeatherSearchRequest 。
|
||||
* @param response 响应结果,具体字段参考 AMapWeatherSearchResponse 。
|
||||
*/
|
||||
- (void)onWeatherSearchDone:(AMapWeatherSearchRequest *)request response:(AMapWeatherSearchResponse *)response;
|
||||
|
||||
#pragma mark - 附近搜索回调
|
||||
|
||||
/**
|
||||
* @brief 附近搜索回调
|
||||
* @param request 发起的请求,具体字段参考 AMapNearbySearchRequest 。
|
||||
* @param response 响应结果,具体字段参考 AMapNearbySearchResponse 。
|
||||
*/
|
||||
- (void)onNearbySearchDone:(AMapNearbySearchRequest *)request response:(AMapNearbySearchResponse *)response;
|
||||
|
||||
#pragma mark - 企业地图搜索回调
|
||||
|
||||
/**
|
||||
* @brief 企业地图查询回调函数
|
||||
* @param request 发起的请求,具体字段参考 AMapCloudSearchBaseRequest 。
|
||||
* @param response 响应结果,具体字段参考 AMapCloudPOISearchResponse 。
|
||||
*/
|
||||
- (void)onCloudSearchDone:(AMapCloudSearchBaseRequest *)request response:(AMapCloudPOISearchResponse *)response;
|
||||
|
||||
#pragma mark - 短串分享搜索回调
|
||||
|
||||
/**
|
||||
* @brief 短串分享搜索回调
|
||||
* @param request 发起的请求
|
||||
* @param response 相应结果,具体字段参考 AMapShareSearchResponse。
|
||||
*/
|
||||
- (void)onShareSearchDone:(AMapShareSearchBaseRequest *)request response:(AMapShareSearchResponse *)response;
|
||||
|
||||
#pragma mark - 车机充电站搜索回调
|
||||
|
||||
/**
|
||||
* @brief 车机充电站搜索回调
|
||||
* @param request 发起的请求
|
||||
* @param response 相应结果,具体字段参考 AMapShareSearchResponse。
|
||||
*/
|
||||
- (void)onChargeStationSearchDone:(AMapChargeStationSearchRequest *)request response:(AMapChargeStationSearchResponse *)response;
|
||||
@end
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
//
|
||||
// AMapSearchError.h
|
||||
// AMapSearchKit
|
||||
//
|
||||
// Created by xiaoming han on 15/7/29.
|
||||
// Copyright (c) 2015年 Amap. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef AMapSearchKit_AMapSearchError_h
|
||||
#define AMapSearchKit_AMapSearchError_h
|
||||
|
||||
///AMapSearch errorDomain
|
||||
extern NSString * const AMapSearchErrorDomain;
|
||||
|
||||
///注意:增加errorCode时,需增加code对应详细说明信息errorInfoWithCode
|
||||
///AMapSearch errorCode
|
||||
typedef NS_ENUM(NSInteger, AMapSearchErrorCode)
|
||||
{
|
||||
AMapSearchErrorOK = 1000,///< 没有错误
|
||||
AMapSearchErrorInvalidSignature = 1001,///< 无效签名
|
||||
AMapSearchErrorInvalidUserKey = 1002,///< key非法或过期
|
||||
AMapSearchErrorServiceNotAvailable = 1003,///< 没有权限使用相应的接口
|
||||
AMapSearchErrorDailyQueryOverLimit = 1004,///< 访问已超出日访问量
|
||||
AMapSearchErrorTooFrequently = 1005,///< 用户访问过于频繁
|
||||
AMapSearchErrorInvalidUserIP = 1006,///< 用户IP无效
|
||||
AMapSearchErrorInvalidUserDomain = 1007,///< 用户域名无效
|
||||
AMapSearchErrorInvalidUserSCode = 1008,///< 安全码验证错误,bundleID与key不对应
|
||||
AMapSearchErrorUserKeyNotMatch = 1009,///< 请求key与绑定平台不符
|
||||
AMapSearchErrorIPQueryOverLimit = 1010,///< IP请求超限
|
||||
AMapSearchErrorNotSupportHttps = 1011,///< 不支持HTTPS请求
|
||||
AMapSearchErrorInsufficientPrivileges = 1012,///< 权限不足,服务请求被拒绝
|
||||
AMapSearchErrorUserKeyRecycled = 1013,///< 开发者key被删除,无法正常使用
|
||||
|
||||
AMapSearchErrorInvalidResponse = 1100,///< 请求服务响应错误
|
||||
AMapSearchErrorInvalidEngineData = 1101,///< 引擎返回数据异常
|
||||
AMapSearchErrorConnectTimeout = 1102,///< 服务端请求链接超时
|
||||
AMapSearchErrorReturnTimeout = 1103,///< 读取服务结果超时
|
||||
AMapSearchErrorInvalidParams = 1200,///< 请求参数非法
|
||||
AMapSearchErrorMissingRequiredParams = 1201,///< 缺少必填参数
|
||||
AMapSearchErrorIllegalRequest = 1202,///< 请求协议非法
|
||||
AMapSearchErrorServiceUnknown = 1203,///< 其他服务端未知错误
|
||||
|
||||
AMapSearchErrorClientUnknown = 1800,///< 客户端未知错误,服务返回结果为空或其他错误
|
||||
AMapSearchErrorInvalidProtocol = 1801,///< 协议解析错误,通常是返回结果无法解析
|
||||
AMapSearchErrorTimeOut = 1802,///< 连接超时
|
||||
AMapSearchErrorBadURL = 1803,///< URL异常
|
||||
AMapSearchErrorCannotFindHost = 1804,///< 找不到主机
|
||||
AMapSearchErrorCannotConnectToHost = 1805,///< 服务器连接失败
|
||||
AMapSearchErrorNotConnectedToInternet = 1806,///< 连接异常,通常为没有网络的情况
|
||||
AMapSearchErrorCancelled = 1807,///< 连接取消
|
||||
|
||||
AMapSearchErrorOverPassPointCount = 1809,///< 途经点个数超限
|
||||
AMapSearchErrorOverPassAreaMaxCount = 1810,///< 避让区域个数超限
|
||||
AMapSearchErrorOverPassAreaMaxArea = 1811,///< 避让区域大小超限
|
||||
AMapSearchErrorOverPassAreaPointCount = 1812,///< 避让区域点个数超限
|
||||
AMapSearchErrorOverPassKeyWordLenth = 1813,///< 搜索关键字长度超限
|
||||
|
||||
AMapSearchErrorTableIDNotExist = 2000,///< table id 格式不正确
|
||||
AMapSearchErrorIDNotExist = 2001,///< id 不存在
|
||||
AMapSearchErrorServiceMaintenance = 2002,///< 服务器维护中
|
||||
AMapSearchErrorEngineTableIDNotExist = 2003,///< key对应的table id 不存在
|
||||
AMapSearchErrorInvalidNearbyUserID = 2100,///< 找不到对应userID的信息
|
||||
AMapSearchErrorNearbyKeyNotBind = 2101,///< key未开通“附近”功能
|
||||
|
||||
AMapSearchErrorOutOfService = 3000,///< 规划点(包括起点、终点、途经点)不在中国范围内
|
||||
AMapSearchErrorNoRoadsNearby = 3001,///< 规划点(包括起点、终点、途经点)附近搜不到道路
|
||||
AMapSearchErrorRouteFailed = 3002,///< 路线计算失败,通常是由于道路连通关系导致
|
||||
AMapSearchErrorOverDirectionRange = 3003,///< 起点终点距离过长
|
||||
|
||||
AMapSearchErrorShareLicenseExpired = 4000,///< 短串分享认证失败
|
||||
AMapSearchErrorShareFailed = 4001,///< 短串请求失败
|
||||
};
|
||||
|
||||
@interface AMapSearchError : NSObject
|
||||
|
||||
///错误码所对应详细信息
|
||||
+ (NSString *)errorInfoWithCode:(AMapSearchErrorCode)errorCode;
|
||||
|
||||
@end
|
||||
#endif
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
//
|
||||
// AMapSearchKit.h
|
||||
// AMapSearchKit
|
||||
//
|
||||
// Created by xiaoming han on 15/7/22.
|
||||
// Copyright (c) 2015年 Amap. All rights reserved.
|
||||
//
|
||||
|
||||
#import <AMapSearchKit/AMapSearchAPI.h>
|
||||
#import <AMapSearchKit/AMapSearchObj.h>
|
||||
#import <AMapSearchKit/AMapCommonObj.h>
|
||||
#import <AMapSearchKit/AMapSearchError.h>
|
||||
#import <AMapSearchKit/AMapNearbySearchManager.h>
|
||||
#import <AMapSearchKit/AMapNearbyUploadInfo.h>
|
||||
|
||||
#import <AMapSearchKit/AMapSearchVersion.h>
|
||||
|
|
@ -0,0 +1,912 @@
|
|||
//
|
||||
// AMapSearchObj.h
|
||||
// AMapSearchKit
|
||||
//
|
||||
// Created by xiaoming han on 15/7/22.
|
||||
// Copyright (c) 2015年 Amap. All rights reserved.
|
||||
//
|
||||
|
||||
/* 该文件定义了搜索请求和返回对象。*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "AMapCommonObj.h"
|
||||
|
||||
///沿途搜索类型
|
||||
typedef NS_ENUM(NSInteger, AMapRoutePOISearchType)
|
||||
{
|
||||
AMapRoutePOISearchTypeGasStation = 0, ///< 加油站
|
||||
AMapRoutePOISearchTypeMaintenanceStation = 1, ///< 维修站
|
||||
AMapRoutePOISearchTypeATM = 2, ///< ATM
|
||||
AMapRoutePOISearchTypeToilet = 3, ///< 厕所
|
||||
AMapRoutePOISearchTypeGasAirStation = 4, ///< 加气站
|
||||
AMapRoutePOISearchTypeParkStation = 5, ///< 服务区
|
||||
AMapRoutePOISearchTypeChargingPile = 6, ///< 充电桩
|
||||
AMapRoutePOISearchTypeFood = 7, ///< 美食
|
||||
AMapRoutePOISearchTypeHotel = 8, ///< 酒店
|
||||
};
|
||||
|
||||
///天气查询类型
|
||||
typedef NS_ENUM(NSInteger, AMapWeatherType)
|
||||
{
|
||||
AMapWeatherTypeLive = 1, ///< 实时
|
||||
AMapWeatherTypeForecast ///< 预报
|
||||
};
|
||||
|
||||
///企业地图搜索结果排序
|
||||
typedef NS_ENUM(NSInteger, AMapCloudSortType)
|
||||
{
|
||||
AMapCloudSortTypeDESC = 0, ///< 降序
|
||||
AMapCloudSortTypeASC = 1 ///< 升序
|
||||
};
|
||||
|
||||
///附近搜索距离类型
|
||||
typedef NS_ENUM(NSInteger, AMapNearbySearchType)
|
||||
{
|
||||
AMapNearbySearchTypeLiner = 0, ///< 直线距离
|
||||
AMapNearbySearchTypeDriving = 1, ///< 驾车行驶距离
|
||||
};
|
||||
|
||||
///货车类型
|
||||
typedef NS_ENUM(NSInteger, AMapTruckSizeType)
|
||||
{
|
||||
AMapTruckSizeTypeMini = 1, ///< 微型车
|
||||
AMapTruckSizeTypeLight = 2, ///< 轻型车
|
||||
AMapTruckSizeTypeMedium = 3, ///< 中型车
|
||||
AMapTruckSizeTypeHeavy = 4, ///< 重型车
|
||||
};
|
||||
|
||||
///规避道路类型
|
||||
typedef NS_ENUM(NSInteger, AMapDrivingRouteExcludeType)
|
||||
{
|
||||
AMapDrivingRouteExcludeTypeNone = 0, ///< 不规避
|
||||
AMapDrivingRouteExcludeTypeToll = 1, ///< 收费道路
|
||||
AMapDrivingRouteExcludeTypeMotorway = 2, ///< 高速路
|
||||
AMapDrivingRouteExcludeTypeFerry = 3, ///< 渡船
|
||||
};
|
||||
|
||||
///规避道路类型 @since 9.2.0
|
||||
typedef NS_OPTIONS(NSUInteger, AMapDrivingRouteShowFieldType)
|
||||
{
|
||||
AMapDrivingRouteShowFieldTypeNone = 1 << 0, ///< 不返回扩展信息
|
||||
AMapDrivingRouteShowFieldTypeCost = 1 << 1, ///< 返回方案所需时间及费用成本
|
||||
AMapDrivingRouteShowFieldTypeTmcs = 1 << 2, ///< 返回分段路况详情
|
||||
AMapDrivingRouteShowFieldTypeNavi = 1 << 3, ///< 返回详细导航动作指令
|
||||
AMapDrivingRouteShowFieldTypeCities = 1 << 4, ///< 返回分段途径城市信息
|
||||
AMapDrivingRouteShowFieldTypePolyline = 1 << 5, ///< 返回分段路坐标点串,两点间用“,”分隔
|
||||
AMapDrivingRouteShowFieldTypeNewEnergy = 1 << 6,///< 返回分段路坐标点串,两点间用“,”分隔
|
||||
AMapDrivingRouteShowFieldTypeAll = ~0UL, ///< 返回所有扩展信息
|
||||
};
|
||||
|
||||
///步行路线规划返回结果控制 @since 9.4.0
|
||||
typedef NS_OPTIONS(NSUInteger, AMapWalkingRouteShowFieldType)
|
||||
{
|
||||
AMapWalkingRouteShowFieldTypeNone = 0 << 0, ///< 不返回扩展信息
|
||||
AMapWalkingRouteShowFieldTypeCost = 1 << 0, ///< 返回方案所需时间及费用成本
|
||||
AMapWalkingRouteShowFieldTypeNavi = 1 << 1, ///< 返回详细导航动作指令
|
||||
AMapWalkingRouteShowFieldTypePolyline = 1 << 2, ///< 返回分路段坐标点串,两点间用“,”分隔
|
||||
AMapWalkingRouteShowFieldTypeAll = ~0UL, ///< 返回所有扩展信息
|
||||
};
|
||||
|
||||
///公交车路线规划返回结果控制 @since 9.4.0
|
||||
typedef NS_OPTIONS(NSUInteger, AMapTransitRouteShowFieldsType)
|
||||
{
|
||||
AMapTransitRouteShowFieldsTypeNone = 1 << 0, ///< 不返回扩展信息
|
||||
AMapTransitRouteShowFieldsTypeCost = 1 << 1, ///< 返回方案所需时间及费用成本
|
||||
AMapTransitRouteShowFieldsTypeNavi = 1 << 2, ///< 返回详细导航动作指令
|
||||
AMapTransitRouteShowFieldsTypePolyline = 1 << 3, ///< 返回分路段坐标点串,两点间用“,”分隔
|
||||
AMapTransitRouteShowFieldsTypeAll = ~0UL, ///< 返回所有扩展信息
|
||||
};
|
||||
|
||||
///骑行路线规划返回结果控制 @since 9.4.0
|
||||
typedef NS_OPTIONS(NSUInteger, AMapRidingRouteShowFieldsType)
|
||||
{
|
||||
AMapRidingRouteShowFieldsTypeNone = 1 << 0, ///< 不返回扩展信息
|
||||
AMapRidingRouteShowFieldsTypeCost = 1 << 1, ///< 返回方案所需时间及费用成本
|
||||
AMapRidingRouteShowFieldsTypeNavi = 1 << 2, ///< 返回详细导航动作指令
|
||||
AMapRidingRouteShowFieldsTypePolyline = 1 << 3, ///< 返回分路段坐标点串,两点间用“,”分隔
|
||||
AMapRidingRouteShowFieldsTypeAll = ~0UL, ///< 返回所有扩展信息
|
||||
};
|
||||
|
||||
/// 搜索POI返回结果控制 @since 9.4.0
|
||||
typedef NS_OPTIONS(NSUInteger, AMapPOISearchShowFieldsType)
|
||||
{
|
||||
AMapPOISearchShowFieldsTypeNone = 1 << 0, ///< 不返回扩展信息
|
||||
AMapPOISearchShowFieldsTypeChildren = 1 << 1, ///< 返回子POI信息
|
||||
AMapPOISearchShowFieldsTypeBusiness = 1 << 2, ///< 返回商业信息
|
||||
AMapPOISearchShowFieldsTypeIndoor = 1 << 3, ///< 返回室内相关信息
|
||||
AMapPOISearchShowFieldsTypeNavi = 1 << 4, ///< 返回导航位置相关信息
|
||||
AMapPOISearchShowFieldsTypePhotos = 1 << 5, ///< 返回poi图片相关信息
|
||||
AMapPOISearchShowFieldsTypeAll = ~0UL, ///< 返回所有扩展信息
|
||||
};
|
||||
|
||||
///距离测量类型 @since 7.7.0
|
||||
typedef NS_ENUM(NSInteger, AMapDistanceSearchType)
|
||||
{
|
||||
AMapDistanceSearchTypeStraight = 0, ///< 直线距离
|
||||
AMapDistanceSearchTypeDrive = 1, ///< 驾车导航距离
|
||||
AMapDistanceSearchTypeWalk = 3, ///< 步行导航距离
|
||||
};
|
||||
|
||||
#pragma mark - AMapPOISearchBaseRequest
|
||||
|
||||
///POI搜索请求基类
|
||||
@interface AMapPOISearchBaseRequest : AMapSearchObject
|
||||
///类型,多个类型用“|”分割 可选值:文本分类、分类代码
|
||||
@property (nonatomic, copy) NSString *types;
|
||||
///排序规则, 0-距离排序;1-综合排序, 默认0
|
||||
@property (nonatomic, assign) NSInteger sortrule;
|
||||
///每页记录数, 范围1-25, [default = 10]
|
||||
@property (nonatomic, assign) NSInteger offset;
|
||||
///当前页数, 范围1-100, [default = 1]
|
||||
@property (nonatomic, assign) NSInteger page;
|
||||
///设置需要返回的扩展信息,默认为AMapPOISearchShowFieldsTypeNone,只返回基础信息字段
|
||||
@property (nonatomic, assign) AMapPOISearchShowFieldsType showFieldsType;
|
||||
@end
|
||||
|
||||
///POI ID搜索请求
|
||||
@interface AMapPOIIDSearchRequest : AMapPOISearchBaseRequest
|
||||
///poi唯一标识,最多可以传入10个id,多个id之间用“|”分隔。必填
|
||||
@property (nonatomic, copy) NSString *uid;
|
||||
@end
|
||||
|
||||
#pragma mark - AMapVisualSearchRequest
|
||||
|
||||
///视觉图片搜索请求 (since 9.7.0)
|
||||
@interface AMapVisualSearchRequest : AMapSearchObject
|
||||
///图片数据存储地址,必填
|
||||
@property (nonatomic, copy) NSString *pic;
|
||||
///用户位置,经度在前纬度在后,经纬度小数点后不得超过6位,必填
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///用户方位,0-360度,必填
|
||||
@property (nonatomic, assign) CGFloat angle;
|
||||
///用户设备标识,必填
|
||||
@property (nonatomic, copy) NSString *adiu;
|
||||
@property (nonatomic, copy) NSString *apiKey;
|
||||
|
||||
@end
|
||||
|
||||
///POI关键字搜索
|
||||
@interface AMapPOIKeywordsSearchRequest : AMapPOISearchBaseRequest
|
||||
///查询关键字,多个关键字用“|”分割
|
||||
@property (nonatomic, copy) NSString *keywords;
|
||||
///查询城市,可选值:cityname(中文或中文全拼)、citycode、adcode.(注:台湾省的城市一律设置为【台湾】,不具体到市。)
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
///强制城市限制功能 默认NO,例如:在上海搜索天安门,如果citylimit为true,将不返回北京的天安门相关的POI
|
||||
@property (nonatomic, assign) BOOL cityLimit;
|
||||
///设置后,如果sortrule==0,则返回结果会按照距离此点的远近来排序,since 5.2.1
|
||||
@property (nonatomic, strong) AMapGeoPoint *location;
|
||||
|
||||
@end
|
||||
|
||||
///POI周边搜索
|
||||
@interface AMapPOIAroundSearchRequest : AMapPOISearchBaseRequest
|
||||
///查询关键字,多个关键字用“|”分割。可选
|
||||
@property (nonatomic, copy) NSString *keywords;
|
||||
///中心点坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///查询半径,范围:0-50000,单位:米 [default = 3000]
|
||||
@property (nonatomic, assign) NSInteger radius;
|
||||
///查询城市,可选值:cityname(中文或中文全拼)、citycode、adcode。注:当用户指定的经纬度和city出现冲突,若范围内有用户指定city的数据,则返回相关数据,否则返回为空。(since 5.7.0)
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
@end
|
||||
|
||||
///POI多边形搜索
|
||||
@interface AMapPOIPolygonSearchRequest : AMapPOISearchBaseRequest
|
||||
///查询关键字,多个关键字用“|”分割。可选
|
||||
@property (nonatomic, copy) NSString *keywords;
|
||||
///多边形区域,多个坐标对集合,坐标对用"|"分割。多边形为矩形时,可传入左上右下两顶点坐标对;其他情况下首尾坐标对需相同。必填
|
||||
@property (nonatomic, copy) AMapGeoPolygon *polygon;
|
||||
@end
|
||||
|
||||
///POI搜索返回
|
||||
@interface AMapPOISearchResponse : AMapSearchObject
|
||||
///返回的POI数目
|
||||
@property (nonatomic, assign) NSInteger count;
|
||||
///关键字建议列表和城市建议列表
|
||||
@property (nonatomic, strong) AMapSuggestion *suggestion;
|
||||
///POI结果,AMapPOI 数组
|
||||
@property (nonatomic, strong) NSArray<AMapPOI *> *pois;
|
||||
@end
|
||||
|
||||
///视觉识别POI,在AMapPOI基础上扩展视觉识别接口特有的字段 @since 9.7.0
|
||||
@interface AMapVisualPOI : AMapPOI
|
||||
///行业类型
|
||||
@property (nonatomic, copy) NSString *bizType;
|
||||
///别名
|
||||
@property (nonatomic, copy) NSString *alias;
|
||||
///特色内容,主要出现在美食类POI中,代表特色菜
|
||||
@property (nonatomic, copy) NSString *tag;
|
||||
///榜单列表
|
||||
@property (nonatomic, strong) NSArray<AMapTopListItem *> *topList;
|
||||
///精选评论
|
||||
@property (nonatomic, copy) NSString *featuredReviews;
|
||||
@end
|
||||
|
||||
///视觉图片搜索返回 (since 9.7.0)
|
||||
@interface AMapVisualSearchResponse : AMapSearchObject
|
||||
///场景分类,取值为 poi 或其他
|
||||
@property (nonatomic, copy) NSString *category;
|
||||
///识别出的POI结果,AMapVisualPOI 数组。仅在 category 为 poi 时有返回
|
||||
@property (nonatomic, strong) NSArray<AMapVisualPOI *> *pois;
|
||||
@end
|
||||
|
||||
#pragma mark - AMapPOIRouteSearchRequest
|
||||
///沿途搜索, 注意起点和终点不能相距太远(大概70公里),否则可能搜索结果为空
|
||||
@interface AMapRoutePOISearchRequest : AMapSearchObject
|
||||
///中心点坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *origin;
|
||||
///目标点坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *destination;
|
||||
///搜索类型
|
||||
@property (nonatomic, assign) AMapRoutePOISearchType searchType;
|
||||
///驾车导航策略,同驾车路径规划请求的策略(5 多策略除外)
|
||||
@property (nonatomic, assign) NSInteger strategy;
|
||||
///道路周围搜索范围,单位米,[0-500],默认250。
|
||||
@property (nonatomic, assign) NSInteger range;
|
||||
///用户自己规划的路线,在origin、destination未填入时为必填.格式为:"经度,纬度;经度,纬度;...". 目前限制个数最多为100个点
|
||||
@property (nonatomic, strong) NSString *polylineStr;
|
||||
///用户自己规划的路线,在origin、destination未填入且polylineStr未填入时为必填. 目前限制个数最多为100个点
|
||||
@property (nonatomic, strong) NSArray<AMapGeoPoint*> *polyline;
|
||||
|
||||
@end
|
||||
|
||||
///沿途搜索返回
|
||||
@interface AMapRoutePOISearchResponse : AMapSearchObject
|
||||
///返回的POI数目
|
||||
@property (nonatomic, assign) NSInteger count;
|
||||
///POI结果,AMapRoutePOI 数组
|
||||
@property (nonatomic, strong) NSArray<AMapRoutePOI *> *pois;
|
||||
@end
|
||||
|
||||
#pragma mark - AMapInputTipsSearchRequest
|
||||
|
||||
///搜索提示请求
|
||||
@interface AMapInputTipsSearchRequest : AMapSearchObject
|
||||
///查询关键字
|
||||
@property (nonatomic, copy) NSString *keywords;
|
||||
///查询城市,可选值:cityname(中文或中文全拼)、citycode、adcode.
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
///类型,多个类型用“|”分割 可选值:文本分类、分类代码
|
||||
@property (nonatomic, copy) NSString *types;
|
||||
///强制城市限制功能,例如:在上海搜索天安门,如果citylimit为true,将不返回北京的天安门相关的POI
|
||||
@property (nonatomic, assign) BOOL cityLimit;
|
||||
///格式形如:@"116.481488,39.990464",(经度,纬度),不可以包含空格。如果设置,在此location附近优先返回搜索关键词信息, since 5.0.0
|
||||
@property (nonatomic, copy) NSString *location;
|
||||
@end
|
||||
|
||||
///搜索提示返回
|
||||
@interface AMapInputTipsSearchResponse : AMapSearchObject
|
||||
///返回数目
|
||||
@property (nonatomic, assign) NSInteger count;
|
||||
///提示列表 AMapTip 数组, AMapTip 有多种属性,可根据该对象的返回信息,配合其他搜索服务使用,完善您应用的功能。如:\n 1)uid为空,location为空,该提示语为品牌词,可根据该品牌词进行POI关键词搜索。\n 2)uid不为空,location为空,为公交线路,根据uid进行公交线路查询。\n 3)uid不为空,location也不为空,是一个真实存在的POI,可直接显示在地图上。
|
||||
@property (nonatomic, strong) NSArray<AMapTip *> *tips;
|
||||
@end
|
||||
|
||||
#pragma mark - AMapGeocodeSearchRequest
|
||||
|
||||
///地理编码请求
|
||||
@interface AMapGeocodeSearchRequest : AMapSearchObject
|
||||
///地址
|
||||
@property (nonatomic, copy) NSString *address;
|
||||
///查询城市,可选值:cityname(中文或中文全拼)、citycode、adcode.
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
///指定查询国家,支持多个国家,用“|”分隔,可选值:国家代码ISO 3166 或 global,仅海外生效(since 7.4.0)
|
||||
@property (nonatomic, copy) NSString *country;
|
||||
@end
|
||||
|
||||
///地理编码返回
|
||||
@interface AMapGeocodeSearchResponse : AMapSearchObject
|
||||
///返回数目
|
||||
@property (nonatomic, assign) NSInteger count;
|
||||
///地理编码结果 AMapGeocode 数组
|
||||
@property (nonatomic, strong) NSArray<AMapGeocode *> *geocodes;
|
||||
@end
|
||||
|
||||
|
||||
#pragma mark - AMapReGeocodeSearchRequest
|
||||
|
||||
///逆地理编码请求
|
||||
@interface AMapReGeocodeSearchRequest : AMapSearchObject
|
||||
///是否返回扩展信息,默认NO。
|
||||
@property (nonatomic, assign) BOOL requireExtension;
|
||||
///中心点坐标。
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///查询半径,单位米,范围0~3000,默认1000。
|
||||
@property (nonatomic, assign) NSInteger radius;
|
||||
///指定返回结果poi数组中的POI类型,在requireExtension=YES时生效。输入为typecode, 支持传入多个typecode, 多值时用“|”分割
|
||||
@property (nonatomic, copy) NSString *poitype;
|
||||
///distance 按距离返回,score 按权重返回,仅海外生效(since 7.4.0)
|
||||
@property (nonatomic, copy) NSString *mode;
|
||||
|
||||
@end
|
||||
|
||||
///逆地理编码返回
|
||||
@interface AMapReGeocodeSearchResponse : AMapSearchObject
|
||||
///逆地理编码结果
|
||||
@property (nonatomic, strong) AMapReGeocode *regeocode;
|
||||
@end
|
||||
|
||||
#pragma mark - AMapBusStopSearchRequest
|
||||
|
||||
///公交站点请求
|
||||
@interface AMapBusStopSearchRequest : AMapSearchObject
|
||||
///查询关键字
|
||||
@property (nonatomic, copy) NSString *keywords;
|
||||
///城市 可选值:cityname(中文或中文全拼)、citycode、adcode
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
///每页记录数,默认为20,取值为:1-50
|
||||
@property (nonatomic, assign) NSInteger offset;
|
||||
///当前页数,默认值为1,取值为:1-100
|
||||
@property (nonatomic, assign) NSInteger page;
|
||||
@end
|
||||
|
||||
///公交站点返回
|
||||
@interface AMapBusStopSearchResponse : AMapSearchObject
|
||||
///公交站数目
|
||||
@property (nonatomic, assign) NSInteger count;
|
||||
///关键字建议列表和城市建议列表
|
||||
@property (nonatomic, strong) AMapSuggestion *suggestion;
|
||||
///公交站点数组,数组中存放AMapBusStop对象
|
||||
@property (nonatomic, strong) NSArray<AMapBusStop *> *busstops;
|
||||
@end
|
||||
|
||||
#pragma mark - AMapBusLineSearchRequest
|
||||
|
||||
///公交线路查询请求基类,不可直接调用
|
||||
@interface AMapBusLineBaseSearchRequest : AMapSearchObject
|
||||
///城市 可选值:cityname(中文或中文全拼)、citycode、adcode
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
///是否返回扩展信息,默认为NO
|
||||
@property (nonatomic, assign) BOOL requireExtension;
|
||||
///每页记录数,默认为20,取值为1-50
|
||||
@property (nonatomic, assign) NSInteger offset;
|
||||
///当前页数,默认为1,取值为1-100
|
||||
@property (nonatomic, assign) NSInteger page;
|
||||
@end
|
||||
|
||||
///公交站线路根据名字请求
|
||||
@interface AMapBusLineNameSearchRequest : AMapBusLineBaseSearchRequest
|
||||
///查询关键字
|
||||
@property (nonatomic, copy) NSString *keywords;
|
||||
@end
|
||||
|
||||
///公交站线路根据ID请求
|
||||
@interface AMapBusLineIDSearchRequest : AMapBusLineBaseSearchRequest
|
||||
///唯一标识
|
||||
@property (nonatomic, copy) NSString *uid;
|
||||
@end
|
||||
|
||||
///公交站线路返回
|
||||
@interface AMapBusLineSearchResponse : AMapSearchObject
|
||||
///返回公交站数目
|
||||
@property (nonatomic, assign) NSInteger count;
|
||||
///关键字建议列表和城市建议列表
|
||||
@property (nonatomic, strong) AMapSuggestion *suggestion;
|
||||
///公交线路数组,数组中存放 AMapBusLine 对象
|
||||
@property (nonatomic, strong) NSArray<AMapBusLine *> *buslines;
|
||||
@end
|
||||
|
||||
#pragma mark - AMapDistrictSearchRequest
|
||||
///行政区划查询请求
|
||||
@interface AMapDistrictSearchRequest : AMapSearchObject
|
||||
///查询关键字,只支持单关键字搜索,全国范围
|
||||
@property (nonatomic, copy) NSString *keywords;
|
||||
///是否返回边界坐标,默认NO
|
||||
@property (nonatomic, assign) BOOL requireExtension;
|
||||
///是否显示商圈信息,默认NO。注:已废弃,行政区划搜索无商圈信息。
|
||||
@property (nonatomic, assign) BOOL showBusinessArea __attribute__((deprecated("已废弃, from 5.3.0")));;
|
||||
///每页记录数, 范围1-50, [default = 20]
|
||||
@property (nonatomic, assign) NSInteger offset;
|
||||
///当前页数, 范围1-100, [default = 1]
|
||||
@property (nonatomic, assign) NSInteger page;
|
||||
///子区域层级,默认1。规则:设置显示下级行政区级数(行政区级别包括:国家、省/直辖市、市、区/县、乡镇/街道多级数据)可选值:0、1、2、3等数字,0-不返回下级行政区;1-返回下一级行政区;2-返回下两级行政区;3-返回下三级行政区
|
||||
@property (nonatomic, assign) NSInteger subdistrict;
|
||||
|
||||
@end
|
||||
|
||||
///行政区划响应
|
||||
@interface AMapDistrictSearchResponse : AMapSearchObject
|
||||
///返回数目
|
||||
@property (nonatomic, assign) NSInteger count;
|
||||
///行政区域 AMapDistrict 数组
|
||||
@property (nonatomic, strong) NSArray<AMapDistrict *> *districts;
|
||||
@end
|
||||
|
||||
#pragma mark - AMapRouteSearchBaseRequest
|
||||
|
||||
///路径规划基础类,不可直接调用
|
||||
@interface AMapRouteSearchBaseRequest : AMapSearchObject
|
||||
///出发点
|
||||
@property (nonatomic, copy) AMapGeoPoint *origin;
|
||||
///目的地
|
||||
@property (nonatomic, copy) AMapGeoPoint *destination;
|
||||
@end
|
||||
|
||||
#pragma mark - AMapDrivingCalRouteSearchRequest
|
||||
|
||||
///驾车路径规划2.0
|
||||
@interface AMapDrivingCalRouteSearchRequest : AMapRouteSearchBaseRequest
|
||||
/**
|
||||
驾车导航策略,默认策略为32。
|
||||
32:默认,高德推荐,同高德地图APP默认
|
||||
33:躲避拥堵
|
||||
34:高速优先
|
||||
35:不走高速
|
||||
36:少收费
|
||||
37:大路优先
|
||||
38:速度最快
|
||||
39:躲避拥堵+高速优先
|
||||
40:躲避拥堵+不走高速
|
||||
41:躲避拥堵+少收费
|
||||
42:少收费+不走高速
|
||||
43:躲避拥堵+少收费+不走高速
|
||||
44:躲避拥堵+大路优先
|
||||
45:躲避拥堵+速度最快
|
||||
*/
|
||||
@property (nonatomic, assign) NSInteger strategy;
|
||||
///途经点 AMapGeoPoint 数组,目前最多支持16个途经点
|
||||
@property (nonatomic, copy) NSArray<AMapGeoPoint *> *waypoints;
|
||||
///避让区域 AMapGeoPolygon 数组,目前最多支持32个避让区域,每个区域16个点
|
||||
@property (nonatomic, copy) NSArray<AMapGeoPolygon *> *avoidpolygons;
|
||||
///避让道路名
|
||||
@property (nonatomic, copy) NSString *avoidroad;
|
||||
///出发点 POI ID
|
||||
@property (nonatomic, copy) NSString *originId;
|
||||
///目的地 POI ID
|
||||
@property (nonatomic, copy) NSString *destinationId;
|
||||
///出发点POI类型编码,此值可以辅助更精准的起点算路,0:普通道路、1:高架上、2:高架下、3:主路、4:辅路、5:隧道、7:环岛、9:停车场内部
|
||||
@property (nonatomic, copy) NSString *origintype;
|
||||
///目的地POI类型编码
|
||||
@property (nonatomic, copy) NSString *destinationtype;
|
||||
///车牌信息,如京AHA322,支持6位传统车牌和7位新能源车牌,用于判断是否限行
|
||||
@property (nonatomic, copy) NSString *plate;
|
||||
///使用轮渡,0使用1不使用,默认为0使用
|
||||
@property (nonatomic, assign) NSInteger ferry;
|
||||
/**
|
||||
驾车路径规划车辆类型,默认策略为0。
|
||||
0:普通汽车(默认值);
|
||||
1:纯电动车;
|
||||
2:插电混动车
|
||||
*/
|
||||
@property (nonatomic, assign) NSInteger cartype;
|
||||
///设置需要返回的扩展信息,默认为AMapDrivingRouteShowFieldTypeNone,只返回基础信息字段
|
||||
@property (nonatomic, assign) AMapDrivingRouteShowFieldType showFieldType;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark - AMapDrivingRouteSearchRequest
|
||||
|
||||
///驾车路径规划
|
||||
@interface AMapDrivingRouteSearchRequest : AMapRouteSearchBaseRequest
|
||||
|
||||
/**
|
||||
驾车导航策略,默认策略为0。
|
||||
0,速度优先(时间);1,费用优先(不走收费路段的最快道路);2,距离优先;3,不走快速路;4,躲避拥堵;
|
||||
5,多策略(同时使用速度优先、费用优先、距离优先三个策略计算路径),其中必须说明,就算使用三个策略算路,会根据路况不固定的返回一至三条路径规划信息;
|
||||
6,不走高速;7,不走高速且避免收费;8,躲避收费和拥堵;9,不走高速且躲避收费和拥堵;
|
||||
10,多备选,时间最短,距离最短,躲避拥堵(考虑路况);
|
||||
11,多备选,时间最短,距离最短;
|
||||
12,多备选,躲避拥堵(考虑路况);
|
||||
13,多备选,不走高速;
|
||||
14,多备选,费用优先;
|
||||
15,多备选,躲避拥堵,不走高速(考虑路况);
|
||||
16,多备选,费用有限,不走高速;
|
||||
17,多备选,躲避拥堵,费用优先(考虑路况);
|
||||
18,多备选,躲避拥堵,不走高速,费用优先(考虑路况);
|
||||
19,多备选,高速优先;
|
||||
20,多备选,高速优先,躲避拥堵(考虑路况)
|
||||
*/
|
||||
@property (nonatomic, assign) NSInteger strategy;
|
||||
///途经点 AMapGeoPoint 数组,目前最多支持6个途经点
|
||||
@property (nonatomic, copy) NSArray<AMapGeoPoint *> *waypoints;
|
||||
///避让区域 AMapGeoPolygon 数组,目前最多支持100个避让区域,每个区域16个点
|
||||
@property (nonatomic, copy) NSArray<AMapGeoPolygon *> *avoidpolygons;
|
||||
///避让道路名
|
||||
@property (nonatomic, copy) NSString *avoidroad;
|
||||
///出发点 POI ID
|
||||
@property (nonatomic, copy) NSString *originId;
|
||||
///目的地 POI ID
|
||||
@property (nonatomic, copy) NSString *destinationId;
|
||||
///出发点POI类型编码
|
||||
@property (nonatomic, copy) NSString *origintype;
|
||||
///目的地POI类型编码
|
||||
@property (nonatomic, copy) NSString *destinationtype;
|
||||
///是否返回扩展信息,默认为 NO
|
||||
@property (nonatomic, assign) BOOL requireExtension;
|
||||
///车牌省份,用汉字填入车牌省份缩写。用于判断是否限行
|
||||
@property (nonatomic, copy) NSString *plateProvince;
|
||||
///车牌详情,填入除省份及标点之外的字母和数字(需大写)。用于判断是否限行。
|
||||
@property (nonatomic, copy) NSString *plateNumber;
|
||||
///使用轮渡,0使用1不使用,默认为0使用
|
||||
@property (nonatomic, assign) NSInteger ferry;
|
||||
/**
|
||||
驾车路径规划车辆类型,默认策略为0。
|
||||
0:普通汽车(默认值);
|
||||
1:纯电动车;
|
||||
2:插电混动车
|
||||
*/
|
||||
@property (nonatomic, assign) NSInteger cartype;
|
||||
///规避道路类型,默认为AMapDrivingRouteExcludeTypeNone,仅海外生效
|
||||
@property (nonatomic, assign) AMapDrivingRouteExcludeType exclude;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark - AMapWalkingRouteSearchRequest
|
||||
|
||||
///步行路径规划
|
||||
@interface AMapWalkingRouteSearchRequest : AMapRouteSearchBaseRequest
|
||||
///是否提供备选步行方案([default = 0])0-只提供一条步行方案; 1-提供备选步行方案(有可能无备选方案)
|
||||
@property (nonatomic, assign) NSInteger multipath __attribute__((deprecated("已废弃, from 5.0.0")));
|
||||
|
||||
///是否需要室内算路. 0 : 不需要 (默认值); 1 : 需要
|
||||
@property (nonatomic, assign) NSInteger isindoor;
|
||||
///返回路线条数, 0: 默认返回一条路线方案; 1 : 多备选路线中第一条路线; 2 : 多备选路线中前两条路线; 3 : 多备选路线中三条路线
|
||||
@property (nonatomic, assign) NSInteger alternativeRoute;
|
||||
///设置需要返回的扩展信息,默认为AMapPOISearchShowFieldsTypeNone,只返回基础信息字段
|
||||
@property (nonatomic, assign) AMapWalkingRouteShowFieldType showFieldsType;
|
||||
@end
|
||||
|
||||
#pragma mark - AMapTransitRouteSearchRequest
|
||||
|
||||
///公交路径规划
|
||||
@interface AMapTransitRouteSearchRequest : AMapRouteSearchBaseRequest
|
||||
///公交换乘策略([default = 0])
|
||||
/*
|
||||
0:推荐模式,综合权重,同高德APP默认
|
||||
1:最经济模式,票价最低
|
||||
2:最少换乘模式,换乘次数少
|
||||
3:最少步行模式,尽可能减少步行距离
|
||||
4:最舒适模式,尽可能乘坐空调车
|
||||
5:不乘地铁模式,不乘坐地铁路线
|
||||
6:地铁图模式,起终点都是地铁站(地铁图模式下originpoi及destinationpoi为必填项)
|
||||
7:地铁优先模式,步行距离不超过4KM
|
||||
8:时间短模式,方案花费总时间最少
|
||||
*/
|
||||
@property (nonatomic, assign) NSInteger strategy;
|
||||
///起点所在城市, 必填. 仅支持citycode
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
///目的地所在城市, 必填. 仅支持citycode,与city相同时代表同城,不同时代表跨城
|
||||
@property (nonatomic, copy) NSString *destinationCity;
|
||||
///是否包含夜班车,默认为 NO
|
||||
@property (nonatomic, assign) BOOL nightflag;
|
||||
///起点POI ID
|
||||
@property (nonatomic, copy) NSString *originPOI;
|
||||
///目的地POI ID
|
||||
@property (nonatomic, copy) NSString *destinationPOI;
|
||||
///起点所在行政区域编码
|
||||
@property (nonatomic, copy) NSString *adcode;
|
||||
///终点所在行政区域编码
|
||||
@property (nonatomic, copy) NSString *destinationAdcode;
|
||||
///返回方案条数 可传入1-10的阿拉伯数字,代表返回的不同条数。默认值:5
|
||||
@property (nonatomic, assign) NSInteger alternativeRoute;
|
||||
/// 是否返回所有地铁出入口,默认为NO
|
||||
@property (nonatomic, assign) BOOL multiExport;
|
||||
/// 最大换乘次数 0:直达 1:最多换乘1次 2:最多换乘2次 3:最多换乘3次 4:最多换乘4次。默认值:4
|
||||
@property (nonatomic, assign) NSInteger maxTrans;
|
||||
///请求日期 例如:2013-10-28
|
||||
@property (nonatomic, copy) NSString *date;
|
||||
///请求时间 例如:9-54
|
||||
@property (nonatomic, copy) NSString *time;
|
||||
///返回结果控制
|
||||
@property (nonatomic, assign) AMapTransitRouteShowFieldsType showFieldsType;
|
||||
@end
|
||||
|
||||
#pragma mark - AMapRidingRouteSearchRequest
|
||||
|
||||
///骑行路径规划
|
||||
@interface AMapRidingRouteSearchRequest : AMapRouteSearchBaseRequest
|
||||
///返回路线条数, 0: 默认返回一条路线方案; 1 : 多备选路线中第一条路线; 2 : 多备选路线中前两条路线; 3 : 多备选路线中三条路线
|
||||
@property (nonatomic, assign) NSInteger alternativeRoute;
|
||||
///返回结果控制
|
||||
@property (nonatomic, assign) AMapRidingRouteShowFieldsType showFieldsType;
|
||||
@end
|
||||
|
||||
///路径规划返回
|
||||
@interface AMapRouteSearchResponse : AMapSearchObject
|
||||
///路径规划信息数目
|
||||
@property (nonatomic, assign) NSInteger count;
|
||||
///路径规划信息
|
||||
@property (nonatomic, strong) AMapRoute *route;
|
||||
@end
|
||||
|
||||
///骑行路径规划返回
|
||||
@interface AMapRidingRouteSearchResponse : AMapRouteSearchResponse
|
||||
@end
|
||||
|
||||
#pragma mark - AMapTruckRouteSearchRequest
|
||||
|
||||
///货车路径规划(since 6.1.0)
|
||||
@interface AMapTruckRouteSearchRequest : AMapRouteSearchBaseRequest
|
||||
|
||||
/**
|
||||
驾车导航策略,默认为策略1。
|
||||
1,返回的结果考虑路况,尽量躲避拥堵而规划路径,与高德地图的“躲避拥堵”策略一致;
|
||||
2,返回的结果不走高速,与高德地图“不走高速”策略一致;
|
||||
3,返回的结果尽可能规划收费较低甚至免费的路径,与高德地图“避免收费”策略一致;
|
||||
4,返回的结果考虑路况,尽量躲避拥堵而规划路径,并且不走高速,与高德地图的“躲避拥堵&不走高速”策略一致;
|
||||
5,返回的结果尽量不走高速,并且尽量规划收费较低甚至免费的路径结果,与高德地图的“避免收费&不走高速”策略一致;
|
||||
6,返回路径规划结果会尽量的躲避拥堵,并且规划收费较低甚至免费的路径结果,与高德地图的“躲避拥堵&避免收费”策略一致;
|
||||
7,返回的结果尽量躲避拥堵,规划收费较低甚至免费的路径结果,并且尽量不走高速路,与高德地图的“避免拥堵&避免收费&不走高速”策略一致;
|
||||
8,返回的结果会优先选择高速路,与高德地图的“高速优先”策略一致;
|
||||
9,返回的结果会优先考虑高速路,并且会考虑路况躲避拥堵,与高德地图的“躲避拥堵&高速优先”策略一致。
|
||||
*/
|
||||
@property (nonatomic, assign) NSInteger strategy;
|
||||
///途经点 AMapGeoPoint 数组,最多支持16个途经点
|
||||
@property (nonatomic, copy) NSArray<AMapGeoPoint *> *waypoints;
|
||||
///出发点 POI ID
|
||||
@property (nonatomic, copy) NSString *originId;
|
||||
///目的地 POI ID
|
||||
@property (nonatomic, copy) NSString *destinationId;
|
||||
///出发点POI类型编码
|
||||
@property (nonatomic, copy) NSString *origintype;
|
||||
///目的地POI类型编码
|
||||
@property (nonatomic, copy) NSString *destinationtype;
|
||||
///车牌省份,用汉字填入车牌省份缩写。用于判断是否限行
|
||||
@property (nonatomic, copy) NSString *plateProvince;
|
||||
///车牌详情,填入除省份及标点之外的字母和数字(需大写)。用于判断是否限行。
|
||||
@property (nonatomic, copy) NSString *plateNumber;
|
||||
///货车大小,默认为 轻型车(AMapTruckSizeTypeLight)
|
||||
@property (nonatomic, assign) AMapTruckSizeType size;
|
||||
///车辆高度,单位米,取值[0 – 25.5]米,默认 1.6 米
|
||||
@property (nonatomic, assign) CGFloat height;
|
||||
///车辆宽度,单位米,取值[0 – 25.5]米,默认 2.5 米
|
||||
@property (nonatomic, assign) CGFloat width;
|
||||
///车辆总重,单位吨,取值[0 – 6553.5]吨,默认 0.9 吨
|
||||
@property (nonatomic, assign) CGFloat load;
|
||||
///货车核定载重,单位吨,取值[0 – 6553.5]吨,默认 10 吨
|
||||
@property (nonatomic, assign) CGFloat weight;
|
||||
///车辆轴数,单位个,取值[0 –255]个,默认 2个轴
|
||||
@property (nonatomic, assign) NSInteger axis;
|
||||
///是否返回扩展信息,默认为 NO (since 7.6.0)
|
||||
@property (nonatomic, assign) BOOL requireExtension;
|
||||
@end
|
||||
|
||||
#pragma mark - AMapDistanceSearchRequest
|
||||
|
||||
///距离查询请求(since 6.1.0)
|
||||
@interface AMapDistanceSearchRequest : AMapSearchObject
|
||||
///起点坐标数组,最多支持100个点。
|
||||
@property (nonatomic, strong) NSArray<AMapGeoPoint *> *origins;
|
||||
///终点坐标
|
||||
@property (nonatomic, strong) AMapGeoPoint *destination;
|
||||
///路径计算的类型,当type为导航距离时,会考虑路况,故在不同时间请求返回结果可能不同;
|
||||
@property (nonatomic, assign) AMapDistanceSearchType type;
|
||||
///驾车距离测量策略,参考驾车路径规划。仅当type为AMapDistanceSearchTypeDrive时有效,默认4
|
||||
@property (nonatomic, assign) NSInteger strategy;
|
||||
///是否返回扩展信息,默认为 NO (since 7.6.0)
|
||||
@property (nonatomic, assign) BOOL requireExtension;
|
||||
@end
|
||||
|
||||
///距离查询结果(since 6.1.0)
|
||||
@interface AMapDistanceSearchResponse : AMapSearchObject
|
||||
///距离查询结果 AMapDistanceResult 数组。
|
||||
@property (nonatomic, strong) NSArray<AMapDistanceResult *> *results;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark - AMapWeatherSearchRequest
|
||||
|
||||
///天气查询请求
|
||||
@interface AMapWeatherSearchRequest : AMapSearchObject
|
||||
///城市名称,支持cityname及adcode
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
///气象类型,Live为实时天气,Forecast为后三天预报天气,默认为Live
|
||||
@property (nonatomic, assign) AMapWeatherType type;
|
||||
@end
|
||||
|
||||
///天气查询返回
|
||||
@interface AMapWeatherSearchResponse : AMapSearchObject
|
||||
///实时天气数据信息 AMapLocalWeatherLive 数组,仅在请求实时天气时有返回。
|
||||
@property (nonatomic, strong) NSArray<AMapLocalWeatherLive *> *lives;
|
||||
///预报天气数据信息 AMapLocalWeatherForecast 数组,仅在请求预报天气时有返回
|
||||
@property (nonatomic, strong) NSArray<AMapLocalWeatherForecast *> *forecasts;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark - AMapNearbySearchRequest
|
||||
///附近搜索请求
|
||||
@interface AMapNearbySearchRequest : AMapSearchObject
|
||||
///中心点坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *center;
|
||||
///查询半径,范围:[0, 10000],单位:米 [default = 1000]
|
||||
@property (nonatomic, assign) NSInteger radius;
|
||||
///搜索距离类型,默认为直线距离
|
||||
@property (nonatomic, assign) AMapNearbySearchType searchType;
|
||||
///检索时间范围,超过24小时的数据无法返回,范围[5, 24*60*60] 单位:秒 [default = 1800]
|
||||
@property (nonatomic, assign) NSInteger timeRange;
|
||||
///返回条数,范围[1, 100], 默认30
|
||||
@property (nonatomic, assign) NSInteger limit;
|
||||
@end
|
||||
|
||||
///附近搜索返回
|
||||
@interface AMapNearbySearchResponse : AMapSearchObject
|
||||
///结果总条数
|
||||
@property (nonatomic, assign) NSInteger count;
|
||||
///周边用户信息 AMapNearbyUserInfo 数组
|
||||
@property (nonatomic, strong) NSArray<AMapNearbyUserInfo *> *infos;
|
||||
@end
|
||||
|
||||
#pragma mark - AMapCloudSearchBaseRequest
|
||||
|
||||
///企业地图搜索请求基类
|
||||
@interface AMapCloudSearchBaseRequest : AMapSearchObject
|
||||
///要查询的表格ID, 必选
|
||||
@property (nonatomic, copy) NSString *tableID;
|
||||
///筛选条件数组, 可选, 说明:\n 1.支持建立索引的字段根据多个条件筛选,多个条件用双&符号连接;\n 2.判断符合支持:>= 大于等于,<= 小于等于,>大于,<小于,= 精确匹配(text索引不可用);\n 3.示例规则:key1=value1&&key2=value2&&lastloctime>=1469817532,示例:"name=王师傅|张师傅&&lastloctime>=1469817532
|
||||
@property (nonatomic, strong) NSArray<NSString *> *filter;
|
||||
///排序字段名, 可选.\n 说明:\n 1.支持按建立了排序筛选索引的整数或小数字段进行排序:sortFields = "字段名";\n 2.系统预设的字段(忽略sortType):_distance:坐标与中心点距离升序排序,仅在周边检索时有效(若其它请求使用会异常返回);_weight:权重降序排序,当存在keywords时有效;\n;
|
||||
@property (nonatomic, copy) NSString *sortFields;
|
||||
///可选, 排序方式(默认升序)
|
||||
@property (nonatomic, assign) AMapCloudSortType sortType;
|
||||
///可选, 每页记录数(每页最大记录数100, 默认20)
|
||||
@property (nonatomic, assign) NSInteger offset;
|
||||
///可选, 当前页数(>=1, 默认1)
|
||||
@property (nonatomic, assign) NSInteger page;
|
||||
@end
|
||||
|
||||
#pragma mark - AMapCloudPlaceAroundSearchRequest
|
||||
|
||||
///企业地图周边搜请求
|
||||
@interface AMapCloudPOIAroundSearchRequest : AMapCloudSearchBaseRequest
|
||||
///必填,中心点坐标。
|
||||
@property (nonatomic, copy) AMapGeoPoint *center;
|
||||
///可选,查询半径(默认值为3000),单位:米
|
||||
@property (nonatomic, assign) NSInteger radius;
|
||||
///可选,搜索关键词。\n 说明:1. 只支持建立过文本索引的字段查询/n 2.支持关键字模糊检索,即对建立【文本索引字段】对应列内容进行模糊检索;如keywords=工商银行,检索返回已建立文本索引列值中包含“工商”或者“银行”或者“工商银行”关键字的POI结果集。/n 3.支持关键字多值模糊检索;如keywords=招商银行&&华夏银行&&工商银行,检索返回已建立索引列值中包含“招商银行”或者“华夏银行”或者“工商银行”的POI结果集,不会返回检索词切分后,如仅包含“招商”或者“银行”的POI集
|
||||
@property (nonatomic, copy) NSString *keywords;
|
||||
@end
|
||||
|
||||
///企业地图polygon区域查询请求
|
||||
@interface AMapCloudPOIPolygonSearchRequest : AMapCloudSearchBaseRequest
|
||||
///必填,多边形。
|
||||
@property (nonatomic, copy) AMapGeoPolygon *polygon;
|
||||
///可选,搜索关键词。\n 说明:1. 只支持建立过文本索引的字段查询/n 2.支持关键字模糊检索,即对建立【文本索引字段】对应列内容进行模糊检索;如keywords=工商银行,检索返回已建立文本索引列值中包含“工商”或者“银行”或者“工商银行”关键字的POI结果集。/n 3.支持关键字多值模糊检索;如keywords=招商银行&&华夏银行&&工商银行,检索返回已建立索引列值中包含“招商银行”或者“华夏银行”或者“工商银行”的POI结果集,不会返回检索词切分后,如仅包含“招商”或者“银行”的POI集
|
||||
@property (nonatomic, copy) NSString *keywords;
|
||||
@end
|
||||
|
||||
///企业地图ID查询请求
|
||||
@interface AMapCloudPOIIDSearchRequest : AMapCloudSearchBaseRequest
|
||||
///必填,POI的ID
|
||||
@property (nonatomic, assign) NSInteger uid;
|
||||
@end
|
||||
|
||||
///企业地图本地查询请求
|
||||
@interface AMapCloudPOILocalSearchRequest : AMapCloudSearchBaseRequest
|
||||
///可选,搜索关键词。\n 说明:1. 只支持建立过文本索引的字段查询/n 2.支持关键字模糊检索,即对建立【文本索引字段】对应列内容进行模糊检索;如keywords=工商银行,检索返回已建立文本索引列值中包含“工商”或者“银行”或者“工商银行”关键字的POI结果集。/n 3.支持关键字多值模糊检索;如keywords=招商银行&&华夏银行&&工商银行,检索返回已建立索引列值中包含“招商银行”或者“华夏银行”或者“工商银行”的POI结果集,不会返回检索词切分后,如仅包含“招商”或者“银行”的POI集
|
||||
@property (nonatomic, copy) NSString *keywords;
|
||||
///必填,城市名称\n 说明:\n 1. 支持全国/省/市/区县行政区划范围的检索;\n 2. city = "全国",即对用户全表搜索;\n 3. 当city值设置非法或不正确时,按照 city = "全国"返回。
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
@end
|
||||
|
||||
///企业地图搜索返回
|
||||
@interface AMapCloudPOISearchResponse : AMapSearchObject
|
||||
///返回结果总数目
|
||||
@property (nonatomic, assign) NSInteger count;
|
||||
///返回的结果, AMapCloudPOI 数组
|
||||
@property (nonatomic, strong) NSArray<AMapCloudPOI *> *POIs;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark - AMapShareSearchBaseRequest
|
||||
|
||||
///短串分享搜索请求基类, 请使用具体的子类。
|
||||
@interface AMapShareSearchBaseRequest : AMapSearchObject
|
||||
@end
|
||||
|
||||
///位置短串分享请求
|
||||
@interface AMapLocationShareSearchRequest : AMapShareSearchBaseRequest
|
||||
///必填, 位置坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///位置名称,请不要包含【,%&@#】等特殊符号
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
@end
|
||||
|
||||
///兴趣点短串分享请求
|
||||
@interface AMapPOIShareSearchRequest : AMapShareSearchBaseRequest
|
||||
///POI的ID,如果有ID则指定POI,否则按name查询。
|
||||
@property (nonatomic, copy) NSString *uid;
|
||||
///坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///名称,请不要包含【,%&@#】等特殊符号。
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
///地址,请不要包含【,%&@#】等特殊符号。
|
||||
@property (nonatomic, copy) NSString *address;
|
||||
@end
|
||||
|
||||
///路径规划短串分享请求
|
||||
@interface AMapRouteShareSearchRequest : AMapShareSearchBaseRequest
|
||||
///默认为0\n 驾车:0-速度最快(时间);\n 1-避免收费(不走收费路段的最快道路);\n 2-距离优先;\n 3-不走高速;\n 4-结合实时交通(躲避拥堵);\n 5-不走高速且避免收费;\n 6-不走高速且躲避拥堵;\n 7-躲避收费和拥堵;\n 8-不走高速且躲避收费和拥堵\n\n 公交:0-最快捷;\n 1-最经济;\n 2-最少换乘;\n 3-最少步行;\n 4-最舒适;\n 5-不乘地铁;\n\n 步行,无策略,均一样
|
||||
@property (nonatomic, assign) NSInteger strategy;
|
||||
///Route的type,默认为0,超出范围为0.\n 0为驾车,\n 1为公交,\n 2为步行
|
||||
@property (nonatomic, assign) NSInteger type;
|
||||
///起点坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *startCoordinate;
|
||||
///终点坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *destinationCoordinate;
|
||||
///起点名称,默认为“已选择的位置”,请不要包含【,%&@#】等特殊符号
|
||||
@property (nonatomic, copy) NSString *startName;
|
||||
///终点名称,默认为“已选择的位置”,请不要包含【,%&@#】等特殊符号
|
||||
@property (nonatomic, copy) NSString *destinationName;
|
||||
@end
|
||||
|
||||
///导航短串分享请求
|
||||
@interface AMapNavigationShareSearchRequest : AMapShareSearchBaseRequest
|
||||
|
||||
///默认为0,超出范围为0\n 驾车:0-速度最快(时间);\n 1-避免收费(不走收费路段的最快道路);\n 2-距离优先;\n 3-不走高速;\n 4-结合实时交通(躲避拥堵);\n 5-不走高速且避免收费;\n 6-不走高速且躲避拥堵;\n 7-躲避收费和拥堵;\n 8-不走高速且躲避收费和拥堵
|
||||
@property (nonatomic, assign) NSInteger strategy;
|
||||
///起点坐标,若跳转到高德地图,默认更换为定位坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *startCoordinate;
|
||||
///终点坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *destinationCoordinate;
|
||||
@end
|
||||
|
||||
///导航短串分享响应
|
||||
@interface AMapShareSearchResponse : AMapSearchObject
|
||||
///转换后的短串
|
||||
@property (nonatomic, copy) NSString *shareURL;
|
||||
@end
|
||||
|
||||
///未来路线规划(since 6.9.0)
|
||||
@interface AMapFutureRouteSearchRequest : AMapRouteSearchBaseRequest
|
||||
///出发时间 单位为秒
|
||||
@property (nonatomic, copy) NSString *beginTime;
|
||||
///时间间隔 单位为秒
|
||||
@property (nonatomic, assign) NSInteger interval;
|
||||
///时间点个数,最多48个
|
||||
@property (nonatomic, assign) NSInteger timeCount;
|
||||
/**
|
||||
未来路线规划策略,默认策略为0。
|
||||
1,返回的结果考虑路况,尽量躲避拥堵而规划路径,与高德地图的“躲避拥堵”策略一致
|
||||
2,返回的结果不走高速,与高德地图“不走高速”策略一致
|
||||
3,返回的结果尽可能规划收费较低甚至免费的路径,与高德地图“避免收费”策略一致
|
||||
4,返回的结果考虑路况,尽量躲避拥堵而规划路径,并且不走高速,与高德地图的“躲避拥堵&不走高速”策略一致
|
||||
5,返回的结果尽量不走高速,并且尽量规划收费较低甚至免费的路径结果,与高德地图的“避免收费&不走高速”策略一致
|
||||
6,返回路径规划结果会尽量的躲避拥堵,并且规划收费较低甚至免费的路径结果,与高德地图的“躲避拥堵&避免收费”策略一致
|
||||
7,返回的结果尽量躲避拥堵,规划收费较低甚至免费的路径结果,并且尽量不走高速路,与高德地图的“避免拥堵&避免收费&不走高速”策略一致
|
||||
8,返回的结果会优先选择高速路,与高德地图的“高速优先”策略一致
|
||||
9,返回的结果会优先考虑高速路,并且会考虑路况躲避拥堵,与高德地图的“躲避拥堵&高速优先”策略一致
|
||||
10,不考虑路况,返回速度最优、耗时最短的路线,但是此路线不一定距离最短
|
||||
11,避让拥堵&速度优先&避免收费
|
||||
*/
|
||||
@property (nonatomic, assign) NSInteger strategy;
|
||||
///出发点 POI ID
|
||||
@property (nonatomic, copy) NSString *originId;
|
||||
///目的地 POI ID
|
||||
@property (nonatomic, copy) NSString *destinationId;
|
||||
///出发点POI类型编码
|
||||
@property (nonatomic, copy) NSString *origintype;
|
||||
///目的地POI类型编码
|
||||
@property (nonatomic, copy) NSString *destinationtype;
|
||||
///终点的父POI ID
|
||||
@property (nonatomic, copy) NSString *parentId;
|
||||
|
||||
/////是否返回扩展信息,默认为 NO
|
||||
//@property (nonatomic, assign) BOOL requireExtension;
|
||||
///车牌省份,用汉字填入车牌省份缩写。用于判断是否限行
|
||||
@property (nonatomic, copy) NSString *plateProvince;
|
||||
///车牌详情,填入除省份及标点之外的字母和数字(需大写)。用于判断是否限行。
|
||||
@property (nonatomic, copy) NSString *plateNumber;
|
||||
/**
|
||||
驾车路径规划车辆类型,默认策略为0。
|
||||
0:普通汽车(默认值);
|
||||
1:纯电动车;
|
||||
2:插电混动车
|
||||
*/
|
||||
@property (nonatomic, assign) NSInteger cartype;
|
||||
@end
|
||||
|
||||
///未来路线规划(since 6.9.0)
|
||||
@interface AMapFutureRouteSearchResponse : AMapSearchObject
|
||||
///路径规划方案,只会返回AMapPath中的distance、totalTrafficLights、steps
|
||||
@property (nonatomic, strong) NSArray<AMapPath *> *paths;
|
||||
///不同时间的规划以及信息列表
|
||||
@property (nonatomic, strong) NSArray<AMapFutureTimeInfo *> *timeInfos;
|
||||
@end
|
||||
|
||||
/// 充电站搜索(since 9.7.0)
|
||||
@interface AMapChargeStationSearchRequest : AMapSearchObject
|
||||
@end
|
||||
|
||||
/// 充电站搜索(since 9.7.0)
|
||||
@interface AMapChargeStationSearchResponse : AMapSearchObject
|
||||
@end
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
//
|
||||
// AMapSearchObjV1.h
|
||||
// AMapSearchKit
|
||||
//
|
||||
// Created by xiaoming han on 15/7/22.
|
||||
// Copyright (c) 2015年 Amap. All rights reserved.
|
||||
//
|
||||
|
||||
/* 该文件定义了搜索请求和返回对象。*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "AMapCommonObj.h"
|
||||
#import "AMapSearchObj.h"
|
||||
#pragma mark - AMapPOISearchBaseRequestV1
|
||||
|
||||
///POI搜索请求基类
|
||||
@interface AMapPOISearchBaseRequestV1 : AMapSearchObject
|
||||
///类型,多个类型用“|”分割 可选值:文本分类、分类代码
|
||||
@property (nonatomic, copy) NSString *types;
|
||||
///排序规则, 0-距离排序;1-综合排序, 默认0
|
||||
@property (nonatomic, assign) NSInteger sortrule;
|
||||
///每页记录数, 范围1-25, [default = 20]
|
||||
@property (nonatomic, assign) NSInteger offset;
|
||||
///当前页数, 范围1-100, [default = 1]
|
||||
@property (nonatomic, assign) NSInteger page;
|
||||
///建筑物POI编号,传入建筑物POI之后,则只在该建筑物之内进行搜索(since 4.5.0)
|
||||
@property (nonatomic, copy) NSString *building;
|
||||
///是否返回扩展信息,默认为 NO。
|
||||
@property (nonatomic, assign) BOOL requireExtension;
|
||||
///是否返回子POI,默认为 NO。
|
||||
@property (nonatomic, assign) BOOL requireSubPOIs;
|
||||
@end
|
||||
|
||||
///POI ID搜索请求
|
||||
@interface AMapPOIIDSearchRequestV1 : AMapPOISearchBaseRequestV1
|
||||
///POI全局唯一ID
|
||||
@property (nonatomic, copy) NSString *uid;
|
||||
@end
|
||||
|
||||
///POI关键字搜索
|
||||
@interface AMapPOIKeywordsSearchRequestV1 : AMapPOISearchBaseRequestV1
|
||||
///查询关键字,多个关键字用“|”分割
|
||||
@property (nonatomic, copy) NSString *keywords;
|
||||
///查询城市,可选值:cityname(中文或中文全拼)、citycode、adcode.(注:台湾省的城市一律设置为【台湾】,不具体到市。)
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
///强制城市限制功能 默认NO,例如:在上海搜索天安门,如果citylimit为true,将不返回北京的天安门相关的POI
|
||||
@property (nonatomic, assign) BOOL cityLimit;
|
||||
///设置后,如果sortrule==0,则返回结果会按照距离此点的远近来排序,since 5.2.1
|
||||
@property (nonatomic, strong) AMapGeoPoint *location;
|
||||
|
||||
@end
|
||||
|
||||
///POI周边搜索
|
||||
@interface AMapPOIAroundSearchRequestV1 : AMapPOISearchBaseRequestV1
|
||||
///查询关键字,多个关键字用“|”分割
|
||||
@property (nonatomic, copy) NSString *keywords;
|
||||
///中心点坐标
|
||||
@property (nonatomic, copy) AMapGeoPoint *location;
|
||||
///查询半径,范围:0-50000,单位:米 [default = 1500]
|
||||
@property (nonatomic, assign) NSInteger radius;
|
||||
///查询城市,可选值:cityname(中文或中文全拼)、citycode、adcode。注:当用户指定的经纬度和city出现冲突,若范围内有用户指定city的数据,则返回相关数据,否则返回为空。(since 5.7.0)
|
||||
@property (nonatomic, copy) NSString *city;
|
||||
///是否对结果进行人工干预,如火车站,原因为poi较为特殊,结果存在人工干预,干预结果优先,所以距离优先的排序未生效,默认为YES (since 7.4.0)
|
||||
@property (nonatomic, assign) BOOL special;
|
||||
|
||||
@end
|
||||
|
||||
///POI多边形搜索
|
||||
@interface AMapPOIPolygonSearchRequestV1 : AMapPOISearchBaseRequestV1
|
||||
///查询关键字,多个关键字用“|”分割
|
||||
@property (nonatomic, copy) NSString *keywords;
|
||||
///多边形
|
||||
@property (nonatomic, copy) AMapGeoPolygon *polygon;
|
||||
@end
|
||||
|
||||
///POI搜索返回
|
||||
@interface AMapPOISearchResponseV1 : AMapSearchObject
|
||||
///返回的POI数目
|
||||
@property (nonatomic, assign) NSInteger count;
|
||||
///关键字建议列表和城市建议列表
|
||||
@property (nonatomic, strong) AMapSuggestion *suggestion;
|
||||
///POI结果,AMapPOI 数组
|
||||
@property (nonatomic, strong) NSArray<AMapPOI *> *pois;
|
||||
@end
|
||||
26
Pods/AMapSearch-NO-IDFA/AMapSearchKit.framework/Headers/AMapSearchVersion.h
generated
Normal file
26
Pods/AMapSearch-NO-IDFA/AMapSearchKit.framework/Headers/AMapSearchVersion.h
generated
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
//
|
||||
// AMapSearchVersion.h
|
||||
// AMapSearchKit
|
||||
//
|
||||
// Created by xiaoming han on 15/10/27.
|
||||
// Copyright © 2015年 Amap. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AMapFoundationKit/AMapFoundationVersion.h>
|
||||
|
||||
#ifndef AMapSearchVersion_h
|
||||
#define AMapSearchVersion_h
|
||||
|
||||
#define AMapSearchVersionNumber 90800
|
||||
#define AMapSearchMinRequiredFoundationVersion 10900
|
||||
|
||||
// 依赖库版本检测
|
||||
#if AMapFoundationVersionNumber < AMapSearchMinRequiredFoundationVersion
|
||||
#error "The AMapFoundationKit version is less than minimum required, please update! Any questions please to visit http://lbs.amap.com"
|
||||
#endif
|
||||
|
||||
FOUNDATION_EXTERN NSString * const AMapSearchVersion;
|
||||
FOUNDATION_EXTERN NSString * const AMapSearchName;
|
||||
|
||||
#endif /* AMapSearchVersion_h */
|
||||
Binary file not shown.
|
|
@ -0,0 +1,6 @@
|
|||
framework module AMapSearchKit {
|
||||
umbrella header "AMapSearchKit.h"
|
||||
export *
|
||||
|
||||
module * { export * }
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
9.8.0+sea.0c27f12
|
||||
|
|
@ -6,6 +6,8 @@ PODS:
|
|||
- AMapFoundation-NO-IDFA (>= 1.9.0)
|
||||
- AMapNavi-NO-IDFA (11.2.000):
|
||||
- AMapFoundation-NO-IDFA (>= 1.9.0)
|
||||
- AMapSearch-NO-IDFA (9.8.0):
|
||||
- AMapFoundation-NO-IDFA (>= 1.9.0)
|
||||
- BRPickerView (3.0.0):
|
||||
- BRPickerView/Default (= 3.0.0)
|
||||
- BRPickerView/Core (3.0.0)
|
||||
|
|
@ -188,6 +190,7 @@ DEPENDENCIES:
|
|||
- AlipaySDK-iOS
|
||||
- AMapLocation-NO-IDFA
|
||||
- AMapNavi-NO-IDFA
|
||||
- AMapSearch-NO-IDFA
|
||||
- BRPickerView
|
||||
- CocoaLumberjack/Swift
|
||||
- CocoaMQTT
|
||||
|
|
@ -231,6 +234,7 @@ SPEC REPOS:
|
|||
- AMapFoundation-NO-IDFA
|
||||
- AMapLocation-NO-IDFA
|
||||
- AMapNavi-NO-IDFA
|
||||
- AMapSearch-NO-IDFA
|
||||
- BRPickerView
|
||||
- CocoaLumberjack
|
||||
- CocoaMQTT
|
||||
|
|
@ -296,6 +300,7 @@ SPEC CHECKSUMS:
|
|||
AMapFoundation-NO-IDFA: a2e3c895398d7ee757278e1a0a8f9359da4b146e
|
||||
AMapLocation-NO-IDFA: 7cd8fc837ea41edfbf4d937cd20572e277b77d18
|
||||
AMapNavi-NO-IDFA: d55b9b138c6e540f737c689975cae2c9dbd1026a
|
||||
AMapSearch-NO-IDFA: c0afd2a69a076d4228becda4401dbe4a279a03ef
|
||||
BRPickerView: cd2e0e3aa87af062bc7a1b6f78d3dfd5f04f04bb
|
||||
CocoaLumberjack: e4ba3b414dfca8c1916c6303d37f63b3a95134c6
|
||||
CocoaMQTT: 1e2fa493d57045d66fb1eba2bb5ffb8d77039c60
|
||||
|
|
@ -347,6 +352,6 @@ SPEC CHECKSUMS:
|
|||
YYImage: 1e1b62a9997399593e4b9c4ecfbbabbf1d3f3b54
|
||||
ZXSDK: 786338c0a18e98e03eda00699c3bfd2700b97117
|
||||
|
||||
PODFILE CHECKSUM: 848cd9ba02b2f1c209ac9eef708dd2c43b005385
|
||||
PODFILE CHECKSUM: 55d478000a8bba48e7bb7de252ef246a0b3784c4
|
||||
|
||||
COCOAPODS: 1.16.2
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
58
Pods/Pods.xcodeproj/xcuserdata/yanghong.xcuserdatad/xcschemes/AMapSearch-NO-IDFA.xcscheme
generated
Normal file
58
Pods/Pods.xcodeproj/xcuserdata/yanghong.xcuserdatad/xcschemes/AMapSearch-NO-IDFA.xcscheme
generated
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1600"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "4F1379598302C9160590B3650C10E1A5"
|
||||
BuildableName = "AMapSearch-NO-IDFA"
|
||||
BlueprintName = "AMapSearch-NO-IDFA"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
|
|
@ -19,6 +19,11 @@
|
|||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>AMapSearch-NO-IDFA.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>Alamofire-Alamofire.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
|
|
|
|||
17
Pods/Target Support Files/AMapSearch-NO-IDFA/AMapSearch-NO-IDFA.debug.xcconfig
generated
Normal file
17
Pods/Target Support Files/AMapSearch-NO-IDFA/AMapSearch-NO-IDFA.debug.xcconfig
generated
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
ARCHS = $(ARCHS_STANDARD)
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/AMapSearch-NO-IDFA
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AMapSearch-NO-IDFA"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
OTHER_LDFLAGS = $(inherited) -l"z" -framework "CoreLocation" -framework "CoreTelephony" -framework "Security" -framework "SystemConfiguration"
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
|
||||
PODS_ROOT = ${SRCROOT}
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/AMapSearch-NO-IDFA
|
||||
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||
SKIP_INSTALL = YES
|
||||
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
||||
|
||||
FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*] = $(inherited) "${PODS_ROOT}/AMapFoundation-NO-IDFA"
|
||||
17
Pods/Target Support Files/AMapSearch-NO-IDFA/AMapSearch-NO-IDFA.release.xcconfig
generated
Normal file
17
Pods/Target Support Files/AMapSearch-NO-IDFA/AMapSearch-NO-IDFA.release.xcconfig
generated
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
ARCHS = $(ARCHS_STANDARD)
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/AMapSearch-NO-IDFA
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AMapSearch-NO-IDFA"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
OTHER_LDFLAGS = $(inherited) -l"z" -framework "CoreLocation" -framework "CoreTelephony" -framework "Security" -framework "SystemConfiguration"
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
|
||||
PODS_ROOT = ${SRCROOT}
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/AMapSearch-NO-IDFA
|
||||
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||
SKIP_INSTALL = YES
|
||||
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
||||
|
||||
FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*] = $(inherited) "${PODS_ROOT}/AMapFoundation-NO-IDFA"
|
||||
|
|
@ -16,6 +16,11 @@ Copyright © 2014 AutoNavi. All Rights Reserved.
|
|||
Copyright © 2014 AutoNavi. All Rights Reserved.
|
||||
|
||||
|
||||
## AMapSearch-NO-IDFA
|
||||
|
||||
Copyright © 2014 AutoNavi. All Rights Reserved.
|
||||
|
||||
|
||||
## Alamofire
|
||||
|
||||
Copyright (c) 2014-2022 Alamofire Software Foundation (http://alamofire.org/)
|
||||
|
|
|
|||
|
|
@ -45,6 +45,17 @@
|
|||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>Copyright © 2014 AutoNavi. All Rights Reserved.
|
||||
</string>
|
||||
<key>License</key>
|
||||
<string>Copyright</string>
|
||||
<key>Title</key>
|
||||
<string>AMapSearch-NO-IDFA</string>
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>Copyright (c) 2014-2022 Alamofire Software Foundation (http://alamofire.org/)
|
||||
|
|
|
|||
|
|
@ -2,13 +2,13 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
|
|||
ARCHS = $(ARCHS_STANDARD)
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = NO
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaLumberjack" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaMQTT" "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator" "${PODS_CONFIGURATION_BUILD_DIR}/HXPHPicker" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardCore" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardNotification" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardReturnManager" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbar" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbarManager" "${PODS_CONFIGURATION_BUILD_DIR}/IQTextInputViewNotification" "${PODS_CONFIGURATION_BUILD_DIR}/IQTextView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/KingfisherWebP" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/Moya" "${PODS_CONFIGURATION_BUILD_DIR}/MqttCocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "${PODS_CONFIGURATION_BUILD_DIR}/OpenIMSDK" "${PODS_CONFIGURATION_BUILD_DIR}/Popover" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources" "${PODS_CONFIGURATION_BUILD_DIR}/RxGesture" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwiftExt" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SGQRCode" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/TagListView" "${PODS_CONFIGURATION_BUILD_DIR}/URLNavigator" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/lottie-ios" "${PODS_ROOT}/AlipaySDK-iOS" "${PODS_ROOT}/OpenIMSDKCore/Framework" "${PODS_ROOT}/WechatOpenSDK-XCFramework" "${PODS_ROOT}/YYImage/Vendor" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AlipaySDK-iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenIMSDKCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework"
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaLumberjack" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaMQTT" "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator" "${PODS_CONFIGURATION_BUILD_DIR}/HXPHPicker" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardCore" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardNotification" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardReturnManager" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbar" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbarManager" "${PODS_CONFIGURATION_BUILD_DIR}/IQTextInputViewNotification" "${PODS_CONFIGURATION_BUILD_DIR}/IQTextView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/KingfisherWebP" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/Moya" "${PODS_CONFIGURATION_BUILD_DIR}/MqttCocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "${PODS_CONFIGURATION_BUILD_DIR}/OpenIMSDK" "${PODS_CONFIGURATION_BUILD_DIR}/Popover" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources" "${PODS_CONFIGURATION_BUILD_DIR}/RxGesture" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwiftExt" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SGQRCode" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/TagListView" "${PODS_CONFIGURATION_BUILD_DIR}/URLNavigator" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/lottie-ios" "${PODS_ROOT}/AMapSearch-NO-IDFA" "${PODS_ROOT}/AlipaySDK-iOS" "${PODS_ROOT}/OpenIMSDKCore/Framework" "${PODS_ROOT}/WechatOpenSDK-XCFramework" "${PODS_ROOT}/YYImage/Vendor" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AlipaySDK-iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenIMSDKCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView/BRPickerView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaLumberjack/CocoaLumberjack.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaMQTT/CocoaMQTT.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator/Differentiator.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/HXPHPicker/HXPHPicker.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardCore/IQKeyboardCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardNotification/IQKeyboardNotification.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardReturnManager/IQKeyboardReturnManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbar/IQKeyboardToolbar.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbarManager/IQKeyboardToolbarManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQTextInputViewNotification/IQTextInputViewNotification.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQTextView/IQTextView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/KingfisherWebP/KingfisherWebP.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel/MarqueeLabel.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Moya/Moya.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MqttCocoaAsyncSocket/MqttCocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper/ObjectMapper.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/OpenIMSDK/OpenIMSDK.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Popover/Popover.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources/RxDataSources.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxGesture/RxGesture.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwiftExt/RxSwiftExt.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView/SDCycleScrollView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SGQRCode/SGQRCode.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate/SwiftDate.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON/SwiftyJSON.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyUserDefaults/SwiftyUserDefaults.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TagListView/TagListView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/URLNavigator/URLNavigator.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser/YBImageBrowser.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage/YYImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp/libwebp.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/lottie-ios/Lottie.framework/Headers"
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"iconv" -l"resolv" -l"sqlite3.0" -l"swiftCoreGraphics" -l"z" -framework "AVFoundation" -framework "Accelerate" -framework "AdSupport" -framework "Alamofire" -framework "AlipaySDK" -framework "AssetsLibrary" -framework "AudioToolbox" -framework "BRPickerView" -framework "CFNetwork" -framework "CallKit" -framework "CocoaLumberjack" -framework "CocoaMQTT" -framework "Combine" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreMotion" -framework "CoreServices" -framework "CoreTelephony" -framework "CoreText" -framework "Differentiator" -framework "ExternalAccessory" -framework "Foundation" -framework "GLKit" -framework "HXPHPicker" -framework "IQKeyboardCore" -framework "IQKeyboardManagerSwift" -framework "IQKeyboardNotification" -framework "IQKeyboardReturnManager" -framework "IQKeyboardToolbar" -framework "IQKeyboardToolbarManager" -framework "IQTextInputViewNotification" -framework "IQTextView" -framework "ImageIO" -framework "Kingfisher" -framework "KingfisherWebP" -framework "Lottie" -framework "MBProgressHUD" -framework "MJExtension" -framework "MJRefresh" -framework "MarqueeLabel" -framework "Masonry" -framework "MobileCoreServices" -framework "Moya" -framework "MqttCocoaAsyncSocket" -framework "ObjectMapper" -framework "OpenGLES" -framework "OpenIMCore" -framework "OpenIMSDK" -framework "Photos" -framework "PhotosUI" -framework "Popover" -framework "QuartzCore" -framework "RxCocoa" -framework "RxDataSources" -framework "RxGesture" -framework "RxRelay" -framework "RxSwift" -framework "RxSwiftExt" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "SGQRCode" -framework "Security" -framework "SnapKit" -framework "SwiftDate" -framework "SwiftKeychainWrapper" -framework "SwiftyJSON" -framework "SwiftyUserDefaults" -framework "SystemConfiguration" -framework "TagListView" -framework "UIKit" -framework "URLNavigator" -framework "WebKit" -framework "WechatOpenSDK" -framework "YBImageBrowser" -framework "YYImage" -framework "libwebp" -weak_framework "AppTrackingTransparency" -weak_framework "Combine" -weak_framework "Network" -weak_framework "SwiftUI"
|
||||
OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapFoundation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapLocation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapNavi-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "-F${PODS_CONFIGURATION_BUILD_DIR}/AlipaySDK-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "-F${PODS_CONFIGURATION_BUILD_DIR}/CocoaLumberjack" "-F${PODS_CONFIGURATION_BUILD_DIR}/CocoaMQTT" "-F${PODS_CONFIGURATION_BUILD_DIR}/Differentiator" "-F${PODS_CONFIGURATION_BUILD_DIR}/GTCommonSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/GYSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/HXPHPicker" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardCore" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardNotification" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardReturnManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbar" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbarManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQTextInputViewNotification" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQTextView" "-F${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "-F${PODS_CONFIGURATION_BUILD_DIR}/KingfisherWebP" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/Moya" "-F${PODS_CONFIGURATION_BUILD_DIR}/MqttCocoaAsyncSocket" "-F${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "-F${PODS_CONFIGURATION_BUILD_DIR}/OpenIMSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/OpenIMSDKCore" "-F${PODS_CONFIGURATION_BUILD_DIR}/Popover" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxGesture" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxSwiftExt" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/SGQRCode" "-F${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftyUserDefaults" "-F${PODS_CONFIGURATION_BUILD_DIR}/TagListView" "-F${PODS_CONFIGURATION_BUILD_DIR}/URLNavigator" "-F${PODS_CONFIGURATION_BUILD_DIR}/WechatOpenSDK-XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/ZXSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "-F${PODS_CONFIGURATION_BUILD_DIR}/lottie-ios"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"iconv" -l"resolv" -l"sqlite3.0" -l"swiftCoreGraphics" -l"z" -framework "AMapSearchKit" -framework "AVFoundation" -framework "Accelerate" -framework "AdSupport" -framework "Alamofire" -framework "AlipaySDK" -framework "AssetsLibrary" -framework "AudioToolbox" -framework "BRPickerView" -framework "CFNetwork" -framework "CallKit" -framework "CocoaLumberjack" -framework "CocoaMQTT" -framework "Combine" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreMotion" -framework "CoreServices" -framework "CoreTelephony" -framework "CoreText" -framework "Differentiator" -framework "ExternalAccessory" -framework "Foundation" -framework "GLKit" -framework "HXPHPicker" -framework "IQKeyboardCore" -framework "IQKeyboardManagerSwift" -framework "IQKeyboardNotification" -framework "IQKeyboardReturnManager" -framework "IQKeyboardToolbar" -framework "IQKeyboardToolbarManager" -framework "IQTextInputViewNotification" -framework "IQTextView" -framework "ImageIO" -framework "Kingfisher" -framework "KingfisherWebP" -framework "Lottie" -framework "MBProgressHUD" -framework "MJExtension" -framework "MJRefresh" -framework "MarqueeLabel" -framework "Masonry" -framework "MobileCoreServices" -framework "Moya" -framework "MqttCocoaAsyncSocket" -framework "ObjectMapper" -framework "OpenGLES" -framework "OpenIMCore" -framework "OpenIMSDK" -framework "Photos" -framework "PhotosUI" -framework "Popover" -framework "QuartzCore" -framework "RxCocoa" -framework "RxDataSources" -framework "RxGesture" -framework "RxRelay" -framework "RxSwift" -framework "RxSwiftExt" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "SGQRCode" -framework "Security" -framework "SnapKit" -framework "SwiftDate" -framework "SwiftKeychainWrapper" -framework "SwiftyJSON" -framework "SwiftyUserDefaults" -framework "SystemConfiguration" -framework "TagListView" -framework "UIKit" -framework "URLNavigator" -framework "WebKit" -framework "WechatOpenSDK" -framework "YBImageBrowser" -framework "YYImage" -framework "libwebp" -weak_framework "AppTrackingTransparency" -weak_framework "Combine" -weak_framework "Network" -weak_framework "SwiftUI"
|
||||
OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapFoundation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapLocation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapNavi-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapSearch-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "-F${PODS_CONFIGURATION_BUILD_DIR}/AlipaySDK-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "-F${PODS_CONFIGURATION_BUILD_DIR}/CocoaLumberjack" "-F${PODS_CONFIGURATION_BUILD_DIR}/CocoaMQTT" "-F${PODS_CONFIGURATION_BUILD_DIR}/Differentiator" "-F${PODS_CONFIGURATION_BUILD_DIR}/GTCommonSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/GYSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/HXPHPicker" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardCore" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardNotification" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardReturnManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbar" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbarManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQTextInputViewNotification" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQTextView" "-F${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "-F${PODS_CONFIGURATION_BUILD_DIR}/KingfisherWebP" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/Moya" "-F${PODS_CONFIGURATION_BUILD_DIR}/MqttCocoaAsyncSocket" "-F${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "-F${PODS_CONFIGURATION_BUILD_DIR}/OpenIMSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/OpenIMSDKCore" "-F${PODS_CONFIGURATION_BUILD_DIR}/Popover" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxGesture" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxSwiftExt" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/SGQRCode" "-F${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftyUserDefaults" "-F${PODS_CONFIGURATION_BUILD_DIR}/TagListView" "-F${PODS_CONFIGURATION_BUILD_DIR}/URLNavigator" "-F${PODS_CONFIGURATION_BUILD_DIR}/WechatOpenSDK-XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/ZXSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "-F${PODS_CONFIGURATION_BUILD_DIR}/lottie-ios"
|
||||
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
|
|
|
|||
|
|
@ -2,13 +2,13 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
|
|||
ARCHS = $(ARCHS_STANDARD)
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = NO
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaLumberjack" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaMQTT" "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator" "${PODS_CONFIGURATION_BUILD_DIR}/HXPHPicker" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardCore" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardNotification" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardReturnManager" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbar" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbarManager" "${PODS_CONFIGURATION_BUILD_DIR}/IQTextInputViewNotification" "${PODS_CONFIGURATION_BUILD_DIR}/IQTextView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/KingfisherWebP" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/Moya" "${PODS_CONFIGURATION_BUILD_DIR}/MqttCocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "${PODS_CONFIGURATION_BUILD_DIR}/OpenIMSDK" "${PODS_CONFIGURATION_BUILD_DIR}/Popover" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources" "${PODS_CONFIGURATION_BUILD_DIR}/RxGesture" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwiftExt" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SGQRCode" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/TagListView" "${PODS_CONFIGURATION_BUILD_DIR}/URLNavigator" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/lottie-ios" "${PODS_ROOT}/AlipaySDK-iOS" "${PODS_ROOT}/OpenIMSDKCore/Framework" "${PODS_ROOT}/WechatOpenSDK-XCFramework" "${PODS_ROOT}/YYImage/Vendor" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AlipaySDK-iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenIMSDKCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework"
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaLumberjack" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaMQTT" "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator" "${PODS_CONFIGURATION_BUILD_DIR}/HXPHPicker" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardCore" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardNotification" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardReturnManager" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbar" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbarManager" "${PODS_CONFIGURATION_BUILD_DIR}/IQTextInputViewNotification" "${PODS_CONFIGURATION_BUILD_DIR}/IQTextView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/KingfisherWebP" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/Moya" "${PODS_CONFIGURATION_BUILD_DIR}/MqttCocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "${PODS_CONFIGURATION_BUILD_DIR}/OpenIMSDK" "${PODS_CONFIGURATION_BUILD_DIR}/Popover" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources" "${PODS_CONFIGURATION_BUILD_DIR}/RxGesture" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwiftExt" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SGQRCode" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/TagListView" "${PODS_CONFIGURATION_BUILD_DIR}/URLNavigator" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/lottie-ios" "${PODS_ROOT}/AMapSearch-NO-IDFA" "${PODS_ROOT}/AlipaySDK-iOS" "${PODS_ROOT}/OpenIMSDKCore/Framework" "${PODS_ROOT}/WechatOpenSDK-XCFramework" "${PODS_ROOT}/YYImage/Vendor" "${PODS_XCFRAMEWORKS_BUILD_DIR}/AlipaySDK-iOS" "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenIMSDKCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/WechatOpenSDK-XCFramework"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView/BRPickerView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaLumberjack/CocoaLumberjack.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CocoaMQTT/CocoaMQTT.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator/Differentiator.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/HXPHPicker/HXPHPicker.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardCore/IQKeyboardCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardNotification/IQKeyboardNotification.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardReturnManager/IQKeyboardReturnManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbar/IQKeyboardToolbar.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbarManager/IQKeyboardToolbarManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQTextInputViewNotification/IQTextInputViewNotification.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQTextView/IQTextView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/KingfisherWebP/KingfisherWebP.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel/MarqueeLabel.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Moya/Moya.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MqttCocoaAsyncSocket/MqttCocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper/ObjectMapper.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/OpenIMSDK/OpenIMSDK.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Popover/Popover.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources/RxDataSources.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxGesture/RxGesture.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwiftExt/RxSwiftExt.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView/SDCycleScrollView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SGQRCode/SGQRCode.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate/SwiftDate.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON/SwiftyJSON.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyUserDefaults/SwiftyUserDefaults.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TagListView/TagListView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/URLNavigator/URLNavigator.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser/YBImageBrowser.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYImage/YYImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp/libwebp.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/lottie-ios/Lottie.framework/Headers"
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"iconv" -l"resolv" -l"sqlite3.0" -l"swiftCoreGraphics" -l"z" -framework "AVFoundation" -framework "Accelerate" -framework "AdSupport" -framework "Alamofire" -framework "AlipaySDK" -framework "AssetsLibrary" -framework "AudioToolbox" -framework "BRPickerView" -framework "CFNetwork" -framework "CallKit" -framework "CocoaLumberjack" -framework "CocoaMQTT" -framework "Combine" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreMotion" -framework "CoreServices" -framework "CoreTelephony" -framework "CoreText" -framework "Differentiator" -framework "ExternalAccessory" -framework "Foundation" -framework "GLKit" -framework "HXPHPicker" -framework "IQKeyboardCore" -framework "IQKeyboardManagerSwift" -framework "IQKeyboardNotification" -framework "IQKeyboardReturnManager" -framework "IQKeyboardToolbar" -framework "IQKeyboardToolbarManager" -framework "IQTextInputViewNotification" -framework "IQTextView" -framework "ImageIO" -framework "Kingfisher" -framework "KingfisherWebP" -framework "Lottie" -framework "MBProgressHUD" -framework "MJExtension" -framework "MJRefresh" -framework "MarqueeLabel" -framework "Masonry" -framework "MobileCoreServices" -framework "Moya" -framework "MqttCocoaAsyncSocket" -framework "ObjectMapper" -framework "OpenGLES" -framework "OpenIMCore" -framework "OpenIMSDK" -framework "Photos" -framework "PhotosUI" -framework "Popover" -framework "QuartzCore" -framework "RxCocoa" -framework "RxDataSources" -framework "RxGesture" -framework "RxRelay" -framework "RxSwift" -framework "RxSwiftExt" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "SGQRCode" -framework "Security" -framework "SnapKit" -framework "SwiftDate" -framework "SwiftKeychainWrapper" -framework "SwiftyJSON" -framework "SwiftyUserDefaults" -framework "SystemConfiguration" -framework "TagListView" -framework "UIKit" -framework "URLNavigator" -framework "WebKit" -framework "WechatOpenSDK" -framework "YBImageBrowser" -framework "YYImage" -framework "libwebp" -weak_framework "AppTrackingTransparency" -weak_framework "Combine" -weak_framework "Network" -weak_framework "SwiftUI"
|
||||
OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapFoundation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapLocation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapNavi-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "-F${PODS_CONFIGURATION_BUILD_DIR}/AlipaySDK-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "-F${PODS_CONFIGURATION_BUILD_DIR}/CocoaLumberjack" "-F${PODS_CONFIGURATION_BUILD_DIR}/CocoaMQTT" "-F${PODS_CONFIGURATION_BUILD_DIR}/Differentiator" "-F${PODS_CONFIGURATION_BUILD_DIR}/GTCommonSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/GYSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/HXPHPicker" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardCore" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardNotification" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardReturnManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbar" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbarManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQTextInputViewNotification" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQTextView" "-F${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "-F${PODS_CONFIGURATION_BUILD_DIR}/KingfisherWebP" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/Moya" "-F${PODS_CONFIGURATION_BUILD_DIR}/MqttCocoaAsyncSocket" "-F${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "-F${PODS_CONFIGURATION_BUILD_DIR}/OpenIMSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/OpenIMSDKCore" "-F${PODS_CONFIGURATION_BUILD_DIR}/Popover" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxGesture" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxSwiftExt" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/SGQRCode" "-F${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftyUserDefaults" "-F${PODS_CONFIGURATION_BUILD_DIR}/TagListView" "-F${PODS_CONFIGURATION_BUILD_DIR}/URLNavigator" "-F${PODS_CONFIGURATION_BUILD_DIR}/WechatOpenSDK-XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/ZXSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "-F${PODS_CONFIGURATION_BUILD_DIR}/lottie-ios"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"iconv" -l"resolv" -l"sqlite3.0" -l"swiftCoreGraphics" -l"z" -framework "AMapSearchKit" -framework "AVFoundation" -framework "Accelerate" -framework "AdSupport" -framework "Alamofire" -framework "AlipaySDK" -framework "AssetsLibrary" -framework "AudioToolbox" -framework "BRPickerView" -framework "CFNetwork" -framework "CallKit" -framework "CocoaLumberjack" -framework "CocoaMQTT" -framework "Combine" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreMotion" -framework "CoreServices" -framework "CoreTelephony" -framework "CoreText" -framework "Differentiator" -framework "ExternalAccessory" -framework "Foundation" -framework "GLKit" -framework "HXPHPicker" -framework "IQKeyboardCore" -framework "IQKeyboardManagerSwift" -framework "IQKeyboardNotification" -framework "IQKeyboardReturnManager" -framework "IQKeyboardToolbar" -framework "IQKeyboardToolbarManager" -framework "IQTextInputViewNotification" -framework "IQTextView" -framework "ImageIO" -framework "Kingfisher" -framework "KingfisherWebP" -framework "Lottie" -framework "MBProgressHUD" -framework "MJExtension" -framework "MJRefresh" -framework "MarqueeLabel" -framework "Masonry" -framework "MobileCoreServices" -framework "Moya" -framework "MqttCocoaAsyncSocket" -framework "ObjectMapper" -framework "OpenGLES" -framework "OpenIMCore" -framework "OpenIMSDK" -framework "Photos" -framework "PhotosUI" -framework "Popover" -framework "QuartzCore" -framework "RxCocoa" -framework "RxDataSources" -framework "RxGesture" -framework "RxRelay" -framework "RxSwift" -framework "RxSwiftExt" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "SGQRCode" -framework "Security" -framework "SnapKit" -framework "SwiftDate" -framework "SwiftKeychainWrapper" -framework "SwiftyJSON" -framework "SwiftyUserDefaults" -framework "SystemConfiguration" -framework "TagListView" -framework "UIKit" -framework "URLNavigator" -framework "WebKit" -framework "WechatOpenSDK" -framework "YBImageBrowser" -framework "YYImage" -framework "libwebp" -weak_framework "AppTrackingTransparency" -weak_framework "Combine" -weak_framework "Network" -weak_framework "SwiftUI"
|
||||
OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapFoundation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapLocation-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapNavi-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/AMapSearch-NO-IDFA" "-F${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "-F${PODS_CONFIGURATION_BUILD_DIR}/AlipaySDK-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "-F${PODS_CONFIGURATION_BUILD_DIR}/CocoaLumberjack" "-F${PODS_CONFIGURATION_BUILD_DIR}/CocoaMQTT" "-F${PODS_CONFIGURATION_BUILD_DIR}/Differentiator" "-F${PODS_CONFIGURATION_BUILD_DIR}/GTCommonSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/GYSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/HXPHPicker" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardCore" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardNotification" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardReturnManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbar" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardToolbarManager" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQTextInputViewNotification" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQTextView" "-F${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "-F${PODS_CONFIGURATION_BUILD_DIR}/KingfisherWebP" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/MarqueeLabel" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/Moya" "-F${PODS_CONFIGURATION_BUILD_DIR}/MqttCocoaAsyncSocket" "-F${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "-F${PODS_CONFIGURATION_BUILD_DIR}/OpenIMSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/OpenIMSDKCore" "-F${PODS_CONFIGURATION_BUILD_DIR}/Popover" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxGesture" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "-F${PODS_CONFIGURATION_BUILD_DIR}/RxSwiftExt" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/SGQRCode" "-F${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftDate" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON" "-F${PODS_CONFIGURATION_BUILD_DIR}/SwiftyUserDefaults" "-F${PODS_CONFIGURATION_BUILD_DIR}/TagListView" "-F${PODS_CONFIGURATION_BUILD_DIR}/URLNavigator" "-F${PODS_CONFIGURATION_BUILD_DIR}/WechatOpenSDK-XCFramework" "-F${PODS_CONFIGURATION_BUILD_DIR}/YBImageBrowser" "-F${PODS_CONFIGURATION_BUILD_DIR}/YYImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/ZXSDK" "-F${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "-F${PODS_CONFIGURATION_BUILD_DIR}/lottie-ios"
|
||||
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
|
|
|
|||
|
|
@ -206,6 +206,9 @@
|
|||
30D74ABD2FEA67EA0050EB2C /* CreateScheduleVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30D74ABC2FEA67EA0050EB2C /* CreateScheduleVC.swift */; };
|
||||
30D74ABF2FEA67F30050EB2C /* CreateScheduleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30D74ABE2FEA67F30050EB2C /* CreateScheduleView.swift */; };
|
||||
30D74AC12FEA6EEF0050EB2C /* CreateSchedulePopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30D74AC02FEA6EEF0050EB2C /* CreateSchedulePopView.swift */; };
|
||||
30D74BF32FEB6F5B0050EB2C /* LocationPickerVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30D74BF02FEB6F5B0050EB2C /* LocationPickerVC.swift */; };
|
||||
30D74BF42FEB6F5B0050EB2C /* LocationPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30D74BF12FEB6F5B0050EB2C /* LocationPickerView.swift */; };
|
||||
30D74D1F2FEBB09B0050EB2C /* CreateScheduleVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30D74D1E2FEBB09B0050EB2C /* CreateScheduleVM.swift */; };
|
||||
30D87CDB2FDFA9EE00E958FD /* MQTTService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30D87CDA2FDFA9EE00E958FD /* MQTTService.swift */; };
|
||||
30D87CDD2FDFF07500E958FD /* InteractionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30D87CDC2FDFF07500E958FD /* InteractionView.swift */; };
|
||||
30D87CDF2FDFF1A100E958FD /* QuickMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30D87CDE2FDFF1A100E958FD /* QuickMessageView.swift */; };
|
||||
|
|
@ -463,6 +466,9 @@
|
|||
30D74ABC2FEA67EA0050EB2C /* CreateScheduleVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateScheduleVC.swift; sourceTree = "<group>"; };
|
||||
30D74ABE2FEA67F30050EB2C /* CreateScheduleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateScheduleView.swift; sourceTree = "<group>"; };
|
||||
30D74AC02FEA6EEF0050EB2C /* CreateSchedulePopView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSchedulePopView.swift; sourceTree = "<group>"; };
|
||||
30D74BF02FEB6F5B0050EB2C /* LocationPickerVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationPickerVC.swift; sourceTree = "<group>"; };
|
||||
30D74BF12FEB6F5B0050EB2C /* LocationPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationPickerView.swift; sourceTree = "<group>"; };
|
||||
30D74D1E2FEBB09B0050EB2C /* CreateScheduleVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateScheduleVM.swift; sourceTree = "<group>"; };
|
||||
30D87CDA2FDFA9EE00E958FD /* MQTTService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MQTTService.swift; sourceTree = "<group>"; };
|
||||
30D87CDC2FDFF07500E958FD /* InteractionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InteractionView.swift; sourceTree = "<group>"; };
|
||||
30D87CDE2FDFF1A100E958FD /* QuickMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickMessageView.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -519,29 +525,21 @@
|
|||
/* Begin PBXFileSystemSynchronizedRootGroup section */
|
||||
30CCDF8E2FE3E63B00F5214A /* sound */ = {
|
||||
isa = PBXFileSystemSynchronizedRootGroup;
|
||||
exceptions = (
|
||||
);
|
||||
path = sound;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
30CCDF902FE3E63B00F5214A /* video */ = {
|
||||
isa = PBXFileSystemSynchronizedRootGroup;
|
||||
exceptions = (
|
||||
);
|
||||
path = video;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
30CCE01E2FE3E64700F5214A /* lotties */ = {
|
||||
isa = PBXFileSystemSynchronizedRootGroup;
|
||||
exceptions = (
|
||||
);
|
||||
path = lotties;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
30D87CEF2FDFF52100E958FD /* TTGTagCollectionView */ = {
|
||||
isa = PBXFileSystemSynchronizedRootGroup;
|
||||
exceptions = (
|
||||
);
|
||||
path = TTGTagCollectionView;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
|
|
@ -1284,6 +1282,7 @@
|
|||
30D74AB32FEA25B90050EB2C /* ViewedModel.swift */,
|
||||
30D74AB92FEA37AD0050EB2C /* ScheduleModel.swift */,
|
||||
30D74ABB2FEA67CE0050EB2C /* CreateSchedule */,
|
||||
30D74BF22FEB6F5B0050EB2C /* LocationPicker */,
|
||||
);
|
||||
path = Schedule;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -1292,12 +1291,22 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
30D74ABC2FEA67EA0050EB2C /* CreateScheduleVC.swift */,
|
||||
30D74D1E2FEBB09B0050EB2C /* CreateScheduleVM.swift */,
|
||||
30D74ABE2FEA67F30050EB2C /* CreateScheduleView.swift */,
|
||||
30D74AC02FEA6EEF0050EB2C /* CreateSchedulePopView.swift */,
|
||||
);
|
||||
path = CreateSchedule;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
30D74BF22FEB6F5B0050EB2C /* LocationPicker */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
30D74BF02FEB6F5B0050EB2C /* LocationPickerVC.swift */,
|
||||
30D74BF12FEB6F5B0050EB2C /* LocationPickerView.swift */,
|
||||
);
|
||||
path = LocationPicker;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
30D87CD52FDF9F1900E958FD /* MQTT */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
|
@ -1555,10 +1564,14 @@
|
|||
inputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-QuickLocation/Pods-QuickLocation-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "[CP] Embed Pods Frameworks";
|
||||
outputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-QuickLocation/Pods-QuickLocation-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-QuickLocation/Pods-QuickLocation-frameworks.sh\"\n";
|
||||
|
|
@ -1572,10 +1585,14 @@
|
|||
inputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-QuickLocation/Pods-QuickLocation-resources-${CONFIGURATION}-input-files.xcfilelist",
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "[CP] Copy Pods Resources";
|
||||
outputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-QuickLocation/Pods-QuickLocation-resources-${CONFIGURATION}-output-files.xcfilelist",
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-QuickLocation/Pods-QuickLocation-resources.sh\"\n";
|
||||
|
|
@ -1611,11 +1628,14 @@
|
|||
305A76942FCA8C7000227D26 /* UploadImageCell.swift in Sources */,
|
||||
305A76952FCA8C7000227D26 /* CornerRadiusCell.swift in Sources */,
|
||||
305A76962FCA8C7000227D26 /* CornerRadiusFooterView.swift in Sources */,
|
||||
30D74BF32FEB6F5B0050EB2C /* LocationPickerVC.swift in Sources */,
|
||||
30D74BF42FEB6F5B0050EB2C /* LocationPickerView.swift in Sources */,
|
||||
30C4C0162FDB91B8009215C1 /* CheckPermissionVC.swift in Sources */,
|
||||
305A76972FCA8C7000227D26 /* CornerRadiusHeaderView.swift in Sources */,
|
||||
305A76982FCA8C7000227D26 /* ImagePicker.swift in Sources */,
|
||||
305A76992FCA8C7000227D26 /* ImagePickerPopup.swift in Sources */,
|
||||
30EFF3E22FDA9DEE00EB35D4 /* EmergencyContactVM.swift in Sources */,
|
||||
30D74D1F2FEBB09B0050EB2C /* CreateScheduleVM.swift in Sources */,
|
||||
305A769A2FCA8C7000227D26 /* PopupAnimator.swift in Sources */,
|
||||
3062E8BE2FCEBD0E00CEF511 /* GroupIconListVC.swift in Sources */,
|
||||
30EFF3DA2FDA935D00EB35D4 /* EmergencyContactFooterView.swift in Sources */,
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "Group_2289@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "Group_2289@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 476 B |
Binary file not shown.
|
After Width: | Height: | Size: 694 B |
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "Group_1584@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "Group_1584@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
|
|
@ -12,6 +12,7 @@ import SwiftyUserDefaults
|
|||
extension DefaultsKeys {
|
||||
/// 当前经纬度
|
||||
var currentLatitude: DefaultsKey<Double?> { .init("currentLatitude") }
|
||||
var currentLongitude: DefaultsKey<Double?> { .init("currentLongitude") }
|
||||
/// 是否自动更新位置
|
||||
var updateLocationEnable: DefaultsKey<Bool> { .init("updateLocationEnable", defaultValue: true) }
|
||||
/// 是否从第三方应用跳回
|
||||
|
|
|
|||
|
|
@ -345,3 +345,15 @@ extension UIView {
|
|||
return dateString
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extension UIView {
|
||||
var parentViewController: UIViewController? {
|
||||
var responder: UIResponder? = self
|
||||
while let next = responder?.next {
|
||||
if let vc = next as? UIViewController { return vc }
|
||||
responder = next
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class HomeView: UIView {
|
|||
|
||||
// MARK: - Map
|
||||
#if !targetEnvironment(simulator)
|
||||
lazy var mapView: MAMapView = {
|
||||
lazy var mapView: MAMapView! = {
|
||||
let mv = MAMapView()
|
||||
mv.zoomLevel = 16
|
||||
mv.showsUserLocation = true
|
||||
|
|
|
|||
|
|
@ -417,7 +417,8 @@ class HomeViewController: BaseViewController {
|
|||
// 从 members 中过滤出在线成员用于地图标注
|
||||
let onlineMembers = newMembers.filter { $0.isOnline }
|
||||
|
||||
let mapView = rootView.mapView
|
||||
guard let mapView = rootView.mapView else { return }
|
||||
|
||||
let existing = mapView.annotations?.compactMap { $0 as? MemberAnnotation } ?? []
|
||||
let existingIDs = Set(existing.map { $0.member.id })
|
||||
let onlineIDs = Set(onlineMembers.map { $0.id })
|
||||
|
|
@ -660,7 +661,7 @@ extension HomeViewController {
|
|||
/// 移除指定成员的标注
|
||||
private func removeAnnotation(userId: String) {
|
||||
#if !targetEnvironment(simulator)
|
||||
let mapView = rootView.mapView
|
||||
guard let mapView = rootView.mapView else { return }
|
||||
let toRemove = mapView.annotations?.compactMap({ $0 as? MemberAnnotation }).filter { $0.member.id == userId }
|
||||
if let remove = toRemove, !remove.isEmpty {
|
||||
mapView.removeAnnotations(remove)
|
||||
|
|
@ -684,7 +685,7 @@ extension HomeViewController {
|
|||
}
|
||||
|
||||
// 更新地图标注
|
||||
let mapView = rootView.mapView
|
||||
guard let mapView = rootView.mapView else { return }
|
||||
if let oldMember = members.first(where: { $0.id == userId }), oldMember.isOnline {
|
||||
// 先移除旧标注,再添加新标注
|
||||
let toRemove = mapView.annotations?.compactMap({ $0 as? MemberAnnotation }).filter { $0.member.id == userId }
|
||||
|
|
@ -738,6 +739,8 @@ extension HomeViewController: MAMapViewDelegate {
|
|||
|
||||
// 地图标注
|
||||
lastLocation = location
|
||||
Defaults[\.currentLatitude] = location.coordinate.latitude
|
||||
Defaults[\.currentLongitude] = location.coordinate.longitude
|
||||
let coordinate = location.coordinate
|
||||
guard CLLocationCoordinate2DIsValid(coordinate) else { return }
|
||||
|
||||
|
|
|
|||
|
|
@ -44,6 +44,15 @@ class NavigationVC: BaseViewController {
|
|||
rootView = NavigationView(frame: UIScreen.main.bounds)
|
||||
view = rootView
|
||||
}
|
||||
override func viewDidDisappear(_ animated: Bool) {
|
||||
super.viewDidDisappear(animated)
|
||||
// 页面被 pop/dismiss 时清理地图资源
|
||||
if isMovingFromParent || isBeingDismissed {
|
||||
#if !targetEnvironment(simulator)
|
||||
rootView.cleanupMap()
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ class NavigationView: UIView {
|
|||
}()
|
||||
|
||||
#if !targetEnvironment(simulator)
|
||||
lazy var mapView: MAMapView = {
|
||||
lazy var mapView: MAMapView! = {
|
||||
let mv = MAMapView()
|
||||
mv.zoomLevel = 14
|
||||
mv.showsUserLocation = false
|
||||
|
|
@ -245,6 +245,15 @@ class NavigationView: UIView {
|
|||
return label
|
||||
}()
|
||||
|
||||
|
||||
#if !targetEnvironment(simulator)
|
||||
func cleanupMap() {
|
||||
mapView?.delegate = nil
|
||||
mapView?.removeFromSuperview()
|
||||
mapView = nil
|
||||
}
|
||||
#endif
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
backgroundColor = .clear
|
||||
|
|
|
|||
|
|
@ -10,99 +10,26 @@ import RxSwift
|
|||
import RxCocoa
|
||||
import RxDataSources
|
||||
import BRPickerView
|
||||
|
||||
// MARK: - 行程点编辑模型
|
||||
struct SchedulePointItem: IdentifiableType, Equatable {
|
||||
let identity: String = UUID().uuidString
|
||||
var locationName: String = ""
|
||||
var address: String = ""
|
||||
var expectedTime: Date?
|
||||
var remark: String = ""
|
||||
}
|
||||
|
||||
typealias SchedulePointSection = SectionModel<String, SchedulePointItem>
|
||||
import RxGesture
|
||||
import CoreLocation
|
||||
import TagListView
|
||||
|
||||
// MARK: - CreateSchedulePopView
|
||||
|
||||
class CreateSchedulePopView: UIView {
|
||||
|
||||
var disposeBag = DisposeBag()
|
||||
|
||||
let pointsRelay = BehaviorRelay<[SchedulePointItem]>(value: [SchedulePointItem()])
|
||||
|
||||
// MARK: - Setup
|
||||
|
||||
private func setupRx() {
|
||||
dateLab.rx.tapGesture.subscribe { _ in
|
||||
let picker = BRDatePickerView(pickerMode: .YMD)
|
||||
picker.minDate = Date()
|
||||
picker.maxDate = Calendar.current.date(byAdding: .day, value: 6, to: Date())
|
||||
let style = BRPickerStyle()
|
||||
style.selectRowTextColor = UIColor(hexStr: "#16B3FF")
|
||||
picker.pickerStyle = style
|
||||
picker.resultBlock = { [weak self] selectDate, value in
|
||||
guard let date = selectDate else { return }
|
||||
let fmt = DateFormatter()
|
||||
fmt.dateFormat = "yyyy年MM月dd日"
|
||||
self?.dateLab.text = fmt.string(from: date)
|
||||
}
|
||||
picker.show()
|
||||
}.disposed(by: disposeBag)
|
||||
|
||||
// 新增行程点
|
||||
addBtn.rx.tap
|
||||
.subscribe(onNext: { [weak self] _ in
|
||||
guard let self = self else { return }
|
||||
var list = self.pointsRelay.value
|
||||
list.append(SchedulePointItem(
|
||||
locationName: "",
|
||||
address: "",
|
||||
expectedTime: nil,
|
||||
remark: ""
|
||||
))
|
||||
self.pointsRelay.accept(list)
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
// 绑定 tableView
|
||||
pointsRelay
|
||||
.observe(on: MainScheduler.asyncInstance)
|
||||
.map { [SchedulePointSection(model: "", items: $0)] }
|
||||
.bind(to: tableView.rx.items(dataSource: dataSource))
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
// 动态更新 tableView 高度
|
||||
pointsRelay
|
||||
.subscribe(onNext: { [weak self] items in
|
||||
guard let self = self else { return }
|
||||
let rowHeight: CGFloat = 122
|
||||
var h = CGFloat(items.count) * rowHeight
|
||||
h = max(h, rowHeight)
|
||||
self.tableView.layoutChain.height(h)
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
func setupTagData(_ list: [GroupInfoModel]) {
|
||||
let nameArr = list.map { $0.name }
|
||||
tagListView.removeAllTags()
|
||||
tagListView.addTags(nameArr)
|
||||
tagListView.tagViews.forEach {
|
||||
$0.layer.cornerRadius = 4
|
||||
}
|
||||
tagListView.invalidateIntrinsicContentSize() // 通知系统重新算高
|
||||
}
|
||||
|
||||
private lazy var dataSource: RxTableViewSectionedReloadDataSource<SchedulePointSection> = {
|
||||
RxTableViewSectionedReloadDataSource<SchedulePointSection>(
|
||||
configureCell: { [weak self] _, tv, indexPath, item in
|
||||
let cell: SchedulePointCell = tv.dequeueReusableCell(for: indexPath)
|
||||
cell.configure(item: item,
|
||||
index: indexPath.row,
|
||||
total: self?.pointsRelay.value.count ?? 0,
|
||||
onDelete: { [weak self] in
|
||||
guard let self = self else { return }
|
||||
var list = self.pointsRelay.value
|
||||
guard indexPath.row < list.count else { return }
|
||||
list.remove(at: indexPath.row)
|
||||
self.pointsRelay.accept(list)
|
||||
})
|
||||
return cell
|
||||
})
|
||||
}()
|
||||
|
||||
|
||||
// MARK: - UI
|
||||
|
||||
private func setupUI() {
|
||||
addSubview(lineView)
|
||||
addSubview(dateView)
|
||||
|
|
@ -182,7 +109,7 @@ class CreateSchedulePopView: UIView {
|
|||
let btn = UIButton(type: .custom)
|
||||
btn.setImage(UIImage(named: "Schedule/add"), for: .normal)
|
||||
btn.backgroundColor = .clear
|
||||
btn.extendEdgeInsets = UIEdgeInsets(top: 30, left: 10, bottom: 10, right: 15)
|
||||
btn.extendEdgeInsets = UIEdgeInsets(top: 30, left: 30, bottom: 10, right: 15)
|
||||
return btn
|
||||
}()
|
||||
|
||||
|
|
@ -191,6 +118,7 @@ class CreateSchedulePopView: UIView {
|
|||
view.backgroundColor = .white
|
||||
view.showsHorizontalScrollIndicator = false
|
||||
view.bounces = false
|
||||
view.delaysContentTouches = false
|
||||
|
||||
let contentView = UIView()
|
||||
contentView.backgroundColor = .clear
|
||||
|
|
@ -203,9 +131,14 @@ class CreateSchedulePopView: UIView {
|
|||
.top()
|
||||
.edgesHorzontal()
|
||||
|
||||
contentView.addSubview(shareGroupView)
|
||||
shareGroupView.layoutChain
|
||||
.topToBottomOfView(tableView, offset: 5)
|
||||
.edgesHorzontal()
|
||||
|
||||
contentView.addSubview(createBtn)
|
||||
createBtn.layoutChain
|
||||
.topToBottomOfView(tableView, offset: 30)
|
||||
.topToBottomOfView(shareGroupView, offset: 30)
|
||||
.edgesHorzontal(30)
|
||||
.height(50)
|
||||
.bottom(kSafeBottomMargin + 10)
|
||||
|
|
@ -225,6 +158,42 @@ class CreateSchedulePopView: UIView {
|
|||
return tv
|
||||
}()
|
||||
|
||||
/// 选择分享的圈子
|
||||
lazy var shareGroupView: UIView = {
|
||||
let view = UIView()
|
||||
view.backgroundColor = .clear
|
||||
|
||||
let titleLab = UILabel()
|
||||
titleLab.text = "选择分享的圈子"
|
||||
titleLab.font = .systemFont(ofSize: 14, weight: .medium)
|
||||
titleLab.textColor = ThemeManager.shared.color.titleAuxColor
|
||||
view.addSubview(titleLab)
|
||||
titleLab.layoutChain.left(15).top()
|
||||
|
||||
view.addSubview(tagListView)
|
||||
tagListView.layoutChain
|
||||
.topToBottomOfView(titleLab, offset: 15)
|
||||
.edgesHorzontal(15)
|
||||
.bottom(15)
|
||||
|
||||
return view
|
||||
}()
|
||||
|
||||
lazy var tagListView: TagListView = {
|
||||
let view = TagListView()
|
||||
view.textFont = UIFont.systemFont(ofSize: 12, weight: .medium)
|
||||
view.textColor = UIColor(hexStr: "#999999")
|
||||
view.tagBackgroundColor = UIColor(hexStr: "#F2F2F2")
|
||||
view.selectedTextColor = UIColor(hexStr: "#16B3FF")
|
||||
view.tagSelectedBackgroundColor = UIColor(hexStr: "#E3F6FF")
|
||||
view.selectedBorderColor = UIColor(hexStr: "#16B3FF")
|
||||
view.paddingX = 15 // 水平内边距
|
||||
view.paddingY = 10 // 垂直内边距
|
||||
view.alignment = .left // 对齐
|
||||
view.translatesAutoresizingMaskIntoConstraints = false
|
||||
return view
|
||||
}()
|
||||
|
||||
lazy var createBtn: UIButton = {
|
||||
let btn = UIButton(type: .custom)
|
||||
btn.setTitle("立即创建", for: .normal)
|
||||
|
|
@ -239,7 +208,6 @@ class CreateSchedulePopView: UIView {
|
|||
super.init(frame: frame)
|
||||
backgroundColor = .white
|
||||
setupUI()
|
||||
setupRx()
|
||||
}
|
||||
|
||||
required init?(coder: NSCoder) {
|
||||
|
|
@ -253,23 +221,40 @@ class CreateSchedulePopView: UIView {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// MARK: - SchedulePointCell
|
||||
|
||||
class SchedulePointCell: UITableViewCell {
|
||||
|
||||
var disposeBag = DisposeBag()
|
||||
|
||||
var onLocationTap: (() -> Void)?
|
||||
var onTimeTap: (() -> Void)?
|
||||
|
||||
func configure(item: SchedulePointItem, index: Int, total: Int, onDelete: @escaping () -> Void) {
|
||||
disposeBag = DisposeBag()
|
||||
indexLabel.text = "\(index + 1)"
|
||||
locationLabel.text = item.locationName.isEmpty ? "点击选择地点" : item.locationName
|
||||
|
||||
locationLabel.rx.tapGesture
|
||||
.when(.recognized)
|
||||
.subscribe(onNext: { [weak self] _ in
|
||||
self?.onLocationTap?()
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
if let expectedTime = item.expectedTime {
|
||||
timeLabel.text = formatTime(expectedTime)
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
timeLabel.text = "请选择到达时间"
|
||||
}
|
||||
timeLabel.rx.tapGesture
|
||||
.when(.recognized)
|
||||
.subscribe(onNext: { [weak self] _ in
|
||||
self?.onTimeTap?()
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
// 左侧竖线:仅有一条时不显示虚线,首条顶部不画、末条底部不画
|
||||
topDashView.isHidden = total <= 1 || index == 0
|
||||
|
|
@ -334,7 +319,7 @@ class SchedulePointCell: UITableViewCell {
|
|||
.top(15)
|
||||
.leftToRightOfView(pointIcon, offset: 20)
|
||||
.right(15)
|
||||
.height(92)
|
||||
// .height(92)
|
||||
.bottom(15)
|
||||
|
||||
cardCornerView.layoutChain.edges()
|
||||
|
|
@ -346,19 +331,26 @@ class SchedulePointCell: UITableViewCell {
|
|||
locationLabel.layoutChain
|
||||
.topToBottomOfView(indexLabel, offset: 10)
|
||||
.left(10)
|
||||
|
||||
.compressionHorizontal(.defaultLow)
|
||||
|
||||
timeLabel.layoutChain
|
||||
.centerY(locationLabel)
|
||||
.leftToRightOfView(locationLabel, offset: 38)
|
||||
.topToView(locationLabel)
|
||||
.right(10)
|
||||
.compressionHorizontal(.required)
|
||||
|
||||
locationLabel.layoutChain.rightToLeftOfView(timeLabel, offset: -8)
|
||||
|
||||
deleteBtn.layoutChain
|
||||
.bottom(15).right(15)
|
||||
.right(15)
|
||||
.width(14).height(14)
|
||||
|
||||
remarkTF.layoutChain
|
||||
.topToBottomOfView(locationLabel, offset: 15)
|
||||
.leftToView(locationLabel)
|
||||
.rightToLeftOfView(deleteBtn, offset: -10)
|
||||
.bottom(15)
|
||||
|
||||
deleteBtn.layoutChain.centerY(remarkTF)
|
||||
}
|
||||
|
||||
// MARK: - Views
|
||||
|
|
@ -412,7 +404,7 @@ class SchedulePointCell: UITableViewCell {
|
|||
let l = UILabel()
|
||||
l.font = .systemFont(ofSize: 14, weight: .medium)
|
||||
l.textColor = UIColor(hexStr: "#333333")
|
||||
l.lineBreakMode = .byTruncatingTail
|
||||
// l.numberOfLines = 0
|
||||
return l
|
||||
}()
|
||||
|
||||
|
|
@ -421,6 +413,7 @@ class SchedulePointCell: UITableViewCell {
|
|||
l.font = .systemFont(ofSize: 12, weight: .medium)
|
||||
l.textColor = UIColor(hexStr: "#333333")
|
||||
l.isUserInteractionEnabled = true
|
||||
l.textAlignment = .right
|
||||
return l
|
||||
}()
|
||||
|
||||
|
|
|
|||
|
|
@ -6,31 +6,403 @@
|
|||
//
|
||||
|
||||
import UIKit
|
||||
import RxSwift
|
||||
import RxCocoa
|
||||
import RxDataSources
|
||||
import SwiftyUserDefaults
|
||||
import BRPickerView
|
||||
import RxGesture
|
||||
|
||||
class CreateScheduleVC: BaseViewController {
|
||||
#if !targetEnvironment(simulator)
|
||||
import AMapNaviKit
|
||||
import AMapSearchKit
|
||||
import TagListView
|
||||
#endif
|
||||
|
||||
class CreateScheduleVC: BaseViewController, MAMapViewDelegate {
|
||||
|
||||
override var isNavigationBarHidden: Bool { true }
|
||||
|
||||
fileprivate var rootView: CreateScheduleView!
|
||||
private let viewModel = CreateScheduleVM()
|
||||
private var popView: CreateSchedulePopView { rootView.createSchedulePopView }
|
||||
|
||||
override func loadView() {
|
||||
rootView = CreateScheduleView(frame: UIScreen.main.bounds)
|
||||
view = rootView
|
||||
}
|
||||
|
||||
private var groupList: [GroupInfoModel] = []
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
popView.tagListView.delegate = self
|
||||
setupMap()
|
||||
bindViewModel()
|
||||
|
||||
// Do any additional setup after loading the view.
|
||||
requestGroupInfo()
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
// MARK: - Navigation
|
||||
|
||||
// In a storyboard-based application, you will often want to do a little preparation before navigation
|
||||
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
|
||||
// Get the new view controller using segue.destination.
|
||||
// Pass the selected object to the new view controller.
|
||||
override func viewDidDisappear(_ animated: Bool) {
|
||||
super.viewDidDisappear(animated)
|
||||
if isMovingFromParent || isBeingDismissed {
|
||||
#if !targetEnvironment(simulator)
|
||||
rootView.cleanupMap()
|
||||
#endif
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
// MARK: - API
|
||||
private func requestGroupInfo() {
|
||||
GroupService.groupInfo().subscribe { response in
|
||||
guard let model = response.model else { return }
|
||||
self.groupList = model.groups
|
||||
self.popView.setupTagData(model.groups)
|
||||
}.disposed(by: disposeBag)
|
||||
}
|
||||
|
||||
// MARK: - Binding
|
||||
|
||||
private lazy var dataSource: RxTableViewSectionedReloadDataSource<SchedulePointSection> = {
|
||||
RxTableViewSectionedReloadDataSource<SchedulePointSection>(
|
||||
configureCell: { [weak self] _, tv, indexPath, item in
|
||||
let cell: SchedulePointCell = tv.dequeueReusableCell(for: indexPath)
|
||||
cell.onTimeTap = { [weak self] in
|
||||
guard let self = self else { return }
|
||||
let picker = BRDatePickerView(pickerMode: .HM)
|
||||
picker.title = "选择到达时间"
|
||||
let style = BRPickerStyle()
|
||||
style.selectRowTextColor = UIColor(hexStr: "#16B3FF")
|
||||
picker.pickerStyle = style
|
||||
picker.resultBlock = { date, _ in
|
||||
guard let d = date else { return }
|
||||
var list = self.viewModel.pointsRelay.value
|
||||
guard indexPath.row < list.count else { return }
|
||||
// 用今天的日期 + 选择的时间拼成完整时间戳
|
||||
let cal = Calendar.current
|
||||
let today = Date()
|
||||
var comps = cal.dateComponents([.year, .month, .day], from: today)
|
||||
let timeComps = cal.dateComponents([.hour, .minute], from: d)
|
||||
comps.hour = timeComps.hour
|
||||
comps.minute = timeComps.minute
|
||||
if let merged = cal.date(from: comps) {
|
||||
list[indexPath.row].expectedTime = merged
|
||||
self.viewModel.pointsRelay.accept(list)
|
||||
}
|
||||
}
|
||||
picker.show()
|
||||
}
|
||||
|
||||
cell.onLocationTap = { [weak self] in
|
||||
guard let self = self else { return }
|
||||
let coord = item.latitude != 0 || item.longitude != 0
|
||||
? CLLocationCoordinate2D(latitude: item.latitude, longitude: item.longitude)
|
||||
: kCLLocationCoordinate2DInvalid
|
||||
let vc = LocationPickerVC()
|
||||
vc.modalPresentationStyle = .fullScreen
|
||||
if !item.locationName.isEmpty {
|
||||
vc.initialLocation = PickedLocation(
|
||||
name: item.locationName, address: item.address,
|
||||
coordinate: coord,
|
||||
province: item.province, city: item.city,
|
||||
district: item.district, street: item.street,
|
||||
country: item.country, formatted_address: item.formatted_address
|
||||
)
|
||||
}
|
||||
vc.onPickedLocation = { picked in
|
||||
self.viewModel.updatePointLocation(index: indexPath.row, name: picked.name, address: picked.address)
|
||||
// 补充坐标
|
||||
var list = self.viewModel.pointsRelay.value
|
||||
guard indexPath.row < list.count else { return }
|
||||
list[indexPath.row].latitude = picked.coordinate.latitude
|
||||
list[indexPath.row].longitude = picked.coordinate.longitude
|
||||
self.viewModel.pointsRelay.accept(list)
|
||||
}
|
||||
self.present(vc, animated: true)
|
||||
}
|
||||
cell.configure(item: item, index: indexPath.row,
|
||||
total: self?.viewModel.pointsRelay.value.count ?? 0,
|
||||
onDelete: { [weak self] in
|
||||
self?.viewModel.deletePointAt.onNext(indexPath.row)
|
||||
})
|
||||
return cell
|
||||
})
|
||||
}()
|
||||
|
||||
fileprivate func bindViewModel() {
|
||||
// 日期
|
||||
viewModel.dateString
|
||||
.bind(to: popView.dateLab.rx.text)
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
// tableView
|
||||
viewModel.pointsRelay
|
||||
.map { [SchedulePointSection(model: "", items: $0)] }
|
||||
.bind(to: popView.tableView.rx.items(dataSource: dataSource))
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
// 动态高度 + 刷新地图路线
|
||||
viewModel.pointsRelay
|
||||
.observe(on: MainScheduler.asyncInstance)
|
||||
.subscribe(onNext: { [weak self] items in
|
||||
guard let self = self else { return }
|
||||
let h = max(CGFloat(items.count) * 122, 122)
|
||||
self.popView.tableView.layoutChain.height(h)
|
||||
self.refreshMapPoints()
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
// 添加
|
||||
popView.addBtn.rx.tap
|
||||
.bind(to: viewModel.addPointTapped)
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
// 日期点击
|
||||
popView.dateLab.rx.tapGesture
|
||||
.when(.recognized)
|
||||
.subscribe(onNext: { [weak self] _ in
|
||||
self?.showDatePicker()
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
// 创建行程
|
||||
popView.createBtn.rx.tap
|
||||
.subscribe(onNext: { [weak self] _ in
|
||||
self?.handleCreate()
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
}
|
||||
|
||||
private func handleCreate() {
|
||||
let points = viewModel.pointsRelay.value
|
||||
let hasLocation = points.filter { $0.latitude != 0 || $0.longitude != 0 }
|
||||
let hasTime = points.filter { $0.expectedTime != nil }
|
||||
|
||||
// 校验
|
||||
guard points.count >= 2 else { DLToast.show(text: "至少需要两个行程点"); return }
|
||||
guard hasLocation.count == points.count else { DLToast.show(text: "请为每个行程点选择地点"); return }
|
||||
guard hasTime.count == points.count else { DLToast.show(text: "请为每个行程点选择到达时间"); return }
|
||||
guard !viewModel.selectedGroupKeys.isEmpty else { DLToast.show(text: "请选择分享的圈子"); return }
|
||||
|
||||
// 时间戳(毫秒)
|
||||
let ts = Int64(viewModel.selectedDate.value.timeIntervalSince1970 * 1000)
|
||||
|
||||
// 生成 points 数组
|
||||
let pointsJSON: [[String: Any]] = points.map { p in
|
||||
let expectedTs = p.expectedTime.map { Int64($0.timeIntervalSince1970 * 1000) } ?? 0
|
||||
return [
|
||||
"point": ["lat": p.latitude, "lng": p.longitude],
|
||||
"address": [
|
||||
"formatted_address": p.formatted_address,
|
||||
"country": p.country,
|
||||
"province": p.province,
|
||||
"city": p.city,
|
||||
"district": p.district,
|
||||
"street": p.street
|
||||
],
|
||||
"expected_timestamp": expectedTs,
|
||||
"remark": p.remark
|
||||
]
|
||||
}
|
||||
|
||||
let params: [String: Any] = [
|
||||
"group_keys": viewModel.selectedGroupKeys,
|
||||
"timestamp": ts,
|
||||
"points": pointsJSON
|
||||
]
|
||||
print("📋 Create schedule: \(params)")
|
||||
DLToast.show(text: "创建成功")
|
||||
}
|
||||
|
||||
private func setupMap() {
|
||||
#if !targetEnvironment(simulator)
|
||||
rootView.mapView.delegate = self
|
||||
rootView.mapView.showsUserLocation = false
|
||||
if let lat = Defaults[\.currentLatitude], let lon = Defaults[\.currentLongitude] {
|
||||
let coord = CLLocationCoordinate2D(latitude: lat, longitude: lon)
|
||||
if CLLocationCoordinate2DIsValid(coord) {
|
||||
rootView.mapView.setCenter(coord, animated: false)
|
||||
rootView.mapView.setZoomLevel(18, animated: false)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// MARK: - Date Picker
|
||||
private func showDatePicker() {
|
||||
let picker = BRDatePickerView(pickerMode: .YMD)
|
||||
picker.minDate = Date()
|
||||
picker.maxDate = Calendar.current.date(byAdding: .day, value: 7, to: Date())
|
||||
let style = BRPickerStyle()
|
||||
style.selectRowTextColor = UIColor(hexStr: "#16B3FF")
|
||||
picker.pickerStyle = style
|
||||
picker.resultBlock = { [weak self] date, _ in
|
||||
if let d = date { self?.viewModel.selectedDate.accept(d) }
|
||||
}
|
||||
picker.show()
|
||||
}
|
||||
|
||||
// MARK: - 路线规划
|
||||
#if !targetEnvironment(simulator)
|
||||
private let routeSearch = AMapSearchAPI()
|
||||
#endif
|
||||
private var routeOverlays: [MAPolyline] = []
|
||||
private var pointAnnotations: [MAPointAnnotation] = []
|
||||
/// 待规划的有效点队列(refreshMapPoints 先存点,异步回调解锁)
|
||||
private var pendingRoutePoints: [CLLocationCoordinate2D] = []
|
||||
|
||||
private func refreshMapPoints() {
|
||||
let points = viewModel.pointsRelay.value
|
||||
#if !targetEnvironment(simulator)
|
||||
routeSearch?.delegate = self
|
||||
|
||||
// 清除旧标注和路线
|
||||
for ann in pointAnnotations { rootView.mapView.removeAnnotation(ann) }
|
||||
for ol in routeOverlays { rootView.mapView.remove(ol) }
|
||||
pointAnnotations.removeAll()
|
||||
routeOverlays.removeAll()
|
||||
|
||||
// 添加带序号的标注
|
||||
let validPoints = points.filter { $0.latitude != 0 || $0.longitude != 0 }
|
||||
for (i, p) in validPoints.enumerated() {
|
||||
let ann = MAPointAnnotation()
|
||||
ann.coordinate = CLLocationCoordinate2D(latitude: p.latitude, longitude: p.longitude)
|
||||
ann.title = "\(i + 1)"
|
||||
rootView.mapView.addAnnotation(ann)
|
||||
pointAnnotations.append(ann)
|
||||
}
|
||||
|
||||
// 请求驾车路线
|
||||
if validPoints.count >= 2 {
|
||||
pendingRoutePoints = validPoints.map { CLLocationCoordinate2D(latitude: $0.latitude, longitude: $0.longitude) }
|
||||
requestRoute()
|
||||
}
|
||||
|
||||
// 缩放至包含所有点
|
||||
let lats = validPoints.map { $0.latitude }
|
||||
let lons = validPoints.map { $0.longitude }
|
||||
if let minLat = lats.min(), let maxLat = lats.max(),
|
||||
let minLon = lons.min(), let maxLon = lons.max() {
|
||||
let center = CLLocationCoordinate2D(latitude: (minLat + maxLat) / 2, longitude: (minLon + maxLon) / 2)
|
||||
let span = MACoordinateSpan(latitudeDelta: (maxLat - minLat) * 2.5 + 0.01, longitudeDelta: (maxLon - minLon) * 2.5 + 0.01)
|
||||
rootView.mapView.setRegion(MACoordinateRegion(center: center, span: span), animated: true)
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if !targetEnvironment(simulator)
|
||||
private func requestRoute() {
|
||||
guard pendingRoutePoints.count >= 2 else { return }
|
||||
let request = AMapDrivingRouteSearchRequest()
|
||||
request.origin = AMapGeoPoint.location(withLatitude: CGFloat(pendingRoutePoints[0].latitude), longitude: CGFloat(pendingRoutePoints[0].longitude))
|
||||
request.destination = AMapGeoPoint.location(withLatitude: CGFloat(pendingRoutePoints.last!.latitude), longitude: CGFloat(pendingRoutePoints.last!.longitude))
|
||||
// 中间途经点
|
||||
if pendingRoutePoints.count > 2 {
|
||||
var waypoints: [AMapGeoPoint] = []
|
||||
for i in 1..<pendingRoutePoints.count - 1 {
|
||||
let p = pendingRoutePoints[i]
|
||||
if let wp = AMapGeoPoint.location(withLatitude: CGFloat(p.latitude), longitude: CGFloat(p.longitude)) {
|
||||
waypoints.append(wp)
|
||||
}
|
||||
}
|
||||
request.waypoints = waypoints
|
||||
}
|
||||
request.strategy = 0
|
||||
// request.city = ""
|
||||
routeSearch?.aMapDrivingRouteSearch(request)
|
||||
}
|
||||
#endif
|
||||
|
||||
/// 生成数字图标
|
||||
private static func numberImage(_ num: Int) -> UIImage? {
|
||||
let size = CGSize(width: 20, height: 20)
|
||||
let rect = CGRect(origin: .zero, size: size)
|
||||
UIGraphicsBeginImageContextWithOptions(size, false, 0)
|
||||
guard let ctx = UIGraphicsGetCurrentContext() else { return nil }
|
||||
// 白色边框
|
||||
ctx.setLineWidth(1)
|
||||
ctx.setStrokeColor(UIColor.white.cgColor)
|
||||
// 蓝色填充
|
||||
ctx.setFillColor(UIColor(hexStr: "#16B3FF").cgColor)
|
||||
let path = UIBezierPath(ovalIn: rect)
|
||||
path.fill()
|
||||
path.stroke()
|
||||
// 白色文字
|
||||
let text = "\(num)" as NSString
|
||||
let attrs: [NSAttributedString.Key: Any] = [.font: UIFont.boldSystemFont(ofSize: 11), .foregroundColor: UIColor.white]
|
||||
let strSize = text.size(withAttributes: attrs)
|
||||
text.draw(at: CGPoint(x: (size.width - strSize.width) / 2, y: (size.height - strSize.height) / 2))
|
||||
let img = UIGraphicsGetImageFromCurrentImageContext()
|
||||
UIGraphicsEndImageContext()
|
||||
return img
|
||||
}
|
||||
|
||||
// MARK: - Map
|
||||
func mapView(_ mapView: MAMapView!, viewFor annotation: MAAnnotation!) -> MAAnnotationView! {
|
||||
guard !(annotation is MAUserLocation), let pointAnn = annotation as? MAPointAnnotation else { return nil }
|
||||
if let num = Int(pointAnn.title ?? "") {
|
||||
let id = "PointPin"
|
||||
var view = mapView.dequeueReusableAnnotationView(withIdentifier: id)
|
||||
if view == nil { view = MAAnnotationView(annotation: annotation, reuseIdentifier: id) }
|
||||
else { view?.annotation = annotation }
|
||||
view?.image = Self.numberImage(num)
|
||||
view?.centerOffset = CGPoint(x: 0, y: -15)
|
||||
return view
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func mapView(_ mapView: MAMapView!, rendererFor overlay: MAOverlay!) -> MAOverlayRenderer! {
|
||||
if let polyline = overlay as? MAPolyline {
|
||||
let r = MAPolylineRenderer(polyline: polyline)
|
||||
r?.strokeColor = UIColor(hexStr: "#16B3FF")
|
||||
r?.lineWidth = 3
|
||||
r?.lineDashType = kMALineDashTypeSquare
|
||||
return r
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - TagListViewDelegate
|
||||
extension CreateScheduleVC: TagListViewDelegate {
|
||||
func tagPressed(_ title: String, tagView: TagView, sender: TagListView) {
|
||||
tagView.isSelected = !tagView.isSelected
|
||||
|
||||
// 根据 tagView 在 tagViews 中的索引获取对应的 group_key
|
||||
guard let idx = sender.tagViews.firstIndex(of: tagView),
|
||||
idx < groupList.count else { return }
|
||||
let key = groupList[idx].group_key
|
||||
viewModel.toggleGroupKey(key)
|
||||
print("📋 selectedGroupKeys: \(viewModel.selectedGroupKeys)")
|
||||
}
|
||||
}
|
||||
|
||||
#if !targetEnvironment(simulator)
|
||||
// MARK: - AMapSearchDelegate
|
||||
extension CreateScheduleVC: AMapSearchDelegate {
|
||||
func onRouteSearchDone(_ request: AMapRouteSearchBaseRequest!, response: AMapRouteSearchResponse!) {
|
||||
guard let path = response.route?.paths?.first as? AMapPath else { return }
|
||||
var coords: [CLLocationCoordinate2D] = []
|
||||
for step in path.steps {
|
||||
guard let polylineStr = step.polyline else { continue }
|
||||
for point in polylineStr.components(separatedBy: ";") {
|
||||
let latLon = point.components(separatedBy: ",")
|
||||
if latLon.count == 2, let lon = Double(latLon[0]), let lat = Double(latLon[1]) {
|
||||
coords.append(CLLocationCoordinate2D(latitude: lat, longitude: lon))
|
||||
}
|
||||
}
|
||||
}
|
||||
guard coords.count > 1 else { return }
|
||||
var mutableCoords = coords
|
||||
if let polyline = MAPolyline(coordinates: &mutableCoords, count: UInt(coords.count)) {
|
||||
rootView.mapView.add(polyline)
|
||||
routeOverlays.append(polyline)
|
||||
}
|
||||
}
|
||||
|
||||
func aMapSearchRequest(_ request: Any!, didFailWithError error: Error!) {
|
||||
print("Route error: \(error.localizedDescription)")
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -0,0 +1,114 @@
|
|||
//
|
||||
// CreateScheduleVM.swift
|
||||
// QuickLocation
|
||||
//
|
||||
// Created by 八条 on 2026/6/24.
|
||||
//
|
||||
|
||||
import RxSwift
|
||||
import RxCocoa
|
||||
import RxDataSources
|
||||
|
||||
// MARK: - 行程点编辑模型
|
||||
struct SchedulePointItem: IdentifiableType, Equatable {
|
||||
let identity: String = UUID().uuidString
|
||||
var locationName: String = ""
|
||||
var address: String = ""
|
||||
var latitude: Double = 0
|
||||
var longitude: Double = 0
|
||||
var province: String = ""
|
||||
var city: String = ""
|
||||
var district: String = ""
|
||||
var street: String = ""
|
||||
var country: String = ""
|
||||
var formatted_address: String = ""
|
||||
var expectedTime: Date?
|
||||
var remark: String = ""
|
||||
}
|
||||
|
||||
typealias SchedulePointSection = SectionModel<String, SchedulePointItem>
|
||||
|
||||
class CreateScheduleVM {
|
||||
|
||||
let disposeBag = DisposeBag()
|
||||
|
||||
// MARK: - Input
|
||||
let addPointTapped = PublishSubject<Void>()
|
||||
let deletePointAt = PublishSubject<Int>()
|
||||
let updatePoint = PublishSubject<(index: Int, item: SchedulePointItem)>()
|
||||
let selectedDate = BehaviorRelay<Date>(value: Date())
|
||||
var selectedGroupKeys: [String] = []
|
||||
|
||||
/// 切换圈子选中状态(已选则删除,未选则添加)
|
||||
func toggleGroupKey(_ key: String) {
|
||||
if let idx = selectedGroupKeys.firstIndex(of: key) {
|
||||
selectedGroupKeys.remove(at: idx)
|
||||
} else {
|
||||
selectedGroupKeys.append(key)
|
||||
}
|
||||
}
|
||||
|
||||
/// 删除指定圈子 key
|
||||
func removeGroupKey(_ key: String) {
|
||||
selectedGroupKeys.removeAll { $0 == key }
|
||||
}
|
||||
|
||||
// MARK: - Output
|
||||
let pointsRelay: BehaviorRelay<[SchedulePointItem]>
|
||||
let dateString: Observable<String>
|
||||
|
||||
init() {
|
||||
pointsRelay = BehaviorRelay<[SchedulePointItem]>(value: [
|
||||
SchedulePointItem()
|
||||
])
|
||||
|
||||
dateString = selectedDate
|
||||
.map {
|
||||
let fmt = DateFormatter()
|
||||
fmt.dateFormat = "yyyy年MM月dd日"
|
||||
return fmt.string(from: $0)
|
||||
}
|
||||
|
||||
// 添加行程点
|
||||
addPointTapped
|
||||
.withLatestFrom(pointsRelay)
|
||||
.map { list in
|
||||
var new = list
|
||||
new.append(SchedulePointItem())
|
||||
return new
|
||||
}
|
||||
.bind(to: pointsRelay)
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
// 删除行程点
|
||||
deletePointAt
|
||||
.withLatestFrom(pointsRelay) { ($1, $0) }
|
||||
.subscribe(onNext: { list, idx in
|
||||
guard list.count > 1, idx < list.count else { return }
|
||||
var new = list
|
||||
new.remove(at: idx)
|
||||
self.pointsRelay.accept(new)
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
// 更新某个行程点
|
||||
updatePoint
|
||||
.withLatestFrom(pointsRelay) { ($1, $0) }
|
||||
.subscribe(onNext: { list, update in
|
||||
guard update.index < list.count else { return }
|
||||
var new = list
|
||||
new[update.index] = update.item
|
||||
self.pointsRelay.accept(new)
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
}
|
||||
|
||||
/// 从 LocationPicker 回调更新某个点的位置
|
||||
func updatePointLocation(index: Int, name: String, address: String) {
|
||||
var list = pointsRelay.value
|
||||
guard index < list.count else { return }
|
||||
list[index].locationName = name
|
||||
list[index].address = address
|
||||
pointsRelay.accept(list)
|
||||
}
|
||||
}
|
||||
|
|
@ -31,18 +31,12 @@ class CreateScheduleView: UIView {
|
|||
AppRouter.shared.popOrDismiss()
|
||||
}).disposed(by: disposeBag)
|
||||
|
||||
// tableView 到达顶部继续下拉时,改由 PopView 的 pan 手势接管
|
||||
// scrollView 到达顶部后,由 pan 手势接管 PopView 滑动
|
||||
createSchedulePopView.scrollView.rx.contentOffset
|
||||
.observe(on: MainScheduler.asyncInstance)
|
||||
.subscribe(onNext: { [weak self] offset in
|
||||
guard let self = self else { return }
|
||||
if self.isSubCanScroll {
|
||||
if offset.y <= 0 {
|
||||
self.isSubCanScroll = false
|
||||
self.createSchedulePopView.scrollView.setContentOffset(.zero, animated: false)
|
||||
}
|
||||
} else if offset.y != 0 {
|
||||
self.createSchedulePopView.scrollView.setContentOffset(.zero, animated: false)
|
||||
}
|
||||
guard let self = self, self.isSubCanScroll, offset.y <= 0 else { return }
|
||||
self.createSchedulePopView.scrollView.setContentOffset(.zero, animated: false)
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
}
|
||||
|
|
@ -110,10 +104,10 @@ class CreateScheduleView: UIView {
|
|||
let newTop = panStartTop + pan.translation(in: self).y
|
||||
|
||||
if isSubCanScroll {
|
||||
let tableViewOffset = self.createSchedulePopView.scrollView.contentOffset.y
|
||||
if tableViewOffset > 0, newTop >= popUpLimit {
|
||||
return
|
||||
}
|
||||
let scrollOffset = self.createSchedulePopView.scrollView.contentOffset.y
|
||||
// 内容未到顶部时,不干涉 scrollView 的滑动
|
||||
if scrollOffset > 0 { return }
|
||||
// 到顶部后切为 view 拖拽
|
||||
isSubCanScroll = false
|
||||
panStartTop = createSchedulePopView.frame.minY
|
||||
}
|
||||
|
|
@ -132,15 +126,16 @@ class CreateScheduleView: UIView {
|
|||
}
|
||||
topConstraint.constant = target
|
||||
|
||||
// 非最大化时禁用 scollView 滚动
|
||||
let atTop = target == self.popUpLimit
|
||||
createSchedulePopView.scrollView.isScrollEnabled = atTop
|
||||
if !atTop {
|
||||
createSchedulePopView.scrollView.setContentOffset(.zero, animated: false)
|
||||
}
|
||||
|
||||
UIView.animate(withDuration: 0.2, delay: 0,
|
||||
options: [.curveEaseInOut, .allowUserInteraction]) {
|
||||
self.layoutIfNeeded()
|
||||
} completion: { _ in
|
||||
let atTop = target == self.popUpLimit
|
||||
self.isSubCanScroll = atTop
|
||||
if !atTop {
|
||||
self.createSchedulePopView.scrollView.contentOffset.y = 0
|
||||
}
|
||||
}
|
||||
|
||||
default:
|
||||
|
|
@ -154,6 +149,7 @@ class CreateScheduleView: UIView {
|
|||
isLimitsSet = true
|
||||
popDownLimit = kScreenHeight / 3 * 2
|
||||
popUpLimit = navBarView.frame.maxY
|
||||
createSchedulePopView.scrollView.isScrollEnabled = false
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -187,7 +183,7 @@ class CreateScheduleView: UIView {
|
|||
}()
|
||||
|
||||
#if !targetEnvironment(simulator)
|
||||
lazy var mapView: MAMapView = {
|
||||
lazy var mapView: MAMapView! = {
|
||||
let mv = MAMapView()
|
||||
mv.zoomLevel = 14
|
||||
mv.showsUserLocation = false
|
||||
|
|
@ -197,6 +193,15 @@ class CreateScheduleView: UIView {
|
|||
}()
|
||||
#endif
|
||||
|
||||
|
||||
#if !targetEnvironment(simulator)
|
||||
func cleanupMap() {
|
||||
mapView?.delegate = nil
|
||||
mapView?.removeFromSuperview()
|
||||
mapView = nil
|
||||
}
|
||||
#endif
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
backgroundColor = .clear
|
||||
|
|
@ -210,6 +215,27 @@ class CreateScheduleView: UIView {
|
|||
|
||||
}
|
||||
|
||||
// MARK: - UIScrollViewDelegate
|
||||
extension CreateScheduleView: UIScrollViewDelegate {
|
||||
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
|
||||
// 内容已有偏移时才允许子滚动
|
||||
if scrollView.contentOffset.y > 0 {
|
||||
isSubCanScroll = true
|
||||
}
|
||||
}
|
||||
|
||||
func scrollViewDidScroll(_ scrollView: UIScrollView) {
|
||||
if isSubCanScroll {
|
||||
if scrollView.contentOffset.y <= 0 {
|
||||
isSubCanScroll = false
|
||||
scrollView.contentOffset.y = 0
|
||||
}
|
||||
} else {
|
||||
scrollView.contentOffset.y = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - UIGestureRecognizerDelegate
|
||||
extension CreateScheduleView: UIGestureRecognizerDelegate {
|
||||
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,327 @@
|
|||
//
|
||||
// LocationPickerVC.swift
|
||||
// QuickLocation
|
||||
//
|
||||
// Created by 八条 on 2026/6/24.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import RxSwift
|
||||
import RxCocoa
|
||||
import CoreLocation
|
||||
import SwiftyUserDefaults
|
||||
#if !targetEnvironment(simulator)
|
||||
import AMapNaviKit
|
||||
import AMapSearchKit
|
||||
#endif
|
||||
|
||||
struct PickedLocation {
|
||||
let name: String
|
||||
let address: String
|
||||
let coordinate: CLLocationCoordinate2D
|
||||
var province: String = ""
|
||||
var city: String = ""
|
||||
var district: String = ""
|
||||
var street: String = ""
|
||||
var country: String = ""
|
||||
var formatted_address: String = ""
|
||||
}
|
||||
|
||||
class LocationPickerVC: BaseViewController {
|
||||
|
||||
override var isNavigationBarHidden: Bool { true }
|
||||
|
||||
var onPickedLocation: ((PickedLocation) -> Void)?
|
||||
var initialLocation: PickedLocation?
|
||||
|
||||
fileprivate var rootView: LocationPickerView!
|
||||
|
||||
override func loadView() {
|
||||
rootView = LocationPickerView(frame: UIScreen.main.bounds)
|
||||
view = rootView
|
||||
}
|
||||
|
||||
private var isShowPoi: Bool = false
|
||||
override func viewDidDisappear(_ animated: Bool) {
|
||||
super.viewDidDisappear(animated)
|
||||
// 页面被 pop/dismiss 时清理地图资源
|
||||
if isMovingFromParent || isBeingDismissed {
|
||||
#if !targetEnvironment(simulator)
|
||||
rootView.cleanupMap()
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
setupMap()
|
||||
setupKeyboard()
|
||||
setupSearch()
|
||||
// 如果有初始位置,显示在底部面板
|
||||
if let loc = initialLocation {
|
||||
selectedLocation = loc
|
||||
rootView.bottomView.isHidden = false
|
||||
rootView.poiNameLab.text = loc.name
|
||||
rootView.poiAddressLab.text = loc.address
|
||||
if CLLocationCoordinate2DIsValid(loc.coordinate) {
|
||||
rootView.mapView.setCenter(loc.coordinate, animated: false)
|
||||
rootView.mapView.setZoomLevel(19, animated: false)
|
||||
addLocationAnnotation(coordinate: loc.coordinate)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Keyboard
|
||||
private var keyboardHeight: CGFloat = 0
|
||||
|
||||
private func setupKeyboard() {
|
||||
NotificationCenter.default.rx.notification(UIResponder.keyboardWillShowNotification)
|
||||
.subscribe(onNext: { [weak self] noti in
|
||||
guard let self = self,
|
||||
let frame = noti.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? CGRect
|
||||
else { return }
|
||||
self.keyboardHeight = frame.height
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
}
|
||||
|
||||
// MARK: - Search
|
||||
#if !targetEnvironment(simulator)
|
||||
private let searchAPI = AMapSearchAPI()
|
||||
private var searchPoiRequest = AMapPOIKeywordsSearchRequest()
|
||||
#endif
|
||||
private var selectedLocation: PickedLocation?
|
||||
private var searchKeyword: String = ""
|
||||
private var poiItems: [AMapPOI] = []
|
||||
private var maxTableHeight: CGFloat = 300
|
||||
private var currentLocation: CLLocationCoordinate2D?
|
||||
|
||||
private func setupSearch() {
|
||||
#if !targetEnvironment(simulator)
|
||||
searchAPI?.delegate = self
|
||||
|
||||
searchPoiRequest.city = ""
|
||||
searchPoiRequest.offset = 10
|
||||
if let loc = currentLocation {
|
||||
searchPoiRequest.location = AMapGeoPoint.location(withLatitude: CGFloat(loc.latitude), longitude: CGFloat(loc.longitude))
|
||||
}
|
||||
#endif
|
||||
|
||||
rootView.resultTableView.delegate = self
|
||||
rootView.resultTableView.dataSource = self
|
||||
|
||||
// 输入联想
|
||||
rootView.searchField.rx.text.orEmpty
|
||||
.debounce(.milliseconds(400), scheduler: MainScheduler.instance)
|
||||
// .filter { $0.count >= 2 }
|
||||
.subscribe(onNext: { [weak self] keyword in
|
||||
self?.poiSearch(keyword: keyword)
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
rootView.searchField.rx.controlEvent(.editingDidBegin)
|
||||
.subscribe(onNext: {
|
||||
self.isShowPoi = false
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
rootView.searchField.rx.controlEvent(.editingDidEndOnExit)
|
||||
.subscribe(onNext: { [weak self] _ in
|
||||
guard let self = self, !self.poiItems.isEmpty else { return }
|
||||
self.selectPOI(at: 0)
|
||||
self.rootView.searchField.resignFirstResponder()
|
||||
self.rootView.resultTableView.isHidden = true
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
// 搜索按钮 → 选中第一条联想
|
||||
rootView.searchBtn.rx.tap
|
||||
.subscribe(onNext: { [weak self] _ in
|
||||
guard let self = self, !self.poiItems.isEmpty else { return }
|
||||
self.selectPOI(at: 0)
|
||||
self.rootView.searchField.resignFirstResponder()
|
||||
self.rootView.resultTableView.isHidden = true
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
rootView.backBtn.rx.tap
|
||||
.subscribe(onNext: { [weak self] _ in
|
||||
self?.dismiss(animated: true)
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
rootView.confirmBtn.rx.tap
|
||||
.subscribe(onNext: { [weak self] _ in
|
||||
guard let self = self, let loc = self.selectedLocation else { return }
|
||||
self.onPickedLocation?(loc)
|
||||
self.dismiss(animated: true)
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
}
|
||||
|
||||
private func poiSearch(keyword: String) {
|
||||
searchKeyword = keyword
|
||||
#if !targetEnvironment(simulator)
|
||||
searchPoiRequest.keywords = keyword
|
||||
searchAPI?.aMapPOIKeywordsSearch(searchPoiRequest)
|
||||
#endif
|
||||
}
|
||||
|
||||
private func selectPOI(at index: Int) {
|
||||
guard index < poiItems.count else { return }
|
||||
selectLocation(poi: poiItems[index])
|
||||
}
|
||||
|
||||
private func selectLocation(poi: AMapPOI) {
|
||||
let coord = CLLocationCoordinate2D(latitude: CGFloat(poi.location.latitude), longitude: CGFloat(poi.location.longitude))
|
||||
guard CLLocationCoordinate2DIsValid(coord) else { return }
|
||||
isShowPoi = true
|
||||
selectedLocation = PickedLocation(
|
||||
name: poi.name ?? "",
|
||||
address: poi.address ?? "",
|
||||
coordinate: coord,
|
||||
province: poi.province ?? "",
|
||||
city: poi.city ?? "",
|
||||
district: poi.district ?? "",
|
||||
formatted_address: poi.address ?? ""
|
||||
)
|
||||
rootView.resultTableView.isHidden = true
|
||||
rootView.bottomView.isHidden = false
|
||||
rootView.poiNameLab.text = poi.name
|
||||
rootView.poiAddressLab.text = poi.address
|
||||
rootView.mapView.setCenter(coord, animated: true)
|
||||
rootView.mapView.setZoomLevel(19, animated: true)
|
||||
addLocationAnnotation(coordinate: coord)
|
||||
}
|
||||
|
||||
private func updateTableHeight(itemCount: Int) {
|
||||
let contentH = CGFloat(itemCount) * 50
|
||||
let searchBarBottom = kStatusBarHeight + 8 + 44 + 10
|
||||
let bottomOffset: CGFloat = keyboardHeight > 0 ? keyboardHeight : 200
|
||||
let available = kScreenHeight - searchBarBottom - bottomOffset - 10
|
||||
maxTableHeight = max(80, available)
|
||||
let h = min(contentH, maxTableHeight)
|
||||
rootView.resultTableView.layoutChain.height(h)
|
||||
}
|
||||
|
||||
// MARK: - Map
|
||||
private func setupMap() {
|
||||
#if !targetEnvironment(simulator)
|
||||
rootView.mapView.delegate = self
|
||||
rootView.mapView.showsUserLocation = false
|
||||
if let lat = Defaults[\.currentLatitude], let lon = Defaults[\.currentLongitude] {
|
||||
let coord = CLLocationCoordinate2D(latitude: lat, longitude: lon)
|
||||
if CLLocationCoordinate2DIsValid(coord) {
|
||||
currentLocation = coord
|
||||
rootView.mapView.setCenter(coord, animated: false)
|
||||
rootView.mapView.setZoomLevel(18, animated: false)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
private func addLocationAnnotation(coordinate: CLLocationCoordinate2D) {
|
||||
#if !targetEnvironment(simulator)
|
||||
for ann in rootView.mapView.annotations?.compactMap({ $0 as? MAPointAnnotation }) ?? [] {
|
||||
rootView.mapView.removeAnnotation(ann)
|
||||
}
|
||||
let ann = MAPointAnnotation()
|
||||
ann.coordinate = coordinate
|
||||
rootView.mapView.addAnnotation(ann)
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
#if !targetEnvironment(simulator)
|
||||
// MARK: - AMapSearchDelegate
|
||||
extension LocationPickerVC: AMapSearchDelegate {
|
||||
func onPOISearchDone(_ request: AMapPOISearchBaseRequest!, response: AMapPOISearchResponse!) {
|
||||
// POI ID 搜索(来自地图点击)直接选中
|
||||
if request is AMapPOIIDSearchRequest, let poi = response.pois?.first {
|
||||
selectLocation(poi: poi)
|
||||
return
|
||||
}
|
||||
|
||||
// 关键字搜索
|
||||
guard response.pois.count > 0, isShowPoi == false else { return }
|
||||
poiItems = response.pois
|
||||
rootView.resultTableView.isHidden = false
|
||||
rootView.resultTableView.reloadData()
|
||||
updateTableHeight(itemCount: poiItems.count)
|
||||
}
|
||||
|
||||
func onReGeocodeSearchDone(_ request: AMapReGeocodeSearchRequest!, response: AMapReGeocodeSearchResponse!) {
|
||||
guard let regeo = response.regeocode else { return }
|
||||
let address = regeo.formattedAddress ?? ""
|
||||
selectedLocation = PickedLocation(
|
||||
name: rootView.poiNameLab.text ?? "",
|
||||
address: address,
|
||||
coordinate: selectedLocation?.coordinate ?? kCLLocationCoordinate2DInvalid
|
||||
)
|
||||
rootView.poiAddressLab.text = address
|
||||
}
|
||||
|
||||
func aMapSearchRequest(_ request: Any!, didFailWithError error: Error!) {
|
||||
print("AMapSearch error: \(error.localizedDescription)")
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - MAMapViewDelegate
|
||||
extension LocationPickerVC: MAMapViewDelegate {
|
||||
func mapView(_ mapView: MAMapView!, didTouchPois pois: [Any]!) {
|
||||
guard let touchPoi = pois?.first as? MATouchPoi, let uid = touchPoi.uid, !uid.isEmpty else { return }
|
||||
let request = AMapPOIIDSearchRequest()
|
||||
request.uid = uid
|
||||
searchAPI?.aMapPOIIDSearch(request)
|
||||
}
|
||||
|
||||
func mapView(_ mapView: MAMapView!, viewFor annotation: MAAnnotation!) -> MAAnnotationView! {
|
||||
if annotation is MAUserLocation { return nil }
|
||||
guard annotation is MAPointAnnotation else { return nil }
|
||||
let identifier = "LocationPin"
|
||||
var view = mapView.dequeueReusableAnnotationView(withIdentifier: identifier)
|
||||
if view == nil {
|
||||
view = MAAnnotationView(annotation: annotation, reuseIdentifier: identifier)
|
||||
} else {
|
||||
view?.annotation = annotation
|
||||
}
|
||||
view?.image = UIImage(named: "Schedule/location")
|
||||
view?.centerOffset = CGPoint(x: 0, y: -30)
|
||||
return view
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - UITableViewDataSource / Delegate
|
||||
extension LocationPickerVC: UITableViewDataSource, UITableViewDelegate {
|
||||
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
||||
poiItems.count
|
||||
}
|
||||
|
||||
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
||||
let cell = tableView.dequeueReusableCell(withIdentifier: "cell") ?? UITableViewCell(style: .subtitle, reuseIdentifier: "cell")
|
||||
let poi = poiItems[indexPath.row]
|
||||
let name = poi.name ?? ""
|
||||
if !searchKeyword.isEmpty, let range = name.lowercased().range(of: searchKeyword.lowercased()) {
|
||||
let attr = NSMutableAttributedString(string: name)
|
||||
attr.addAttribute(.foregroundColor, value: UIColor(hexStr: "#16B3FF"), range: NSRange(range, in: name))
|
||||
cell.textLabel?.attributedText = attr
|
||||
} else {
|
||||
cell.textLabel?.text = name
|
||||
}
|
||||
cell.textLabel?.font = .systemFont(ofSize: 14)
|
||||
cell.detailTextLabel?.text = poi.address
|
||||
cell.detailTextLabel?.font = .systemFont(ofSize: 12)
|
||||
cell.detailTextLabel?.textColor = .gray
|
||||
let arrow = UIImageView(image: UIImage(named: "Schedule/arrow"))
|
||||
arrow.frame = CGRect(x: 0, y: 0, width: 10, height: 10)
|
||||
cell.accessoryView = arrow
|
||||
return cell
|
||||
}
|
||||
|
||||
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
||||
tableView.deselectRow(at: indexPath, animated: true)
|
||||
rootView.searchField.resignFirstResponder()
|
||||
selectPOI(at: indexPath.row)
|
||||
rootView.searchField.text = poiItems[indexPath.row].name
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -0,0 +1,191 @@
|
|||
//
|
||||
// LocationPickerView.swift
|
||||
// QuickLocation
|
||||
//
|
||||
// Created by 八条 on 2026/6/24.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import RxSwift
|
||||
import RxCocoa
|
||||
#if !targetEnvironment(simulator)
|
||||
import AMapNaviKit
|
||||
#endif
|
||||
|
||||
class LocationPickerView: UIView {
|
||||
|
||||
var disposeBag = DisposeBag()
|
||||
|
||||
private func setupUI() {
|
||||
#if !targetEnvironment(simulator)
|
||||
addSubview(mapView)
|
||||
#endif
|
||||
addSubview(topBgView)
|
||||
topBgView.addSubview(backBtn)
|
||||
topBgView.addSubview(searchField)
|
||||
topBgView.addSubview(searchBtn)
|
||||
addSubview(resultTableView)
|
||||
addSubview(bottomView)
|
||||
bottomView.addSubview(poiNameLab)
|
||||
bottomView.addSubview(poiAddressLab)
|
||||
bottomView.addSubview(confirmBtn)
|
||||
|
||||
mapView.layoutChain
|
||||
.edges()
|
||||
|
||||
topBgView.layoutChain
|
||||
.top(kStatusBarHeight + 8)
|
||||
.edgesHorzontal(15)
|
||||
.height(44)
|
||||
|
||||
backBtn.layoutChain
|
||||
.left().centerY()
|
||||
.width(36).height(36)
|
||||
|
||||
searchField.layoutChain
|
||||
.leftToRightOfView(backBtn, offset: 8)
|
||||
.centerY()
|
||||
.right(60)
|
||||
.height(36)
|
||||
|
||||
searchBtn.layoutChain
|
||||
.right(2).centerY()
|
||||
.width(80).height(36)
|
||||
|
||||
resultTableView.layoutChain
|
||||
.topToBottomOfView(topBgView, offset: 10)
|
||||
.edgesHorzontal(15)
|
||||
|
||||
bottomView.layoutChain
|
||||
.edgesHorzontal()
|
||||
.bottom()
|
||||
.height(160)
|
||||
|
||||
poiNameLab.layoutChain
|
||||
.top(16).left(16).right(16)
|
||||
|
||||
poiAddressLab.layoutChain
|
||||
.topToBottomOfView(poiNameLab, offset: 8)
|
||||
.left(16).right(16)
|
||||
|
||||
confirmBtn.layoutChain
|
||||
.edgesHorzontal(30)
|
||||
.height(44)
|
||||
.bottom(kSafeBottomMargin + 16)
|
||||
}
|
||||
|
||||
// MARK: - Views
|
||||
#if !targetEnvironment(simulator)
|
||||
lazy var mapView: MAMapView! = {
|
||||
let mv = MAMapView()
|
||||
mv.zoomLevel = 18
|
||||
mv.showsUserLocation = false
|
||||
mv.showsCompass = false
|
||||
return mv
|
||||
}()
|
||||
#endif
|
||||
|
||||
lazy var topBgView: UIView = {
|
||||
let v = UIView()
|
||||
v.backgroundColor = .white
|
||||
v.cornerRadius = 22
|
||||
v.layer.shadowColor = UIColor.black.withAlphaComponent(0.1).cgColor
|
||||
v.layer.shadowOffset = .zero
|
||||
v.layer.shadowRadius = 6
|
||||
v.layer.shadowOpacity = 1
|
||||
return v
|
||||
}()
|
||||
|
||||
lazy var backBtn: UIButton = {
|
||||
let btn = UIButton(type: .custom)
|
||||
btn.setImage(UIImage(named: "Common/back"), for: .normal)
|
||||
btn.extendEdgeInsets = UIEdgeInsets(top: 8, left: 8, bottom: 8, right: 8)
|
||||
return btn
|
||||
}()
|
||||
|
||||
lazy var searchField: UITextField = {
|
||||
let tf = UITextField()
|
||||
tf.placeholder = "搜索地点、公园、商圈、道路"
|
||||
tf.font = .systemFont(ofSize: 14)
|
||||
tf.clearButtonMode = .whileEditing
|
||||
tf.returnKeyType = .search
|
||||
return tf
|
||||
}()
|
||||
|
||||
lazy var searchBtn: UIButton = {
|
||||
let btn = UIButton(type: .custom)
|
||||
btn.setTitle("搜索", for: .normal)
|
||||
btn.setTitleColor(.white, for: .normal)
|
||||
btn.titleLabel?.font = .systemFont(ofSize: 14, weight: .medium)
|
||||
btn.setBackgroundImage(UIImage(named: "Common/button_bg_2"), for: .normal)
|
||||
btn.cornerRadius = 18
|
||||
return btn
|
||||
}()
|
||||
|
||||
lazy var resultTableView: UITableView = {
|
||||
let tv = UITableView(frame: .zero, style: .plain)
|
||||
tv.backgroundColor = .white
|
||||
tv.isHidden = true
|
||||
tv.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
|
||||
tv.estimatedRowHeight = 60
|
||||
tv.cornerRadius = 10
|
||||
return tv
|
||||
}()
|
||||
|
||||
lazy var bottomView: UIView = {
|
||||
let v = UIView()
|
||||
v.backgroundColor = .white
|
||||
v.isHidden = true
|
||||
v.layer.cornerRadius = 16
|
||||
v.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner]
|
||||
v.layer.shadowColor = UIColor.black.withAlphaComponent(0.1).cgColor
|
||||
v.layer.shadowOffset = CGSize(width: 0, height: -2)
|
||||
v.layer.shadowRadius = 10
|
||||
v.layer.shadowOpacity = 1
|
||||
return v
|
||||
}()
|
||||
|
||||
lazy var poiNameLab: UILabel = {
|
||||
let l = UILabel()
|
||||
l.font = .systemFont(ofSize: 16, weight: .semibold)
|
||||
l.textColor = UIColor(hexStr: "#333333")
|
||||
return l
|
||||
}()
|
||||
|
||||
lazy var poiAddressLab: UILabel = {
|
||||
let l = UILabel()
|
||||
l.font = .systemFont(ofSize: 13)
|
||||
l.textColor = UIColor(hexStr: "#999999")
|
||||
l.numberOfLines = 2
|
||||
return l
|
||||
}()
|
||||
|
||||
lazy var confirmBtn: UIButton = {
|
||||
let btn = UIButton(type: .custom)
|
||||
btn.setTitle("确定位置", for: .normal)
|
||||
btn.setTitleColor(.white, for: .normal)
|
||||
btn.titleLabel?.font = .systemFont(ofSize: 16, weight: .medium)
|
||||
btn.setBackgroundImage(UIImage(named: "Common/button_bg_2"), for: .normal)
|
||||
btn.cornerRadius = 22
|
||||
return btn
|
||||
}()
|
||||
|
||||
|
||||
#if !targetEnvironment(simulator)
|
||||
func cleanupMap() {
|
||||
mapView?.delegate = nil
|
||||
mapView?.removeFromSuperview()
|
||||
mapView = nil
|
||||
}
|
||||
#endif
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
backgroundColor = .white
|
||||
setupUI()
|
||||
}
|
||||
|
||||
required init?(coder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue