AMapLocationCommonObj.h 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. //
  2. // AMapLocationCommonObj.h
  3. // AMapLocationKit
  4. //
  5. // Created by AutoNavi on 15/10/22.
  6. // Copyright © 2015年 Amap. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <CoreLocation/CoreLocation.h>
  10. #import <UIKit/UIKit.h>
  11. ///AMapLocation errorDomain
  12. extern NSString * const AMapLocationErrorDomain;
  13. ///AMapLocation errorCode
  14. typedef NS_ENUM(NSInteger, AMapLocationErrorCode)
  15. {
  16. AMapLocationErrorUnknown = 1, ///<未知错误
  17. AMapLocationErrorLocateFailed = 2, ///<定位错误
  18. AMapLocationErrorReGeocodeFailed = 3, ///<逆地理错误
  19. AMapLocationErrorTimeOut = 4, ///<超时
  20. AMapLocationErrorCanceled = 5, ///<取消
  21. AMapLocationErrorCannotFindHost = 6, ///<找不到主机
  22. AMapLocationErrorBadURL = 7, ///<URL异常
  23. AMapLocationErrorNotConnectedToInternet = 8,///<连接异常
  24. AMapLocationErrorCannotConnectToHost = 9, ///<服务器连接失败
  25. AMapLocationErrorRegionMonitoringFailure=10,///<地理围栏错误
  26. AMapLocationErrorRiskOfFakeLocation = 11, ///<存在虚拟定位风险
  27. };
  28. ///AMapLocation Region State
  29. typedef NS_ENUM(NSInteger, AMapLocationRegionState)
  30. {
  31. AMapLocationRegionStateUnknow = 0, ///<未知
  32. AMapLocationRegionStateInside = 1, ///<在范围内
  33. AMapLocationRegionStateOutside = 2, ///<在范围外
  34. };
  35. ///AMapLocation Region Language
  36. typedef NS_ENUM(NSInteger, AMapLocationReGeocodeLanguage)
  37. {
  38. AMapLocationReGeocodeLanguageDefault = 0, ///<默认,根据地区选择语言
  39. AMapLocationReGeocodeLanguageChinse = 1, ///<中文
  40. AMapLocationReGeocodeLanguageEnglish = 2, ///<英文
  41. };
  42. ///逆地理信息
  43. @interface AMapLocationReGeocode : NSObject<NSCopying,NSCoding>
  44. ///格式化地址
  45. @property (nonatomic, copy) NSString *formattedAddress;
  46. ///国家
  47. @property (nonatomic, copy) NSString *country;
  48. ///省/直辖市
  49. @property (nonatomic, copy) NSString *province;
  50. ///市
  51. @property (nonatomic, copy) NSString *city;
  52. ///区
  53. @property (nonatomic, copy) NSString *district;
  54. ///乡镇
  55. @property (nonatomic, copy) NSString *township __attribute__((deprecated("该字段从v2.2.0版本起不再返回数据,建议您使用AMapSearchKit的逆地理功能获取.")));
  56. ///社区
  57. @property (nonatomic, copy) NSString *neighborhood __attribute__((deprecated("该字段从v2.2.0版本起不再返回数据,建议您使用AMapSearchKit的逆地理功能获取.")));
  58. ///建筑
  59. @property (nonatomic, copy) NSString *building __attribute__((deprecated("该字段从v2.2.0版本起不再返回数据,建议您使用AMapSearchKit的逆地理功能获取.")));
  60. ///城市编码
  61. @property (nonatomic, copy) NSString *citycode;
  62. ///区域编码
  63. @property (nonatomic, copy) NSString *adcode;
  64. ///街道名称
  65. @property (nonatomic, copy) NSString *street;
  66. ///门牌号
  67. @property (nonatomic, copy) NSString *number;
  68. ///兴趣点名称
  69. @property (nonatomic, copy) NSString *POIName;
  70. ///所属兴趣点名称
  71. @property (nonatomic, copy) NSString *AOIName;
  72. @end
  73. #pragma mark - AMapLocationPoint
  74. ///经纬度坐标点对象
  75. @interface AMapLocationPoint : NSObject<NSCopying,NSCoding>
  76. ///纬度
  77. @property (nonatomic, assign) CGFloat latitude;
  78. ///经度
  79. @property (nonatomic, assign) CGFloat longitude;
  80. /**
  81. * @brief AMapNaviPoint类对象的初始化函数
  82. * @param lat 纬度
  83. * @param lon 经度
  84. * @return AMapNaviPoint类对象id
  85. */
  86. + (AMapLocationPoint *)locationWithLatitude:(CGFloat)lat longitude:(CGFloat)lon;
  87. @end
  88. ///POI信息
  89. @interface AMapLocationPOIItem : NSObject <NSCopying, NSCoding>
  90. ///id
  91. @property (nonatomic, copy) NSString *pId;
  92. ///名称
  93. @property (nonatomic, copy) NSString *name;
  94. ///类型
  95. @property (nonatomic, copy) NSString *type;
  96. ///类型编码
  97. @property (nonatomic, copy) NSString *typeCode;
  98. ///地址信息
  99. @property (nonatomic, copy) NSString *address;
  100. ///经纬度
  101. @property (nonatomic, strong) AMapLocationPoint *location;
  102. ///电话号码
  103. @property (nonatomic, copy) NSString *tel;
  104. ///省份
  105. @property (nonatomic, copy) NSString *province;
  106. ///城市
  107. @property (nonatomic, copy) NSString *city;
  108. ///区
  109. @property (nonatomic, copy) NSString *district;
  110. @end
  111. ///行政区域信息
  112. @interface AMapLocationDistrictItem : NSObject <NSCopying, NSCoding>
  113. ///城市编码
  114. @property (nonatomic, copy) NSString *cityCode;
  115. ///区域编码
  116. @property (nonatomic, copy) NSString *districtCode;
  117. ///区名
  118. @property (nonatomic, copy) NSString *district;
  119. ///行政区域轮廓坐标点,每个行政区可能有多个模块,每个模块的坐标点数组由AMapLocationPoint构成
  120. @property (nonatomic, copy) NSArray <NSArray<AMapLocationPoint *> *> *polylinePoints;
  121. @end
  122. ///AMapLocation CoordinateType
  123. typedef NS_ENUM(NSUInteger, AMapLocationCoordinateType)
  124. {
  125. AMapLocationCoordinateTypeBaidu = 0, ///<Baidu
  126. AMapLocationCoordinateTypeMapBar, ///<MapBar
  127. AMapLocationCoordinateTypeMapABC, ///<MapABC
  128. AMapLocationCoordinateTypeSoSoMap, ///<SoSoMap
  129. AMapLocationCoordinateTypeAliYun, ///<AliYun
  130. AMapLocationCoordinateTypeGoogle, ///<Google
  131. AMapLocationCoordinateTypeGPS, ///<GPS
  132. };
  133. /**
  134. * @brief 转换目标经纬度为高德坐标系
  135. * @param coordinate 待转换的经纬度
  136. * @param type 坐标系类型
  137. * @return 高德坐标系经纬度
  138. */
  139. FOUNDATION_EXTERN CLLocationCoordinate2D AMapLocationCoordinateConvert(CLLocationCoordinate2D coordinate, AMapLocationCoordinateType type);
  140. /**
  141. * @brief 判断目标经纬度是否在大陆以及港、澳地区。输入参数为高德坐标系。
  142. * @param coordinate 待判断的目标经纬度
  143. * @return 是否在大陆以及港、澳地区
  144. */
  145. FOUNDATION_EXTERN BOOL AMapLocationDataAvailableForCoordinate(CLLocationCoordinate2D coordinate);