You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
203 lines
6.4 KiB
203 lines
6.4 KiB
// |
|
// AMapLocationCommonObj.h |
|
// AMapLocationKit |
|
// |
|
// Created by AutoNavi on 15/10/22. |
|
// Copyright © 2015年 Amap. All rights reserved. |
|
// |
|
|
|
#import <Foundation/Foundation.h> |
|
#import <CoreLocation/CoreLocation.h> |
|
#import <UIKit/UIKit.h> |
|
|
|
|
|
///AMapLocation errorDomain |
|
extern NSString * const AMapLocationErrorDomain; |
|
|
|
///AMapLocation errorCode |
|
typedef NS_ENUM(NSInteger, AMapLocationErrorCode) |
|
{ |
|
AMapLocationErrorUnknown = 1, ///<未知错误 |
|
AMapLocationErrorLocateFailed = 2, ///<定位错误 |
|
AMapLocationErrorReGeocodeFailed = 3, ///<逆地理错误 |
|
AMapLocationErrorTimeOut = 4, ///<超时 |
|
AMapLocationErrorCanceled = 5, ///<取消 |
|
AMapLocationErrorCannotFindHost = 6, ///<找不到主机 |
|
AMapLocationErrorBadURL = 7, ///<URL异常 |
|
AMapLocationErrorNotConnectedToInternet = 8,///<连接异常 |
|
AMapLocationErrorCannotConnectToHost = 9, ///<服务器连接失败 |
|
AMapLocationErrorRegionMonitoringFailure=10,///<地理围栏错误 |
|
AMapLocationErrorRiskOfFakeLocation = 11, ///<存在虚拟定位风险 |
|
AMapLocationErrorNoFullAccuracyAuth = 12, ///<精确定位权限异常 |
|
}; |
|
|
|
///AMapLocation Region State |
|
typedef NS_ENUM(NSInteger, AMapLocationRegionState) |
|
{ |
|
AMapLocationRegionStateUnknow = 0, ///<未知 |
|
AMapLocationRegionStateInside = 1, ///<在范围内 |
|
AMapLocationRegionStateOutside = 2, ///<在范围外 |
|
}; |
|
|
|
///AMapLocation Region Language |
|
typedef NS_ENUM(NSInteger, AMapLocationReGeocodeLanguage) |
|
{ |
|
AMapLocationReGeocodeLanguageDefault = 0, ///<默认,根据地区选择语言 |
|
AMapLocationReGeocodeLanguageChinse = 1, ///<中文 |
|
AMapLocationReGeocodeLanguageEnglish = 2, ///<英文 |
|
}; |
|
|
|
///AMapLocation Accuracy Mode |
|
typedef NS_ENUM(NSInteger, AMapLocationAccuracyMode) { |
|
AMapLocationFullAndReduceAccuracy = 0, ///<默认模式,该模式下会申请临时精确定位权限,如果用户拒绝,则依然开启定位,回调模糊定位数据; |
|
AMapLocationFullAccuracy, ///<高精度模式,该模式下会申请临时精确定位权限,如果用户拒绝,则回调error; |
|
AMapLocationReduceAccuracy ///<低精度模式,该模式下不会申请临时精确定位权限,根据当前定位权限回调定位数据; |
|
}; |
|
|
|
///逆地理信息 |
|
@interface AMapLocationReGeocode : NSObject<NSCopying,NSCoding> |
|
|
|
///格式化地址 |
|
@property (nonatomic, copy) NSString *formattedAddress; |
|
|
|
///国家 |
|
@property (nonatomic, copy) NSString *country; |
|
|
|
///省/直辖市 |
|
@property (nonatomic, copy) NSString *province; |
|
|
|
///市 |
|
@property (nonatomic, copy) NSString *city; |
|
|
|
///区 |
|
@property (nonatomic, copy) NSString *district; |
|
|
|
///乡镇 |
|
@property (nonatomic, copy) NSString *township __attribute__((deprecated("该字段从v2.2.0版本起不再返回数据,建议您使用AMapSearchKit的逆地理功能获取."))); |
|
|
|
///社区 |
|
@property (nonatomic, copy) NSString *neighborhood __attribute__((deprecated("该字段从v2.2.0版本起不再返回数据,建议您使用AMapSearchKit的逆地理功能获取."))); |
|
|
|
///建筑 |
|
@property (nonatomic, copy) NSString *building __attribute__((deprecated("该字段从v2.2.0版本起不再返回数据,建议您使用AMapSearchKit的逆地理功能获取."))); |
|
|
|
///城市编码 |
|
@property (nonatomic, copy) NSString *citycode; |
|
|
|
///区域编码 |
|
@property (nonatomic, copy) NSString *adcode; |
|
|
|
///街道名称 |
|
@property (nonatomic, copy) NSString *street; |
|
|
|
///门牌号 |
|
@property (nonatomic, copy) NSString *number; |
|
|
|
///兴趣点名称 |
|
@property (nonatomic, copy) NSString *POIName; |
|
|
|
///所属兴趣点名称 |
|
@property (nonatomic, copy) NSString *AOIName; |
|
|
|
@end |
|
|
|
#pragma mark - AMapLocationPoint |
|
|
|
///经纬度坐标点对象 |
|
@interface AMapLocationPoint : NSObject<NSCopying,NSCoding> |
|
|
|
///纬度 |
|
@property (nonatomic, assign) CGFloat latitude; |
|
|
|
///经度 |
|
@property (nonatomic, assign) CGFloat longitude; |
|
|
|
/** |
|
* @brief AMapNaviPoint类对象的初始化函数 |
|
* @param lat 纬度 |
|
* @param lon 经度 |
|
* @return AMapNaviPoint类对象id |
|
*/ |
|
+ (AMapLocationPoint *)locationWithLatitude:(CGFloat)lat longitude:(CGFloat)lon; |
|
|
|
@end |
|
|
|
///POI信息 |
|
@interface AMapLocationPOIItem : NSObject <NSCopying, NSCoding> |
|
|
|
///id |
|
@property (nonatomic, copy) NSString *pId; |
|
|
|
///名称 |
|
@property (nonatomic, copy) NSString *name; |
|
|
|
///类型 |
|
@property (nonatomic, copy) NSString *type; |
|
|
|
///类型编码 |
|
@property (nonatomic, copy) NSString *typeCode; |
|
|
|
///地址信息 |
|
@property (nonatomic, copy) NSString *address; |
|
|
|
///经纬度 |
|
@property (nonatomic, strong) AMapLocationPoint *location; |
|
|
|
///电话号码 |
|
@property (nonatomic, copy) NSString *tel; |
|
|
|
///省份 |
|
@property (nonatomic, copy) NSString *province; |
|
|
|
///城市 |
|
@property (nonatomic, copy) NSString *city; |
|
|
|
///区 |
|
@property (nonatomic, copy) NSString *district; |
|
|
|
@end |
|
|
|
///行政区域信息 |
|
@interface AMapLocationDistrictItem : NSObject <NSCopying, NSCoding> |
|
|
|
///城市编码 |
|
@property (nonatomic, copy) NSString *cityCode; |
|
|
|
///区域编码 |
|
@property (nonatomic, copy) NSString *districtCode; |
|
|
|
///区名 |
|
@property (nonatomic, copy) NSString *district; |
|
|
|
///行政区域轮廓坐标点,每个行政区可能有多个模块,每个模块的坐标点数组由AMapLocationPoint构成 |
|
@property (nonatomic, copy) NSArray <NSArray<AMapLocationPoint *> *> *polylinePoints; |
|
|
|
@end |
|
|
|
///AMapLocation CoordinateType |
|
typedef NS_ENUM(NSUInteger, AMapLocationCoordinateType) |
|
{ |
|
AMapLocationCoordinateTypeBaidu = 0, ///<Baidu |
|
AMapLocationCoordinateTypeMapBar, ///<MapBar |
|
AMapLocationCoordinateTypeMapABC, ///<MapABC |
|
AMapLocationCoordinateTypeSoSoMap, ///<SoSoMap |
|
AMapLocationCoordinateTypeAliYun, ///<AliYun |
|
AMapLocationCoordinateTypeGoogle, ///<Google |
|
AMapLocationCoordinateTypeGPS, ///<GPS |
|
}; |
|
|
|
/** |
|
* @brief 转换目标经纬度为高德坐标系 |
|
* @param coordinate 待转换的经纬度 |
|
* @param type 坐标系类型 |
|
* @return 高德坐标系经纬度 |
|
*/ |
|
FOUNDATION_EXTERN CLLocationCoordinate2D AMapLocationCoordinateConvert(CLLocationCoordinate2D coordinate, AMapLocationCoordinateType type); |
|
|
|
/** |
|
* @brief 判断目标经纬度是否在大陆以及港、澳地区。输入参数为高德坐标系。 |
|
* @param coordinate 待判断的目标经纬度 |
|
* @return 是否在大陆以及港、澳地区 |
|
*/ |
|
FOUNDATION_EXTERN BOOL AMapLocationDataAvailableForCoordinate(CLLocationCoordinate2D coordinate); |
|
|
|
|