11#import "QAnnotation.h"
12#import "QAnnotationView.h"
13#import "QOverlayView.h"
14#import "QBasicMapViewLayer.h"
16#import "QUserLocationPresentation.h"
17#import "QTileOverlay.h"
18#import "QCustomLayer.h"
22#import "QMarkerViewDefines.h"
24typedef NS_ENUM(NSInteger, QUserTrackingMode)
26 QUserTrackingModeNone = 0,
27 QUserTrackingModeFollow = 1,
28 QUserTrackingModeFollowWithHeading = 2
31typedef NS_ENUM(NSUInteger, QMapLogoAnchor)
33 QMapLogoAnchorRightBottom = 0,
34 QMapLogoAnchorLeftBottom,
35 QMapLogoAnchorLeftTop,
36 QMapLogoAnchorRightTop,
41@protocol QMapViewDelegate;
44#pragma mark - QMapView
63#pragma mark - Resources
70+ (void)loadPrefferedResourceFilesFromDirectory:(NSString *)path;
77@property (nonatomic, weak) id<QMapViewDelegate>
delegate;
82@property (nonatomic, assign) QMapType mapType;
92- (void)setStyleType:(QMapStyleType)styleType DEPRECATED_ATTRIBUTE;
99- (void)setMapStyle:(
int)styleType;
146- (void)setCompassOffset:(CGPoint)offset;
156- (void)setForeignLanguage:(QMapLanguage)language;
161- (void)setWorldMapEnable:(BOOL)enable;
166- (void)setCenterOffsetY:(
float)offset __attribute__ ((deprecated("use - (
void)setCenterOffsetV2:(CGPoint)offset animated:(BOOL)animated instead")));
171- (void)setCenterOffset:(CGPoint)offset __attribute__ ((deprecated("use - (
void)setCenterOffsetV2:(CGPoint)offset animated:(BOOL)animated instead")));
179- (void)setCenterOffset:(CGPoint)offset animated:(BOOL)animated __attribute__ ((deprecated("use - (
void)setCenterOffsetV2:(CGPoint)offset animated:(BOOL)animated instead")));
192- (void)setCenterOffsetV2:(CGPoint)offset animated:(BOOL)animated;
199- (void)setLogoOffset:(CGPoint)offset DEPRECATED_ATTRIBUTE;
207- (void)setLogoMargin:(CGPoint)margin anchor:(QMapLogoAnchor)anchor;
214- (void)setLogoScale:(CGFloat)scale;
232- (void)setScaleViewOffset:(CGPoint)offset;
248- (void) setScaleViewFadeEnable:(BOOL)enable;
255- (void)setRoadEventVisible:(BOOL)visible DEPRECATED_ATTRIBUTE;
262- (void)setBuildingBlackList:(
QMapRect*)noBuildingList count:(
int)count;
275- (void)setGLMapDefaultGroundColor:(UIColor *)defaultColor;
277#pragma mark - MapStatus
290- (void)setCenterCoordinate:(CLLocationCoordinate2D)coordinate animated:(BOOL)animated;
313- (void)setMinZoomLevel:(CGFloat)minZoomLevel maxZoomLevel:(CGFloat)maxZoomLevel;
321- (void)setZoomLevel:(CGFloat)zoomLevel animated:(BOOL)animated;
334- (void)setRotation:(CGFloat)rotation animated:(BOOL)animated;
345- (void)enableAutoMaxOverlooking:(BOOL)enable;
353- (void)setOverlooking:(CGFloat)overlooking animated:(BOOL)animated;
367- (void)setVisibleMapRect:(
QMapRect)mapRect animated:(BOOL)animated;
377- (void)setVisibleMapRect:(
QMapRect)mapRect edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
401- (void)setRegion:(
QCoordinateRegion)region edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
421 containsCalloutView:(BOOL)bContainsCalloutView
422 annotations:(NSArray<
id<QAnnotation> >*)annotations
423 edgePadding:(UIEdgeInsets)insets;
432- (CGFloat)zoomLevelThatFits:(
QMapRect)mapRect edgePadding:(UIEdgeInsets)insets outCenterCoordinate:(CLLocationCoordinate2D *)outCoordinate;
440-(void)setLimitMapRect:(
QMapRect)mapRect mode:(QMapLimitRectFitMode)mode;
459- (CGPoint)glVertexForCoordinate:(CLLocationCoordinate2D)coordinate;
478- (double)metersPerPointAtLatitude:(CLLocationDegrees)latitude zoomLevel:(CGFloat)zoomLevel;
480#pragma mark - Gesture Control
517#pragma mark - Coordinate Convert
526- (CGPoint)convertCoordinate:(CLLocationCoordinate2D)coordinate toPointToView:(UIView *)view;
535- (CLLocationCoordinate2D)convertPoint:(CGPoint)point toCoordinateFromView:(UIView *)view;
560@interface QMapView (UserLocation)
625@property(nonatomic, readonly) CLAccuracyAuthorization accuracyAuthorization
API_AVAILABLE(ios(14));
630@property(nonatomic, readonly) CLAuthorizationStatus authorizationStatus
API_AVAILABLE(ios(14));
643- (void)setUserTrackingMode:(QUserTrackingMode)mode animated:(BOOL)animated;
653- (void)setUserLocationHidden:(BOOL)hidden;
658- (void)setUserLocationCompassHidden:(BOOL)hidden;
663- (void)setUserLocationNavigationGravitylineHidden:(BOOL)hidden;
669- (void)requestTempPrecisedLocation:(
QMapView *)mapView purposeKey:(NSString *)key completion:(
void(^)(NSError * error))completion API_AVAILABLE(ios(14));
676@interface QMapView (Annotation)
695- (NSSet<
id <QAnnotation>> *)annotationsInMapRect:(
QMapRect)mapRect;
702- (void)addAnnotation:(
id <QAnnotation>)annotation;
708- (void)addAnnotations:(NSArray *)annotations;
714- (void)removeAnnotation:(
id <QAnnotation>)annotation;
720- (void)removeAnnotations:(NSArray *)annotations;
734- (
QAnnotationView *)dequeueReusableAnnotationViewWithIdentifier:(NSString *)identifier;
742- (void)bringAnnotationToFront:(
id <QAnnotation>)annotation DEPRECATED_ATTRIBUTE;
749- (void)selectAnnotation:(
id <QAnnotation>)annotation animated:(BOOL)animated;
756- (void)deselectAnnotation:(
id <QAnnotation>)annotation animated:(BOOL)animated;
764- (void)showAnnotations:(NSArray<
id<QAnnotation>> *)annotations edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
769#pragma mark - Overlay
774@interface QMapView (Overlay)
785- (void)addOverlay:(
id <QOverlay>)overlay;
791- (void)addOverlays:(NSArray<
id <QOverlay>> *)overlays;
798- (void)addMultiPolygons:(NSArray <
QPolygon *> *)polygons;
804- (void)removeOverlay:(
id <QOverlay>)overlay;
810- (void)removeOverlays:(NSArray<
id <QOverlay>> *)overlays;
825- (void)showOverlays:(NSArray<
id<QOverlay>> *)overlays edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
833- (void)showQMarkers:(NSArray<
QMarker *> *)markers edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
838#pragma mark - CustomLayer
843@interface QMapView (CustomLayer)
859#pragma mark - POILayer
861@interface QMapView (AOILayer)
869- (void)addAOILayer:(
QAOILayer *)layer callback:(
void(^)(BOOL success))callback;
879#pragma mark - Snapshot
883@interface QMapView (Snapshot)
890- (UIImage *)takeSnapshot
__attribute__ ((deprecated("use - (void)takeSnapshotInRect:(CGRect)rect completion:(
void (^)(UIImage *resultImage))completion instead")));
898- (void)takeSnapshotInRect:(CGRect)rect completion:(
void (^)(UIImage *resultImage))completion;
907- (void)takeSnapshotInRect:(CGRect)rect timeout:(CFTimeInterval)timeout completion:(
void (^)(UIImage *resultImage))completion;
917- (void)takeSnapshotInRect:(CGRect)rect timeout:(CFTimeInterval)timeout afterScreenUpdates:(BOOL)afterUpdates completion:(
void (^)(UIImage *resultImage))completion;
921#pragma mark - QPoiInfo
931@property (nonatomic, copy) NSString *
uid;
936@property (nonatomic, copy) NSString *
name;
941@property (nonatomic, assign) CLLocationCoordinate2D
coordinate;
976@property (nonatomic, copy) NSString *
source;
986@property (nonatomic, copy) NSString *
road;
991@property (nonatomic, copy) NSString *
detail;
1001@property (nonatomic, assign) NSTimeInterval
endTime;
1027@interface QMapView (Debug)
1036@interface QMapView (Cache)
1045#pragma mark - QMapViewDelegate
1050@protocol QMapViewDelegate <NSObject>
1059- (void)mapViewAuthenticationDidComplete:(
QMapView *)mapView;
1069- (void)mapViewAuthentication:(
QMapView *)mapView didFailWithError:(NSError *)error;
1083- (void)mapViewFirstRenderDidComplete:(
QMapView *)mapView;
1089- (void)mapViewStatusChangesCompleted:(
QMapView *)mapView;
1097- (void)mapViewDidFailLoadingMap:(
QMapView *)mapView withError:(NSError *)error;
1105- (void)mapView:(
QMapView *)mapView regionWillChangeAnimated:(BOOL)animated gesture:(BOOL)bGesture;
1119- (void)mapView:(
QMapView *)mapView regionDidChangeAnimated:(BOOL)animated gesture:(BOOL)bGesture;
1127- (void)mapView:(
QMapView *)mapView willMoveAnimated:(BOOL)animated gesture:(BOOL)bGesture;
1135- (void)mapView:(
QMapView *)mapView didMoveAnimated:(BOOL)animated gesture:(BOOL)bGesture;
1143- (void)mapView:(
QMapView *)mapView willZoomAnimated:(BOOL)animated gesture:(BOOL)bGesture;
1151- (void)mapView:(
QMapView *)mapView didZoomAnimated:(BOOL)animated gesture:(BOOL)bGesture;
1159- (void)mapView:(
QMapView *)mapView scaleViewChanged:(CGFloat)unitLength;
1166- (void)mapView:(
QMapView *)mapView gestureDidTrigger:(QGestureType)gestureType;
1175- (void)mapView:(
QMapView *)mapView gestureDidEnd:(QGestureType)gestureType;
1194- (void)mapView:(
QMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate;
1208- (void)mapView:(
QMapView *)mapView didTapOverlay:(
id<QOverlay>)overlay __attribute__ ((deprecated("use - (
void)mapView:(
QMapView *)mapView didTapOverlay:(
id<QOverlay>)overlay coordinate:(CLLocationCoordinate2D)coordinate instead")));
1218- (void)mapView:(
QMapView *)mapView didTapOverlay:(
id<QOverlay>)overlay coordinate:(CLLocationCoordinate2D)coordinate;
1235- (void)mapView:(
QMapView *)mapView markerOverlay:(
QMarker *)markerOverlay didChangeDragState:(QMarkerViewDragState)newState
1236 fromOldState:(QMarkerViewDragState)oldState;
1243- (void)mapView:(
QMapView *)mapView didTapMyLocation:(CLLocationCoordinate2D)location;
1314 fromOldState:(QAnnotationViewDragState)oldState;
1345- (void)mapView:(
QMapView *)mapView didAddOverlayViews:(NSArray *)overlayViews;
1351- (void)mapViewWillStartLocatingUser:(
QMapView *)mapView;
1371- (void)mapView:(
QMapView *)mapView didFailToLocateUserWithError:(NSError *)error;
1379- (void)mapView:(
QMapView *)mapView didChangeUserTrackingMode:(QUserTrackingMode)mode animated:(BOOL)animated;
1385- (void)locationManagerDidChangeAuthorization:(
QMapView *)mapView;
1391- (void)mapViewLogger:(
QMapView *)mapView logMessage:(NSString *)text;
NSArray * annotations
当前地图View的已经添加的标注数组
定义 QMapView.h:681
NSArray< id< QAnnotation > > * selectedAnnotations
当前选中的annotations get: 处于选中的标注数组,其count == 0 或者 1 set: 数组中的第一个annotation会被选中 (index = 0),其他则忽略....
定义 QMapView.h:688
void clearMapCache()
清理地图缓存数据。注: 此接口必须在地图初始化前调用
NSString * getDebugError()
地图view的错误信息, 用于定位问题
NSArray * overlays
当前mapView中已经添加的Overlay数组
定义 QMapView.h:779
(deprecated("use - (void)takeSnapshotInRect:(CGRect)rect completion:(void (^)(UIImage *resultImage))completion instead")) __attribute__()
截图
定义 QMapView.h:890
CLAuthorizationStatus authorizationStatus API_AVAILABLE(ios(14))
定位权限状态
CLLocationAccuracy desiredAccuracy
设定定位精度。默认为kCLLocationAccuracyBest
定义 QMapView.h:599
BOOL userLocationVisible
当前位置在地图中是否可见
定义 QMapView.h:648
QUserLocationPresentation * userLocatorPresentation
地图view的定位标对象
定义 QMapView.h:565
CLLocationDistance distanceFilter
设定定位的最小更新距离。默认为kCLDistanceFilterNone,会提示任何移动
定义 QMapView.h:604
CLLocationDegrees headingFilter
设定最小更新角度。默认为2度,设定为kCLHeadingFilterNone会提示任何角度改变
定义 QMapView.h:610
BOOL pausesLocationUpdatesAutomatically
定义 QMapView.h:620
QUserTrackingMode userTrackingMode
定位用户位置的模式
定义 QMapView.h:635
QUserLocation * userLocation
当前位置信息
定义 QMapView.h:594
BOOL showsUserLocation
开启定位并展示位置图标.
定义 QMapView.h:577
QOverlayLevel locatorDisplayLevel
位置图标的展示层级. 默认 QOverlayLevelAboveLabels
定义 QMapView.h:582
BOOL allowsBackgroundLocationUpdates
以上是否允许后台定位。ios9以上可用. 请参考CLLocationManager.allowsBackgroundLocationUpdates
定义 QMapView.h:615
int locatorZIndex
位置图标的显示顺序,决定了它与其它QOverlayView的压盖关系. 默认为10000000.
定义 QMapView.h:589
CLAccuracyAuthorization accuracyAuthorization API_AVAILABLE(ios(14))
定位精度权限状态
AOILayer 类
定义 QAOILayer.h:19
annotation数据的内容展示View
定义 QAnnotationView.h:20
执行地图动画对应的layer.
定义 QBasicMapViewLayer.h:37
用于自定义图层的类
定义 QCustomLayer.h:17
点击室内图上文字图标的数据信息
定义 QMapView.h:949
NSString * buildingGUID
所在室内图唯一标识
定义 QMapView.h:958
NSString * buildingName
所在室内图楼的名称
定义 QMapView.h:963
NSString * levelName
所在室内图楼层
定义 QMapView.h:953
地图view的核心类
定义 QMapView.h:50
CGPoint scaleOrigin
比例尺原点位置
定义 QMapView.h:237
float * glProjectionMatrix()
获取当前地图projection矩阵
CGFloat glPointRatio()
返回每屏幕Point单位对应的OpenGL坐标系下的长度
BOOL overlookingEnabled
是否支持俯视. 默认为YES.
定义 QMapView.h:500
BOOL zoomEnabled
定义 QMapView.h:485
BOOL keepCenterDuringZoom
pinch时保持中心点, 默认为YES
定义 QMapView.h:490
QMapRect visibleMapRect
当前地图可见范围的mapRect
定义 QMapView.h:358
BOOL scrollEnabled
定义 QMapView.h:495
BOOL showsBaseMap
是否显示底图,默认为YES
定义 QMapView.h:131
QBasicMapViewLayer * animationLayer
地图动画Layer. 使用该layer 可以更灵活的组合 {centerCoordinate, zoomLevel, rotation, overlooking} 动画, 并且可以自定义其duratio...
定义 QMapView.h:269
CGPoint logoCenter
logo位置,需设置在地图的bounds里
定义 QMapView.h:220
BOOL showsCompass
是否显示指南针,默认为NO
定义 QMapView.h:136
BOOL showsPoi
是否显示底图上的标注及名称,默认为YES
定义 QMapView.h:119
CGSize logoSize
logo的宽高
定义 QMapView.h:225
double metersPerPointAtCurrentZoomLevel
在当前缩放级别下, 基于地图中心点, 1 screen point 对应的距离(单位是米)
定义 QMapView.h:470
QCoordinateRegion region
当前地图的经纬度范围,设定的该范围可能会被调整为适合地图窗口显示的范围
定义 QMapView.h:382
CGFloat maxZoomLevel
最大缩放级别, 默认 maxZoomLevel = 20
定义 QMapView.h:305
CGSize scaleSize
比例尺的尺寸
定义 QMapView.h:242
CGFloat rotation
旋转角度, 正角度向右转, 单位(角度)
定义 QMapView.h:326
BOOL shows3DBuildings
是否显示建筑物样式为3D效果,默认为YES
定义 QMapView.h:114
CGFloat overlooking
Overlooking, 范围 [0, 45], 单位(角度)
定义 QMapView.h:339
CGFloat minZoomLevel
最小缩放级别, 默认 minZoomLevel = 3
定义 QMapView.h:300
CGFloat zoomLevel
缩放级别, 范围 [minZoomLevel, maxZoomLevel]
定义 QMapView.h:295
QMapLabelSize labelSize
设置底图上的标注的字体大小
定义 QMapView.h:126
CLLocationCoordinate2D centerCoordinate
中心点经纬度
定义 QMapView.h:282
BOOL showsTraffic
是否开启路况图,默认为 NO
定义 QMapView.h:61
CGPoint centerOffsetV2
设置中心点偏移,向右向下为正,默认为(0.5, 0.5),范围是 [0.05, 0.95]。若超出范围,则被裁减到 [0.05, 0.95]。
定义 QMapView.h:184
BOOL showsBuildings
是否显示建筑物,默认为YES
定义 QMapView.h:109
NSInteger preferredFramesPerSecond
当前地图最大渲染帧数,默认为60
定义 QMapView.h:141
BOOL showsScale
是否显示比例尺,默认为YES
定义 QMapView.h:104
BOOL alwaysTriggerDidTapCoordinateEnabled
当地图被单击时,是否总是触发 "地图点击回调",默认为NO. 地图点击回调:
定义 QMapView.h:515
float * glViewMatrix()
获取当前地图view矩阵
BOOL rotateEnabled
是否支持旋转. 默认为YES.
定义 QMapView.h:505
id< QMapViewDelegate > delegate
地图回调
定义 QMapView.h:77
BOOL handDrawMapEnabled
是否开启手绘图,默认为 NO
定义 QMapView.h:56
该类是地图覆盖物View的基类, 提供了绘制overlay的接口, 但是没有实际实现。希望不要直接实例化
定义 QOverlayView.h:17
点击底图上文字图标的数据信息
定义 QMapView.h:927
CLLocationCoordinate2D coordinate
经纬坐标
定义 QMapView.h:941
NSString * uid
唯一标识(可能为空).
定义 QMapView.h:931
NSString * name
名字信息
定义 QMapView.h:936
点击点事件图标的数据信息 可通过 discription 获取快捷点事件简介
定义 QMapView.h:972
NSString * source
事件来源
定义 QMapView.h:976
NSString * detail
事件详情信息
定义 QMapView.h:991
NSTimeInterval updateTime
事件更新时间
定义 QMapView.h:1006
NSTimeInterval startTime
事件开始时间
定义 QMapView.h:996
NSString * eventName
事件类型
定义 QMapView.h:981
NSTimeInterval endTime
事件结束时间
定义 QMapView.h:1001
NSString * road
事件发生道路
定义 QMapView.h:986
点击AOI面子点图标的数据信息 uid 为子点的唯一标识
定义 QMapView.h:1016
NSString * parentID
子点的主点唯一标识
定义 QMapView.h:1020
定位信息类
定义 QUserLocation.h:16
用户定位图标自定义样式类
定义 QUserLocationPresentation.h:74
定义了地图的某一部份的数据结构
定义 QGeometry.h:31
平面投影矩形结构定义
定义 QGeometry.h:92