iOS高德地图SDK(2D)  v5.6.0
MAMapView.h
Go to the documentation of this file.
1 //
2 // MAMapView.h
3 // MAMapKit
4 //
5 // Created by AutoNavi.
6 // Copyright (c) 2013年 Amap. All rights reserved.
7 //
8 
9 #import <UIKit/UIKit.h>
10 #import "MAGeometry.h"
11 #import "MAOverlay.h"
12 #import "MAOverlayRenderer.h"
13 #import "MAAnnotationView.h"
14 #import "MAOverlayView.h"
15 
16 typedef NS_ENUM(NSInteger, MAMapLanguage)
17 {
20 };
21 
22 typedef NS_ENUM(NSInteger, MAMapType)
23 {
26 };
27 
28 typedef NS_ENUM(NSInteger, MAUserTrackingMode)
29 {
33 };
34 
35 @protocol MAMapViewDelegate;
36 
37 @class MAUserLocation;
38 @class MAAnnotationView;
40 
41 @interface MAMapView : UIView
42 
43 #pragma mark - Properties
44 
46 @property (nonatomic, weak) id<MAMapViewDelegate> delegate;
47 
49 @property (nonatomic, assign) MAMapType mapType;
50 
52 @property (nonatomic, assign) MAMapLanguage language;
53 
55 @property (nonatomic, assign, getter = isShowTraffic) BOOL showTraffic;
56 
58 @property (nonatomic, assign, getter = isScrollEnabled) BOOL scrollEnabled;
59 
61 @property (nonatomic, assign, getter = isZoomEnabled) BOOL zoomEnabled;
62 
64 @property (nonatomic, readonly) BOOL isAbroad;
65 
67 @property (nonatomic, assign) BOOL allowsAnnotationViewSorting;
68 
69 #pragma mark - Logo
70 
72 @property (nonatomic) CGPoint logoCenter;
73 
75 @property (nonatomic, readonly) CGSize logoSize;
76 
77 #pragma mark - Compass
78 
80 @property (nonatomic, assign) BOOL showsCompass;
81 
83 @property (nonatomic) CGPoint compassOrigin;
84 
86 @property (nonatomic, readonly) CGSize compassSize;
87 
88 
89 #pragma mark - Scale
90 
92 @property (nonatomic) BOOL showsScale;
93 
95 @property (nonatomic) CGPoint scaleOrigin;
96 
98 @property (nonatomic, readonly) CGSize scaleSize;
99 
101 @property (nonatomic, readonly) CGFloat metersPerPointForCurrentZoomLevel;
102 
103 
104 #pragma mark - Movement
105 
107 @property (nonatomic, assign) CLLocationCoordinate2D centerCoordinate;
108 
110 @property (nonatomic, assign) MACoordinateRegion region;
111 
113 @property (nonatomic, assign) MAMapRect visibleMapRect;
114 
115 #pragma mark - Limitation
116 
118 @property (nonatomic, assign) MACoordinateRegion limitRegion;
119 
121 @property (nonatomic, assign) MAMapRect limitMapRect;
122 
123 #pragma mark - Zoom
124 
126 @property (nonatomic, assign) double zoomLevel;
127 
129 @property (nonatomic, assign) double minZoomLevel;
130 
132 @property (nonatomic, assign) double maxZoomLevel;
133 
134 #pragma mark - UserLocation
135 
137 @property (nonatomic, assign, getter = isShowsUserLocation) BOOL showsUserLocation;
138 
140 @property (nonatomic, readonly) MAUserLocation *userLocation;
141 
143 @property (nonatomic) MAUserTrackingMode userTrackingMode;
144 
146 @property (nonatomic, readonly, getter=isUserLocationVisible) BOOL userLocationVisible;
147 
148 #pragma mark - Annotations
149 
151 @property (nonatomic, readonly) NSArray *annotations;
152 
154 @property (nonatomic, copy) NSArray *selectedAnnotations;
155 
157 @property (nonatomic, readonly) CGRect annotationVisibleRect;
158 
159 #pragma mark - Overlays
160 
162 @property (nonatomic, readonly) NSArray *overlays;
163 
164 #pragma mark - Compass func
165 
170 - (void)setCompassImage:(UIImage *)image;
171 
172 #pragma mark - Scale func
173 
179 - (CGFloat)metersPerPointForZoomLevel:(CGFloat)zoomLevel;
180 
181 #pragma mark - Movement func
182 
188 - (void)setCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate animated:(BOOL)animated;
189 
195 - (void)setRegion:(MACoordinateRegion)region animated:(BOOL)animated;
196 
197 
203 - (MACoordinateRegion)regionThatFits:(MACoordinateRegion)region;
204 
210 - (void)setVisibleMapRect:(MAMapRect)mapRect animated:(BOOL)animated;
211 
218 - (void)setVisibleMapRect:(MAMapRect)mapRect edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
219 
225 - (MAMapRect)mapRectThatFits:(MAMapRect)mapRect;
226 
233 - (MAMapRect)mapRectThatFits:(MAMapRect)mapRect edgePadding:(UIEdgeInsets)insets;
234 
235 #pragma mark - Zoom func
236 
242 - (void)setZoomLevel:(double)newZoomLevel animated:(BOOL)animated;
243 
250 - (void)setZoomLevel:(double)newZoomLevel atPivot:(CGPoint)pivot animated:(BOOL)animated;
251 
252 #pragma mark - Conversions func
253 
260 - (CGPoint)convertCoordinate:(CLLocationCoordinate2D)coordinate toPointToView:(UIView *)view;
261 
268 - (CLLocationCoordinate2D)convertPoint:(CGPoint)point toCoordinateFromView:(UIView *)view;
269 
276 - (CGRect)convertRegion:(MACoordinateRegion)region toRectToView:(UIView *)view;
277 
284 - (MACoordinateRegion)convertRect:(CGRect)rect toRegionFromView:(UIView *)view;
285 
286 
287 #pragma mark - UserLocation func
288 
294 - (void)setUserTrackingMode:(MAUserTrackingMode)mode animated:(BOOL)animated;
295 
300 - (void)updateUserLocationRepresentation:(MAUserLocationRepresentation *)representation;
301 
302 #pragma mark - Annotations func
303 
308 - (void)addAnnotation:(id <MAAnnotation>)annotation;
309 
314 - (void)addAnnotations:(NSArray *)annotations;
315 
320 - (void)removeAnnotation:(id <MAAnnotation>)annotation;
321 
326 - (void)removeAnnotations:(NSArray *)annotations;
327 
333 - (MAAnnotationView *)viewForAnnotation:(id <MAAnnotation>)annotation;
334 
340 - (MAAnnotationView *)dequeueReusableAnnotationViewWithIdentifier:(NSString *)identifier;
341 
347 - (void)selectAnnotation:(id <MAAnnotation>)annotation animated:(BOOL)animated;
348 
354 - (void)deselectAnnotation:(id <MAAnnotation>)annotation animated:(BOOL)animated;
355 
361 - (NSSet *)annotationsInMapRect:(MAMapRect)mapRect;
362 
368 - (void)showAnnotations:(NSArray *)annotations animated:(BOOL)animated;
369 
376 - (void)showAnnotations:(NSArray *)annotations edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
377 
378 #pragma mark - Overlays func
379 
385 - (MAOverlayRenderer *)rendererForOverlay:(id <MAOverlay>)overlay;
386 - (MAOverlayView *)viewForOverlay:(id <MAOverlay>)overlay __attribute__ ((deprecated("use - (MAOverlayRenderer *)rendererForOverlay:(id <MAOverlay>)overlay instead")));
387 
392 - (void)addOverlay:(id <MAOverlay>)overlay;
393 
398 - (void)addOverlays:(NSArray *)overlays;
399 
404 - (void)removeOverlay:(id <MAOverlay>)overlay;
405 
410 - (void)removeOverlays:(NSArray *)overlays;
411 
417 - (void)insertOverlay:(id <MAOverlay>)overlay atIndex:(NSUInteger)index;
418 
424 - (void)exchangeOverlayAtIndex:(NSUInteger)index1 withOverlayAtIndex:(NSUInteger)index2;
425 
431 - (void)insertOverlay:(id <MAOverlay>)overlay aboveOverlay:(id <MAOverlay>)sibling;
432 
438 - (void)insertOverlay:(id <MAOverlay>)overlay belowOverlay:(id <MAOverlay>)sibling;
439 
445 - (void)showOverlays:(NSArray *)overlays animated:(BOOL)animated;
446 
453 - (void)showOverlays:(NSArray *)overlays edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
454 
455 #pragma mark - Cache
456 
460 - (void)clearDisk;
461 
462 @end
463 
464 
465 #pragma mark - Snapshots
466 
469 
475 - (UIImage *)takeSnapshotInRect:(CGRect)rect;
476 
482 - (void)takeSnapshotInRect:(CGRect)rect withCompletionBlock:(void (^)(UIImage *resultImage, CGRect rect))block;
483 
484 @end
485 
486 #pragma mark - LocationOption
487 
490 
492 @property (nonatomic) CLLocationDistance distanceFilter;
493 
495 @property (nonatomic) CLLocationAccuracy desiredAccuracy;
496 
498 @property (nonatomic) CLLocationDegrees headingFilter;
499 
501 @property (nonatomic) BOOL pausesLocationUpdatesAutomatically;
502 
504 @property (nonatomic) BOOL allowsBackgroundLocationUpdates;
505 
506 @end
507 
508 #pragma mark - MAMapViewDelegate
509 
511 @protocol MAMapViewDelegate <NSObject>
512 @optional
513 
519 - (void)mapView:(MAMapView *)mapView regionWillChangeAnimated:(BOOL)animated;
520 
526 - (void)mapView:(MAMapView *)mapView regionDidChangeAnimated:(BOOL)animated;
527 
533 - (void)mapView:(MAMapView *)mapView mapWillMoveByUser:(BOOL)wasUserAction;
534 
540 - (void)mapView:(MAMapView *)mapView mapDidMoveByUser:(BOOL)wasUserAction;
541 
547 - (void)mapView:(MAMapView *)mapView mapWillZoomByUser:(BOOL)wasUserAction;
548 
554 - (void)mapView:(MAMapView *)mapView mapDidZoomByUser:(BOOL)wasUserAction;
555 
561 - (void)mapView:(MAMapView *)mapView didSingleTappedAtCoordinate:(CLLocationCoordinate2D)coordinate;
562 
568 - (void)mapView:(MAMapView *)mapView didLongPressedAtCoordinate:(CLLocationCoordinate2D)coordinate;
569 
576 - (MAAnnotationView*)mapView:(MAMapView *)mapView viewForAnnotation:(id <MAAnnotation>)annotation;
577 
583 - (void)mapView:(MAMapView *)mapView didAddAnnotationViews:(NSArray *)views;
584 
590 - (void)mapView:(MAMapView *)mapView didSelectAnnotationView:(MAAnnotationView *)view;
591 
597 - (void)mapView:(MAMapView *)mapView didDeselectAnnotationView:(MAAnnotationView *)view;
598 
605 - (void)mapView:(MAMapView *)mapView annotationView:(MAAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control;
606 
612 - (void)mapView:(MAMapView *)mapView didAnnotationViewCalloutTapped:(MAAnnotationView *)view;
613 
618 - (void)mapViewWillStartLocatingUser:(MAMapView *)mapView;
619 
624 - (void)mapViewDidStopLocatingUser:(MAMapView *)mapView;
625 
632 - (void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation updatingLocation:(BOOL)updatingLocation;
633 
639 - (void)mapView:(MAMapView *)mapView didFailToLocateUserWithError:(NSError *)error;
640 
647 - (void)mapView:(MAMapView *)mapView didChangeUserTrackingMode:(MAUserTrackingMode)mode animated:(BOOL)animated;
648 
656 - (void)mapView:(MAMapView *)mapView annotationView:(MAAnnotationView *)view didChangeDragState:(MAAnnotationViewDragState)newState fromOldState:(MAAnnotationViewDragState)oldState;
657 
664 - (MAOverlayRenderer *)mapView:(MAMapView *)mapView rendererForOverlay:(id <MAOverlay>)overlay;
665 
671 - (void)mapView:(MAMapView *)mapView didAddOverlayRenderers:(NSArray *)renderers;
672 
673 #pragma mark - Deprecated
674 
675 - (MAOverlayView *)mapView:(MAMapView *)mapView viewForOverlay:(id <MAOverlay>)overlay __attribute__ ((deprecated("use - (MAOverlayRenderer *)mapView:(MAMapView *)mapView rendererForOverlay:(id <MAOverlay>)overlay instead")));
676 
677 - (void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation __attribute__ ((deprecated("use -(void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation updatingLocation:(BOOL)updatingLocation instead")));
678 
679 - (void)mapView:(MAMapView *)mapView didAddOverlayViews:(NSArray *)overlayViews __attribute__ ((deprecated("use - (void)mapView:(MAMapView *)mapView didAddOverlayRenderers:(NSArray *)renderers instead")));
680 
681 
682 @end
MAMapRect limitMapRect
设置可见地图区域的矩形边界,如限制地图只显示北京市范围
Definition: MAMapView.h:121
CGRect annotationVisibleRect
annotation 可见区域
Definition: MAMapView.h:157
CGPoint scaleOrigin
比例尺原点位置
Definition: MAMapView.h:95
该类是地图覆盖物Renderer的基类, 提供绘制overlay的接口但并无实际的实现
Definition: MAOverlayRenderer.h:13
CGPoint logoCenter
logo位置, 必须在mapView.bounds之内,否则会被忽略
Definition: MAMapView.h:72
定位信息类
Definition: MAUserLocation.h:16
卫星地图
Definition: MAMapView.h:25
中文
Definition: MAMapView.h:18
MAUserTrackingMode
Definition: MAMapView.h:28
NSArray * selectedAnnotations
处于选中状态的标注数据数据(其count == 0 或 1)
Definition: MAMapView.h:154
MACoordinateRegion region
当前地图的经纬度范围,设定的该范围可能会被调整为适合地图窗口显示的范围
Definition: MAMapView.h:110
NSArray * overlays
Overlay数组
Definition: MAMapView.h:162
CLLocationDistance distanceFilter
设定定位的最小更新距离。默认为kCLDistanceFilterNone,会提示任何移动
Definition: MAMapView.h:492
地图view关于截图的类别
Definition: MAMapView.h:468
中心点、跨度范围定义的四边形经纬度范围
Definition: MAGeometry.h:31
BOOL allowsBackgroundLocationUpdates
是否允许后台定位。默认为NO。只在iOS 9.0之后起作用。设置为YES的时候必须保证 Background Modes 中的 Loca...
Definition: MAMapView.h:504
MAMapType
Definition: MAMapView.h:22
BOOL userLocationVisible
当前位置再地图中是否可见
Definition: MAMapView.h:146
double zoomLevel
缩放级别, [3, 20]
Definition: MAMapView.h:126
追踪用户的location与heading更新
Definition: MAMapView.h:32
CLLocationAccuracy desiredAccuracy
设定定位精度。默认为kCLLocationAccuracyBest
Definition: MAMapView.h:495
CLLocationCoordinate2D centerCoordinate
当前地图的中心点经纬度坐标,改变该值时,地图缩放级别不会发生变化
Definition: MAMapView.h:107
CGPoint compassOrigin
罗盘原点位置
Definition: MAMapView.h:83
BOOL showsScale
是否显示比例尺,默认为YES
Definition: MAMapView.h:92
BOOL allowsAnnotationViewSorting
是否允许对annotationView根据zIndex进行排序,默认为YES。当annotationView数量比较大时可能会引起性能问题...
Definition: MAMapView.h:67
void clearDisk()
清除所有磁盘上缓存的地图数据
double minZoomLevel
最小缩放级别, 最小值为3
Definition: MAMapView.h:129
用户位置显示样式控制
Definition: MAUserLocationRepresentation.h:13
不追踪用户的location更新
Definition: MAMapView.h:30
double maxZoomLevel
最大缩放级别,最大值为20
Definition: MAMapView.h:132
定位相关参数的类别
Definition: MAMapView.h:489
CGSize logoSize
logo的宽高
Definition: MAMapView.h:75
MAMapLanguage
Definition: MAMapView.h:16
BOOL isAbroad
标识当前地图中心位置是否在中国范围外。此属性不是精确判断,不能用于边界区域
Definition: MAMapView.h:64
BOOL showsUserLocation
是否显示用户位置
Definition: MAMapView.h:137
MACoordinateRegion limitRegion
设置可见地图区域的矩形边界,如限制地图只显示北京市范围
Definition: MAMapView.h:118
BOOL scrollEnabled
是否支持平移,默认为YES
Definition: MAMapView.h:58
普通地图
Definition: MAMapView.h:24
NSArray * annotations
标注数组
Definition: MAMapView.h:151
MAUserTrackingMode userTrackingMode
定位用户位置的模式
Definition: MAMapView.h:143
BOOL pausesLocationUpdatesAutomatically
指定定位是否会被系统自动暂停。默认为YES。只在iOS 6.0之后起作用
Definition: MAMapView.h:501
英文
Definition: MAMapView.h:19
CGSize compassSize
罗盘的宽高
Definition: MAMapView.h:86
MAAnnotationViewDragState
annotationView拖动状态
Definition: MAAnnotationView.h:12
BOOL showsCompass
是否显示罗盘,默认为YES
Definition: MAMapView.h:80
BOOL showTraffic
是否显示交通,默认为NO
Definition: MAMapView.h:55
MAMapType mapType
地图类型
Definition: MAMapView.h:49
CGFloat metersPerPointForCurrentZoomLevel
在当前缩放级别下, 基于地图中心点, 1 screen point 对应的距离(单位是米). 支持KVO
Definition: MAMapView.h:101
MAUserLocation * userLocation
当前的位置数据
Definition: MAMapView.h:140
id< MAMapViewDelegate > delegate
地图View的Delegate
Definition: MAMapView.h:46
标注view
Definition: MAAnnotationView.h:23
该类是地图覆盖物View的基类, 提供绘制overlay的接口但并无实际的实现
Definition: MAOverlayView.h:15
追踪用户的location更新
Definition: MAMapView.h:31
平面投影矩形结构定义
Definition: MAGeometry.h:52
MAMapRect visibleMapRect
当前地图可见范围的map rect
Definition: MAMapView.h:113
CLLocationDegrees headingFilter
设定最小更新角度。默认为1度,设定为kCLHeadingFilterNone会提示任何角度改变
Definition: MAMapView.h:498
Definition: MAMapView.h:41
BOOL zoomEnabled
是否支持缩放,默认为YES
Definition: MAMapView.h:61
MAMapLanguage language
地图语言
Definition: MAMapView.h:52
CGSize scaleSize
比例尺的最大宽高
Definition: MAMapView.h:98
© 2017 高德信息技术有限公司 版权所有,保留所有权利。