iOS高德轻量版地图SDK  1.2.0
MAMap.h
Go to the documentation of this file.
1 //
2 // MAMap.h
3 // MAMapKit
4 //
5 // Created by 翁乐 on 3/17/16.
6 // Copyright © 2020 Amap. All rights reserved.
7 //
8 
9 #import <Foundation/Foundation.h>
10 #import <UIKit/UIKit.h>
11 #import "MAOverlay.h"
12 #import "MAOverlayRenderer.h"
13 #import "MAAnnotation.h"
14 #import "MAAnnotationView.h"
15 #import "MACircle.h"
16 #import <AMapFoundationKit/AMapUtility.h>
17 #import "MAUserLocation.h"
18 #import "MAMapStatus.h"
21 #import "MAPolylineRenderer.h"
22 #import "MAMapWebViewProcotol.h"
23 #import <WebKit/WebKit.h>
24 #import "MACustomSchemeModel.h"
25 
27 typedef NS_ENUM(NSInteger, MAMapType)
28 {
29  MAMapTypeStandard = 1,
30  MAMapTypeSatellite,
31  MAMapTypeStandardNight
32 };
33 
35 typedef NS_ENUM(NSInteger, MAUserTrackingMode)
36 {
37  MAUserTrackingModeNone = 0,
38  MAUserTrackingModeFollow = 1,
39  MAUserTrackingModeFollowWithHeading = 2
40 };
41 
42 #pragma mark - 动画相关的key
43 
44 NS_ASSUME_NONNULL_BEGIN
45 
46 @protocol MAMapDelegate;
47 
48 @interface MAMap : NSObject
49 
51 @property (nonatomic, weak) id<MAMapDelegate> delegate;
52 
54 @property (nonatomic) MAMapType mapType;
55 
57 @property (nonatomic) CLLocationCoordinate2D centerCoordinate;
58 
60 @property (nonatomic) MAMapRect visibleMapRect;
61 
63 @property (nonatomic, assign) MACoordinateRegion limitRegion;
65 @property (nonatomic, assign) MAMapRect limitMapRect;
66 
68 @property (nonatomic) CGFloat zoomLevel;
70 @property (nonatomic) CGFloat minZoomLevel;
72 @property (nonatomic) CGFloat maxZoomLevel;
74 @property (nonatomic, getter = isZoomEnabled) BOOL zoomEnabled;
75 
77 @property (nonatomic) CGFloat rotationDegree;
79 @property (nonatomic, getter = isRotateEnabled) BOOL rotateEnabled;
80 
82 @property (nonatomic) CGFloat cameraDegree;
84 @property (nonatomic, getter = isRotateCameraEnabled) BOOL rotateCameraEnabled;
85 
87 @property (nonatomic, getter = isScrollEnabled) BOOL scrollEnabled;
88 
90 @property (nonatomic, getter = isShowsBuildings) BOOL showsBuildings;
91 
93 @property (nonatomic, assign, getter = isShowsLabels) BOOL showsLabels;
94 
96 @property (nonatomic, getter = isShowTraffic) BOOL showTraffic;
97 
99 @property (nonatomic, readonly) BOOL isAbroad;
100 
102 @property (nonatomic, class, getter=isShowsWorldMap) BOOL showsWorldMap;
103 
109 
114 - (instancetype)initWithWebView:(nonnull NSObject<MAMapWebViewProcotol>*)webView;
115 
119 - (void)createMap;
120 
126 - (void)setVisibleMapRect:(MAMapRect)mapRect animated:(BOOL)animated;
127 
134 - (void)setVisibleMapRect:(MAMapRect)mapRect edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
135 
141 - (void)setCenterCoordinate:(CLLocationCoordinate2D)coordinate animated:(BOOL)animated;
142 
148 - (void)setZoomLevel:(CGFloat)zoomLevel animated:(BOOL)animated;
149 
155 - (void)setRotationDegree:(CGFloat)rotationDegree animated:(BOOL)animated;
156 
162 - (void)setCameraDegree:(CGFloat)cameraDegree animated:(BOOL)animated;
163 
169 
175 - (void)setMapStatus:(MAMapStatus *)status animated:(BOOL)animated;
176 
182 - (void)convertCoordinate:(CLLocationCoordinate2D)coordinate completeCallback:(void(^)(CGPoint point))completeCallback;
183 
189 - (void)convertPoint:(CGPoint)point completeCallback:(void(^)(CLLocationCoordinate2D coordinate))completeCallback;
190 
195 - (NSString *)mapContentApprovalNumber;
196 
201 - (NSString *)satelliteImageApprovalNumber;
202 
207 - (void)longPressGesture:(UILongPressGestureRecognizer *)gestureRecognizer;
208 
209 @end
210 
212 
213 + (void)startRequestWithURLProtocol:(NSURLProtocol*)urlProtocol;
214 + (void)stopRequestWithURLProtocol:(NSURLProtocol*)urlProtocol;
215 
216 @end
217 
219 
221 @property (nonatomic, readonly) NSArray *annotations;
222 
224 @property (nonatomic, copy) NSArray *selectedAnnotations;
225 
230 - (void)addAnnotation:(id <MAAnnotation>)annotation;
231 
236 - (void)addAnnotations:(NSArray *)annotations;
237 
242 - (void)removeAnnotation:(id <MAAnnotation>)annotation;
243 
248 - (void)removeAnnotations:(NSArray *)annotations;
249 
255 - (MAAnnotationView *)viewForAnnotation:(id <MAAnnotation>)annotation;
256 
262 - (void)selectAnnotation:(id <MAAnnotation>)annotation animated:(BOOL)animated;
263 
269 - (void)deselectAnnotation:(id <MAAnnotation>)annotation animated:(BOOL)animated;
270 
276 - (void)showAnnotations:(NSArray *)annotations animated:(BOOL)animated;
277 
284 - (void)showAnnotations:(NSArray *)annotations edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
285 
286 @end
287 
288 
290 
292 @property (nonatomic) BOOL showsUserLocation;
293 
295 @property (nonatomic, readonly) MAUserLocation *userLocation;
296 
299 
301 @property (nonatomic, readonly) MACircle *userLocationAccuracyCircle;
302 
304 @property (nonatomic) MAUserTrackingMode userTrackingMode;
305 
310 - (void)setUserLocation:(CLLocation*)location coordinateType:(AMapCoordinateType)type;
311 
316 - (void)setUserHeading:(CLHeading*)heading;
317 
323 - (void)setUserTrackingMode:(MAUserTrackingMode)mode animated:(BOOL)animated;
324 
329 - (void)updateUserLocationRepresentation:(MAUserLocationRepresentation *)representation;
330 
331 @end
332 
333 @interface MAMap (Overlay)
334 
336 @property (nonatomic, readonly) NSArray *overlays;
337 
344 - (void)addOverlay:(id <MAOverlay>)overlay;
345 
351 - (void)addOverlays:(NSArray *)overlays;
352 
357 - (void)removeOverlay:(id <MAOverlay>)overlay;
358 
363 - (void)removeOverlays:(NSArray *)overlays;
364 
370 - (MAOverlayRenderer *)rendererForOverlay:(id <MAOverlay>)overlay;
371 
377 - (void)showOverlays:(NSArray *)overlays animated:(BOOL)animated;
378 
385 - (void)showOverlays:(NSArray *)overlays edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
386 
387 @end
388 
389 #pragma mark - MAMapDelegate
390 @protocol MAMapDelegate <NSObject>
391 
392 @optional
393 
398 - (void)mapReady:(MAMap *)map;
399 
404 - (void)mapRegionChanged:(MAMap *)map;
405 
410 - (void)mapRegionDidChanged:(MAMap *)map;
411 
420 - (MAAnnotationView *)map:(MAMap *)map viewForAnnotation:(id <MAAnnotation>)annotation;
421 
427 - (void)map:(MAMap *)map didAnnotationViewTapped:(MAAnnotationView *)annotationView;
428 
434 - (void)map:(MAMap *)map didSelectAnnotationView:(MAAnnotationView *)view;
435 
441 - (void)map:(MAMap *)map didDeselectAnnotationView:(MAAnnotationView *)view;
442 
450 - (void)map:(MAMap *)map annotationView:(MAAnnotationView *)view didChangeDragState:(MAAnnotationViewDragState)newState
451  fromOldState:(MAAnnotationViewDragState)oldState;
452 
459 - (MAOverlayRenderer *)map:(MAMap *)map rendererForOverlay:(id <MAOverlay>)overlay;
460 
466 - (void)map:(MAMap *)map didAddOverlayRenderers:(NSArray *)overlayRenderers;
467 
473 - (void)map:(MAMap *)map didPolylineRendererTapped:(MAPolylineRenderer *)polylineRenderer;
474 
480 - (void)map:(MAMap *)map didAnnotationViewCalloutTapped:(MAAnnotationView *)view;
481 
488 - (void)map:(MAMap *)map didChangeUserTrackingMode:(MAUserTrackingMode)mode animated:(BOOL)animated;
489 
495 - (void)map:(MAMap *)map didSingleTappedAtCoordinate:(CLLocationCoordinate2D)coordinate;
496 
502 - (void)map:(MAMap *)map didLongPressedAtCoordinate:(CLLocationCoordinate2D)coordinate;
503 
504 @end
505 
506 NS_ASSUME_NONNULL_END
MAMap::showsWorldMap
BOOL showsWorldMap
是否显示海外地图,默认为@NO. 注意:必须先在官网申请开通海外权限
Definition: MAMap.h:102
MAMap::zoomLevel
CGFloat zoomLevel
缩放级别(默认3-20)
Definition: MAMap.h:68
-[MAMap createMap]
void createMap()
加载地图
MACustomSchemeModel.h
-[MAMap getMapStatus]
MAMapStatus * getMapStatus()
获取地图状态
MAMap::showTraffic
BOOL showTraffic
是否显示交通路况图层, 默认为NO
Definition: MAMap.h:96
MACustomSchemeModel
Definition: MACustomSchemeModel.h:14
MAMap::showsBuildings
BOOL showsBuildings
是否显示楼块,默认为YES
Definition: MAMap.h:90
MAMap::visibleMapRect
MAMapRect visibleMapRect
可见区域, 设定的该范围可能会被调整为适合地图窗口显示的范围
Definition: MAMap.h:60
MAMap::isAbroad
BOOL isAbroad
标识当前地图中心位置是否在中国范围外。此属性不是精确判断,不能用于边界区域
Definition: MAMap.h:99
MAMap(Overlay)
Definition: MAMap.h:333
MAMapDelegate-p
Definition: MAMap.h:390
MACircle
该类用于定义一个圆, 通常MACircle是MACircleView的model
Definition: MACircle.h:13
MAOverlayRenderer
该类是地图覆盖物Renderer的基类
Definition: MAOverlayRenderer.h:20
MAMapWebViewProcotol-p
Definition: MAMapWebViewProcotol.h:13
MAMap::mapType
MAMapType mapType
Definition: MAMap.h:54
MAMap::cameraDegree
CGFloat cameraDegree
设置地图相机角度(范围为[0.f, 60.f],但高于40度的角度需要在16级以上才能生效)
Definition: MAMap.h:82
MAMap(UserLocation)::userLocation
MAUserLocation * userLocation
当前的位置数据
Definition: MAMap.h:295
MAMap(UserLocation)::customizeUserLocationAccuracyCircleRepresentation
BOOL customizeUserLocationAccuracyCircleRepresentation
是否自定义用户位置精度圈(userLocationAccuracyCircle)对应的 view, 默认为 NO. 如果为YES: 会调用 - (MAOverlayRenderer *)map (MA...
Definition: MAMap.h:298
MAUserLocationRepresentation
用户位置显示样式控制
Definition: MAUserLocationRepresentation.h:16
MAAnnotation.h
MAMap::zoomEnabled
BOOL zoomEnabled
是否支持缩放, 默认YES
Definition: MAMap.h:74
MAMapRect
平面投影矩形结构定义
Definition: MAGeometry.h:49
MAMapStatus.h
MACircle.h
-[MAMap satelliteImageApprovalNumber]
NSString * satelliteImageApprovalNumber()
获取卫星图片审图号。
MAUserLocation
定位信息类
Definition: MAUserLocation.h:18
MAMap(UserLocation)
Definition: MAMap.h:289
NS_ENUM
typedef NS_ENUM(NSInteger, MAMapType)
地图类型
Definition: MAMap.h:27
MAMap::rotateEnabled
BOOL rotateEnabled
是否支持旋转, 默认YES
Definition: MAMap.h:79
-[MAMap mapContentApprovalNumber]
NSString * mapContentApprovalNumber()
获取地图审图号。如果启用了“自定义样式”功能(customMapStyleEnabled 为 YES),则返回nil。
MAAnnotationView
标注view
Definition: MAAnnotationView.h:25
MAAnnotation-p
该类为标注点的protocol,提供了标注类的基本信息函数
Definition: MAAnnotation.h:15
MAMap(UserLocation)::userLocationAccuracyCircle
MACircle * userLocationAccuracyCircle
用户位置精度圈 对应的overlay
Definition: MAMap.h:301
MAMap(Overlay)::overlays
NSArray * overlays
所有添加的Overlay
Definition: MAMap.h:336
MAMap::maxZoomLevel
CGFloat maxZoomLevel
最大缩放级别
Definition: MAMap.h:72
MAMap::minZoomLevel
CGFloat minZoomLevel
最小缩放级别
Definition: MAMap.h:70
MAMapCustomStyleOptions.h
MAMap(UserLocation)::userTrackingMode
MAUserTrackingMode userTrackingMode
定位用户位置的模式, 注意:在follow模式下,设置地图中心点、设置可见区域、滑动手势、选择annotation操作会取消follow模式,并触发 - (void)map:(MAMap *)map d...
Definition: MAMap.h:304
MAMap::showsLabels
BOOL showsLabels
是否显示底图标注, 默认为YES
Definition: MAMap.h:93
MAMapStatus
地图状态对象
Definition: MAMapStatus.h:14
MAMap::delegate
id< MAMapDelegate > delegate
地图的delegate
Definition: MAMap.h:51
MAOverlay-p
该类是地图覆盖物的基类,所有地图的覆盖物需要继承自此类
Definition: MAOverlay.h:13
MAUserLocation.h
MAMap
Definition: MAMap.h:49
MAMap(NetworkIntercept)
Definition: MAMap.h:211
MAMap::scrollEnabled
BOOL scrollEnabled
是否支持平移, 默认YES
Definition: MAMap.h:87
MAMap(Annotation)::selectedAnnotations
NSArray * selectedAnnotations
处于选中状态的标注数据数据(其count == 0 或 1)
Definition: MAMap.h:224
MAMap(Annotation)::annotations
NSArray * annotations
所有添加的标注, 注意从5.3.0开始返回数组内不再包含定位蓝点userLocation
Definition: MAMap.h:221
MAMap::rotateCameraEnabled
BOOL rotateCameraEnabled
是否支持camera旋转, 默认YES
Definition: MAMap.h:84
MAMapWebViewProcotol.h
MAOverlay.h
MAMap::limitMapRect
MAMapRect limitMapRect
设置可见地图区域的矩形边界,如限制地图只显示北京市范围
Definition: MAMap.h:65
MAUserLocationRepresentation.h
MACoordinateRegion
中心点、跨度范围定义的四边形经纬度范围
Definition: MAGeometry.h:31
MAMap(Annotation)
Definition: MAMap.h:218
MAAnnotationView.h
MAMap::limitRegion
MACoordinateRegion limitRegion
设置可见地图区域的矩形边界,如限制地图只显示北京市范围
Definition: MAMap.h:63
+[MAMap customSchemeArray]
NSArray< MACustomSchemeModel * > * customSchemeArray()
获取需要注册的自定义
MAOverlayRenderer.h
MAPolylineRenderer
此类用于绘制MAPolyline,可以通过MAOverlayPathRenderer修改其fill和stroke attributes
Definition: MAPolylineRenderer.h:15
MAMap::centerCoordinate
CLLocationCoordinate2D centerCoordinate
当前地图的中心点,改变该值时,地图的比例尺级别不会发生变化
Definition: MAMap.h:57
MAPolylineRenderer.h
MAMap::rotationDegree
CGFloat rotationDegree
设置地图旋转角度(逆时针为正向)
Definition: MAMap.h:77
MAMap(UserLocation)::showsUserLocation
BOOL showsUserLocation
是否显示用户位置,默认为NO
Definition: MAMap.h:292
© 2020 高德信息技术有限公司版权所有,保留所有权利。