TencentMapSDK_iOS_3D_v1.3.3
QMapView.h
1 //
2 // QMapView.h
3 // QMap
4 //
5 // Created by songjian on 14-8-18.
6 // Copyright (c) 2014年 Tencent. All rights reserved.
7 //
8 
9 #import <UIKit/UIKit.h>
10 #import "QFoundation.h"
11 #import "QGeometry.h"
12 #import "QTypes.h"
13 #import "QOverlay.h"
14 #import "QOverlayView.h"
15 #import "QAnnotationView.h"
16 
17 typedef NS_ENUM(NSInteger, QUserTrackingMode)
18 {
19  QUserTrackingModeNone = 0,
20  QUserTrackingModeFollow = 1,
21  QUserTrackingModeFollowWithHeading = 2
22 };
23 
24 #pragma mark - QMapView
25 @class QUserLocation;
26 
27 @protocol QMapViewDelegate;
28 
32 Q_EXTERN @interface QMapView : UIView <NSCoding>
33 
37 @property (nonatomic, weak) id <QMapViewDelegate> delegate;
38 
42 @property (nonatomic) QMapType mapType;
43 
47 @property (nonatomic, assign, getter = isShowTraffic) BOOL showTraffic;
48 
52 @property (nonatomic, assign, getter = isScrollEnabled) BOOL scrollEnabled;
53 
57 @property (nonatomic, assign, getter = isZoomEnabled) BOOL zoomEnabled;
58 
62 @property (nonatomic, assign, getter = isKeepCenterEnabled) BOOL keepCenterEnabled;
63 
67 @property (nonatomic) BOOL showsScale;
68 
72 @property (nonatomic) CLLocationCoordinate2D centerCoordinate;
73 
80 - (void)setCenterCoordinate:(CLLocationCoordinate2D)coordinate animated:(BOOL)animated;
81 
85 @property (nonatomic) QCoordinateRegion region;
86 
92 - (id)initWithFrame:(CGRect)frame;
93 
100 - (void)setRegion:(QCoordinateRegion)region animated:(BOOL)animated;
101 
105 @property (nonatomic) QMapRect visibleMapRect;
106 
113 - (void)setVisibleMapRect:(QMapRect)mapRect animated:(BOOL)animated;
114 
122 - (void)setVisibleMapRect:(QMapRect)mapRect edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
123 
131 - (QCoordinateRegion)regionThatFits:(QCoordinateRegion)region;
132 
140 - (QMapRect)mapRectThatFits:(QMapRect)mapRect;
141 
150 - (QMapRect)mapRectThatFits:(QMapRect)mapRect edgePadding:(UIEdgeInsets)insets;
151 
160 - (void)setDisplayLauguage:(QMapLanguage)language;
161 
162 #pragma mark - ZoomLevel
163 
167 @property (nonatomic, assign) double zoomLevel;
168 
172 @property (nonatomic, readonly) double minZoomLevel;
173 
177 @property (nonatomic, readonly) double maxZoomLevel;
178 
185 - (void)setZoomLevel:(double)newZoomLevel animated:(BOOL)animated;
186 
194 - (void)setCenterCoordinate:(CLLocationCoordinate2D)coordinate zoomLevel:(double)newZoomLevel animated:(BOOL)animated;
195 
204 - (CGPoint)convertCoordinate:(CLLocationCoordinate2D)coordinate toPointToView:(UIView *)view;
205 
214 - (CLLocationCoordinate2D)convertPoint:(CGPoint)point toCoordinateFromView:(UIView *)view;
215 
224 - (CGRect)convertRegion:(QCoordinateRegion)region toRectToView:(UIView *)view;
225 
234 - (QCoordinateRegion)convertRect:(CGRect)rect toRegionFromView:(UIView *)view;
235 
236 #pragma mark - Annotation
237 
243 - (void)addAnnotation:(id <QAnnotation>)annotation;
244 
250 - (void)addAnnotations:(NSArray *)annotations;
251 
257 - (void)removeAnnotation:(id <QAnnotation>)annotation;
258 
264 - (void)removeAnnotations:(NSArray *)annotations;
265 
269 @property (nonatomic, readonly) NSArray *annotations;
270 
278 - (QAnnotationView *)viewForAnnotation:(id <QAnnotation>)annotation;
279 
287 - (NSSet *)annotationsInMapRect:(QMapRect)mapRect;
288 
292 @property(nonatomic, readonly) CGRect annotationVisibleRect;
293 
301 - (QAnnotationView *)dequeueReusableAnnotationViewWithIdentifier:(NSString *)identifier;
302 
306 @property (nonatomic, copy) NSArray *selectedAnnotations;
307 
314 - (void)selectAnnotation:(id < QAnnotation >)annotation animated:(BOOL)animated;
315 
322 - (void)deselectAnnotation:(id < QAnnotation >)annotation animated:(BOOL)animated;
323 
330 - (void)showAnnotations:(NSArray *)annotations animated:(BOOL)animated;
331 
332 #pragma mark - UserLocation
333 
337 @property (nonatomic, getter = isShowsUserLocation) BOOL showsUserLocation;
338 
342 @property(nonatomic, assign) CLLocationDistance distanceFilter;
343 
347 @property (nonatomic, readonly, strong) QUserLocation *userLocation;
348 
352 @property (nonatomic) BOOL forceUpdatingHeading;
353 
357 @property (nonatomic) QUserTrackingMode userTrackingMode;
358 
365 - (void)setUserTrackingMode:(QUserTrackingMode)mode animated:(BOOL)animated;
366 
370 @property (nonatomic, readonly, getter=isUserLocationVisible) BOOL userLocationVisible;
371 
372 @end
373 
380 
386 - (void)addOverlay:(id <QOverlay>)overlay;
387 
393 - (void)addOverlays:(NSArray *)overlays;
394 
400 - (void)removeOverlay:(id <QOverlay>)overlay;
401 
407 - (void)removeOverlays:(NSArray *)overlays;
408 
415 - (void)insertOverlay:(id <QOverlay>)overlay atIndex:(NSUInteger)index;
416 
423 - (void)exchangeOverlayAtIndex:(NSUInteger)index1 withOverlayAtIndex:(NSUInteger)index2;
424 
431 - (void)insertOverlay:(id <QOverlay>)overlay aboveOverlay:(id <QOverlay>)sibling;
432 
439 - (void)insertOverlay:(id <QOverlay>)overlay belowOverlay:(id <QOverlay>)sibling;
440 
444 @property (nonatomic, readonly) NSArray *overlays;
445 
453 - (QOverlayView *)viewForOverlay:(id <QOverlay>)overlay;
454 
455 @end
456 
463 
471 - (UIImage *)takeSnapshotInRect:(CGRect)rect;
472 
480 - (void)takeSnapshotInRect:(CGRect)rect withCompletionBlock:(void (^)(UIImage *resultImage, CGRect rect))block;
481 
482 @end
483 
487 Q_EXTERN @protocol QMapViewDelegate <NSObject>
488 
489 @optional
490 
497 - (void)mapViewDidFailLoadingMap:(QMapView *)mapView withError:(NSError *)error;
498 
499 #pragma mark - Region
500 
507 - (void)mapView:(QMapView *)mapView regionWillChangeAnimated:(BOOL)animated;
508 
515 - (void)mapView:(QMapView *)mapView regionDidChangeAnimated:(BOOL)animated;
516 
517 #pragma mark - Overlay
518 
527 - (QOverlayView *)mapView:(QMapView *)mapView viewForOverlay:(id <QOverlay>)overlay;
528 
535 - (void)mapView:(QMapView *)mapView didAddOverlayViews:(NSArray *)overlayViews;
536 
537 #pragma mark - Annotation
538 
546 - (QAnnotationView *)mapView:(QMapView *)mapView viewForAnnotation:(id <QAnnotation>)annotation;
547 
554 - (void)mapView:(QMapView *)mapView didAddAnnotationViews:(NSArray *)views;
555 
562 - (void)mapView:(QMapView *)mapView didSelectAnnotationView:(QAnnotationView *)view;
563 
570 - (void)mapView:(QMapView *)mapView didDeselectAnnotationView:(QAnnotationView *)view;
571 
580 - (void)mapView:(QMapView *)mapView annotationView:(QAnnotationView *)view didChangeDragState:(QAnnotationViewDragState)newState
581  fromOldState:(QAnnotationViewDragState)oldState;
582 
590 - (void)mapView:(QMapView *)mapView annotationView:(QAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control;
591 
592 #pragma mark - UserLocation
593 
599 - (void)mapViewWillStartLocatingUser:(QMapView *)mapView;
600 
606 - (void)mapViewDidStopLocatingUser:(QMapView *)mapView;
607 
614 - (void)mapView:(QMapView *)mapView didUpdateUserLocation:(QUserLocation *)userLocation __attribute__ ((deprecated("use -(void)mapView:(QMapView *)mapView didUpdateUserLocation:(QUserLocation *)userLocation updatingLocation:(BOOL)updatingLocation instead")));
615 
623 - (void)mapView:(QMapView *)mapView didUpdateUserLocation:(QUserLocation *)userLocation updatingLocation:(BOOL)updatingLocation;
624 
631 - (void)mapView:(QMapView *)mapView didFailToLocateUserWithError:(NSError *)error;
632 
640 - (void)mapView:(QMapView *)mapView didChangeUserTrackingMode:(QUserTrackingMode)mode animated:(BOOL)animated;
641 
642 @end
643 
QMapView的扩展类
Definition: QMapView.h:379
QAnnotationViewDragState
Definition: QAnnotationView.h:18
QUserLocation * userLocation
当前用户位置数据
Definition: QMapView.h:347
该类是地图覆盖物View的基类, 提供了绘制overlay的接口, 但是没有实际实现。希望不要直接实例化,通常通过子类重写[drawMapRect:zoomScale:inContext:]来绘制内容
Definition: QOverlayView.h:16
BOOL userLocationVisible
当前位置在地图中是否可见
Definition: QMapView.h:370
BOOL showTraffic
是否显示交通, 默认为NO
Definition: QMapView.h:47
QMapView的扩展类
Definition: QMapView.h:462
BOOL showsScale
是否显示比例尺,默认为YES
Definition: QMapView.h:67
BOOL forceUpdatingHeading
是否强制开启heading 更新, 默认为NO.
Definition: QMapView.h:352
CGRect annotationVisibleRect
标注的可见区域
Definition: QMapView.h:292
BOOL keepCenterEnabled
pinch时保持中心点, 默认为NO
Definition: QMapView.h:62
CLLocationDistance distanceFilter
最小移动距离(单位是米), 当大于该值时定位回调才触发, 默认为kCLDistanceFilterNone
Definition: QMapView.h:342
BOOL scrollEnabled
是否支持平移, 默认为YES
Definition: QMapView.h:52
id< QMapViewDelegate > delegate
地图view的delegate
Definition: QMapView.h:37
QMapRect visibleMapRect
当前地图可见范围的mapRect
Definition: QMapView.h:105
double maxZoomLevel
最大缩放级别
Definition: QMapView.h:177
NSArray * selectedAnnotations
处于选中状态的标注数据数据(其count == 0 或 1)
Definition: QMapView.h:306
该类为标注点的view
Definition: QAnnotationView.h:31
平面投影矩形结构定义
Definition: QGeometry.h:90
QUserTrackingMode userTrackingMode
定位用户位置的模式
Definition: QMapView.h:357
定义了地图的某一部份的数据结构
Definition: QGeometry.h:29
BOOL showsUserLocation
是否显示用户位置
Definition: QMapView.h:337
BOOL zoomEnabled
是否支持缩放, 默认为YES
Definition: QMapView.h:57
NSArray * overlays
当前地图上的overlay数组
Definition: QMapView.h:444
定位信息类
Definition: QUserLocation.h:18
QMapType mapType
地图类型
Definition: QMapView.h:42
double zoomLevel
地图缩放级别
Definition: QMapView.h:167
CLLocationCoordinate2D centerCoordinate
当前地图的中心点经纬度坐标,改变该值时,地图缩放级别不会发生变化
Definition: QMapView.h:72
QCoordinateRegion region
当前地图的经纬度范围,设定的该范围可能会被调整为适合地图窗口显示的范围
Definition: QMapView.h:85
地图view
Definition: QMapView.h:32
double minZoomLevel
最小缩放级别
Definition: QMapView.h:172
NSArray * annotations
当前地图上的标注数组
Definition: QMapView.h:269