9 #import <UIKit/UIKit.h>
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"
24 typedef NS_ENUM(NSInteger, QUserTrackingMode)
26 QUserTrackingModeNone = 0,
27 QUserTrackingModeFollow = 1,
28 QUserTrackingModeFollowWithHeading = 2
31 typedef NS_ENUM(NSUInteger, QMapLogoAnchor)
33 QMapLogoAnchorRightBottom = 0,
34 QMapLogoAnchorLeftBottom,
35 QMapLogoAnchorLeftTop,
36 QMapLogoAnchorRightTop,
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)setMapViewRenderWhenDetachedFromWindowEnabled:(BOOL)enabled;
171 - (void)setMapViewRenderWhenAppInactiveEnabled:(BOOL)enabled;
176 - (void)setCenterOffsetY:(
float)offset __attribute__ ((deprecated("use - (
void)setCenterOffsetV2:(CGPoint)offset animated:(BOOL)animated instead")));
181 - (void)setCenterOffset:(CGPoint)offset __attribute__ ((deprecated("use - (
void)setCenterOffsetV2:(CGPoint)offset animated:(BOOL)animated instead")));
189 - (void)setCenterOffset:(CGPoint)offset animated:(BOOL)animated __attribute__ ((deprecated("use - (
void)setCenterOffsetV2:(CGPoint)offset animated:(BOOL)animated instead")));
202 - (void)setCenterOffsetV2:(CGPoint)offset animated:(BOOL)animated;
209 - (void)setLogoOffset:(CGPoint)offset DEPRECATED_ATTRIBUTE;
217 - (void)setLogoMargin:(CGPoint)margin anchor:(QMapLogoAnchor)anchor;
224 - (void)setLogoScale:(CGFloat)scale;
242 - (void)setScaleViewOffset:(CGPoint)offset;
258 - (void) setScaleViewFadeEnable:(BOOL)enable;
265 - (void)setRoadEventVisible:(BOOL)visible DEPRECATED_ATTRIBUTE;
272 - (void)setBuildingBlackList:(
QMapRect*)noBuildingList count:(
int)count;
285 - (void)setGLMapDefaultGroundColor:(UIColor *)defaultColor;
287 #pragma mark - MapStatus
300 - (void)setCenterCoordinate:(CLLocationCoordinate2D)coordinate animated:(BOOL)animated;
323 - (void)setMinZoomLevel:(CGFloat)minZoomLevel maxZoomLevel:(CGFloat)maxZoomLevel;
331 - (void)setZoomLevel:(CGFloat)zoomLevel animated:(BOOL)animated;
344 - (void)setRotation:(CGFloat)rotation animated:(BOOL)animated;
355 - (void)enableAutoMaxOverlooking:(BOOL)enable;
363 - (void)setOverlooking:(CGFloat)overlooking animated:(BOOL)animated;
377 - (void)setVisibleMapRect:(
QMapRect)mapRect animated:(BOOL)animated;
387 - (void)setVisibleMapRect:(
QMapRect)mapRect edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
411 - (void)setRegion:(
QCoordinateRegion)region edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
419 - (
QMapRect)mapRectThatFits:(
QMapRect)mapRect edgePadding:(UIEdgeInsets)insets;
431 containsCalloutView:(BOOL)bContainsCalloutView
432 annotations:(NSArray<
id<
QAnnotation> >*)annotations
433 edgePadding:(UIEdgeInsets)insets;
442 - (CGFloat)zoomLevelThatFits:(
QMapRect)mapRect edgePadding:(UIEdgeInsets)insets outCenterCoordinate:(CLLocationCoordinate2D *)outCoordinate;
450 -(void)setLimitMapRect:(
QMapRect)mapRect mode:(QMapLimitRectFitMode)mode;
469 - (CGPoint)glVertexForCoordinate:(CLLocationCoordinate2D)coordinate;
488 - (double)metersPerPointAtLatitude:(CLLocationDegrees)latitude zoomLevel:(CGFloat)zoomLevel;
490 #pragma mark - Gesture Control
527 #pragma mark - Coordinate Convert
536 - (CGPoint)convertCoordinate:(CLLocationCoordinate2D)coordinate toPointToView:(UIView *)view;
545 - (CLLocationCoordinate2D)convertPoint:(CGPoint)point toCoordinateFromView:(UIView *)view;
635 @property(nonatomic, readonly) CLAccuracyAuthorization accuracyAuthorization
API_AVAILABLE(ios(14));
640 @property(nonatomic, readonly) CLAuthorizationStatus authorizationStatus
API_AVAILABLE(ios(14));
653 - (void)setUserTrackingMode:(QUserTrackingMode)mode animated:(BOOL)animated;
663 - (void)setUserLocationHidden:(BOOL)hidden;
668 - (void)setUserLocationCompassHidden:(BOOL)hidden;
673 - (void)setUserLocationNavigationGravitylineHidden:(BOOL)hidden;
679 - (void)requestTempPrecisedLocation:(
QMapView *)mapView purposeKey:(NSString *)key completion:(
void(^)(NSError * error))completion API_AVAILABLE(ios(14));
712 - (void)addAnnotation:(
id <
QAnnotation>)annotation;
718 - (void)addAnnotations:(NSArray *)annotations;
724 - (void)removeAnnotation:(
id <
QAnnotation>)annotation;
730 - (void)removeAnnotations:(NSArray *)annotations;
744 - (
QAnnotationView *)dequeueReusableAnnotationViewWithIdentifier:(NSString *)identifier;
752 - (void)bringAnnotationToFront:(
id <
QAnnotation>)annotation DEPRECATED_ATTRIBUTE;
759 - (void)selectAnnotation:(
id <
QAnnotation>)annotation animated:(BOOL)animated;
766 - (void)deselectAnnotation:(
id <
QAnnotation>)annotation animated:(BOOL)animated;
774 - (void)showAnnotations:(NSArray<
id<
QAnnotation>> *)annotations edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
779 #pragma mark - Overlay
795 - (void)addOverlay:(
id <
QOverlay>)overlay;
801 - (void)addOverlays:(NSArray<
id <
QOverlay>> *)overlays;
808 - (void)addMultiPolygons:(NSArray <
QPolygon *> *)polygons;
814 - (void)removeOverlay:(
id <
QOverlay>)overlay;
820 - (void)removeOverlays:(NSArray<
id <
QOverlay>> *)overlays;
835 - (void)showOverlays:(NSArray<
id<
QOverlay>> *)overlays edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
843 - (void)showQMarkers:(NSArray<
QMarker *> *)markers edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
848 #pragma mark - CustomLayer
869 #pragma mark - POILayer
879 - (void)addAOILayer:(
QAOILayer *)layer callback:(
void(^)(BOOL success))callback;
885 - (void)removeAOILayer:(
QAOILayer *)layer;
889 #pragma mark - Snapshot
900 - (UIImage *)takeSnapshot __attribute__ ((deprecated("use - (void)takeSnapshotInRect:(CGRect)rect completion:(
void (^)(UIImage *resultImage))completion instead")));
908 - (void)takeSnapshotInRect:(CGRect)rect completion:(
void (^)(UIImage *resultImage))completion;
917 - (void)takeSnapshotInRect:(CGRect)rect timeout:(CFTimeInterval)timeout completion:(
void (^)(UIImage *resultImage))completion;
927 - (void)takeSnapshotInRect:(CGRect)rect timeout:(CFTimeInterval)timeout afterScreenUpdates:(BOOL)afterUpdates completion:(
void (^)(UIImage *resultImage))completion;
931 #pragma mark - QPoiInfo
941 @property (nonatomic, copy) NSString *uid;
946 @property (nonatomic, copy) NSString *name;
951 @property (nonatomic, assign) CLLocationCoordinate2D coordinate;
963 @property (nonatomic, copy) NSString *levelName;
968 @property (nonatomic, copy) NSString *buildingGUID;
973 @property (nonatomic, copy) NSString *buildingName;
986 @property (nonatomic, copy) NSString *source;
991 @property (nonatomic, copy) NSString *eventName;
996 @property (nonatomic, copy) NSString *road;
1001 @property (nonatomic, copy) NSString *detail;
1006 @property (nonatomic, assign) NSTimeInterval startTime;
1011 @property (nonatomic, assign) NSTimeInterval endTime;
1016 @property (nonatomic, assign) NSTimeInterval updateTime;
1030 @property (nonatomic, copy) NSString *parentID;
1055 #pragma mark - QMapViewDelegate
1069 - (void)mapViewAuthenticationDidComplete:(
QMapView *)mapView;
1079 - (void)mapViewAuthentication:(
QMapView *)mapView didFailWithError:(NSError *)error;
1086 - (void)mapViewInitComplete:(
QMapView *)mapView;
1093 - (void)mapViewFirstRenderDidComplete:(
QMapView *)mapView;
1099 - (void)mapViewStatusChangesCompleted:(
QMapView *)mapView;
1107 - (void)mapViewDidFailLoadingMap:(
QMapView *)mapView withError:(NSError *)error;
1115 - (void)mapView:(
QMapView *)mapView regionWillChangeAnimated:(BOOL)animated gesture:(BOOL)bGesture;
1121 - (void)mapViewRegionChange:(
QMapView *)mapView;
1129 - (void)mapView:(
QMapView *)mapView regionDidChangeAnimated:(BOOL)animated gesture:(BOOL)bGesture;
1137 - (void)mapView:(
QMapView *)mapView willMoveAnimated:(BOOL)animated gesture:(BOOL)bGesture;
1145 - (void)mapView:(
QMapView *)mapView didMoveAnimated:(BOOL)animated gesture:(BOOL)bGesture;
1153 - (void)mapView:(
QMapView *)mapView willZoomAnimated:(BOOL)animated gesture:(BOOL)bGesture;
1161 - (void)mapView:(
QMapView *)mapView didZoomAnimated:(BOOL)animated gesture:(BOOL)bGesture;
1169 - (void)mapView:(
QMapView *)mapView scaleViewChanged:(CGFloat)unitLength;
1176 - (void)mapView:(
QMapView *)mapView gestureDidTrigger:(QGestureType)gestureType;
1185 - (void)mapView:(
QMapView *)mapView gestureDidEnd:(QGestureType)gestureType;
1191 - (void)mapViewDrawFrame:(
QMapView *)mapView;
1197 - (void)mapUpdateFinished:(
QMapView *)mapView;
1204 - (void)mapView:(
QMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate;
1218 - (void)mapView:(
QMapView *)mapView didTapOverlay:(
id<
QOverlay>)overlay __attribute__ ((deprecated("use - (
void)mapView:(
QMapView *)mapView didTapOverlay:(
id<
QOverlay>)overlay coordinate:(CLLocationCoordinate2D)coordinate instead")));
1228 - (void)mapView:(
QMapView *)mapView didTapOverlay:(
id<
QOverlay>)overlay coordinate:(CLLocationCoordinate2D)coordinate;
1235 - (void)mapView:(
QMapView *)mapView didTapMarkerOverlayCallout:(
QMarker *)markerOverlay;
1245 - (void)mapView:(
QMapView *)mapView markerOverlay:(
QMarker *)markerOverlay didChangeDragState:(QMarkerViewDragState)newState
1246 fromOldState:(QMarkerViewDragState)oldState;
1253 - (void)mapView:(
QMapView *)mapView didTapMyLocation:(CLLocationCoordinate2D)location;
1305 - (void)mapView:(
QMapView *)mapView annotationView:(
QAnnotationView *)view collidedViewsDidShow:(NSArray <UIView *> *)shownViews;
1313 - (void)mapView:(
QMapView *)mapView annotationView:(
QAnnotationView *)view collidedViewsDidHide:(NSArray <UIView *> *)hiddenViews;
1323 - (void)mapView:(
QMapView *)mapView annotationView:(
QAnnotationView *)view didChangeDragState:(QAnnotationViewDragState)newState
1324 fromOldState:(QAnnotationViewDragState)oldState;
1333 - (void)mapView:(
QMapView *)mapView annotationView:(
QAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control;
1355 - (void)mapView:(
QMapView *)mapView didAddOverlayViews:(NSArray *)overlayViews;
1361 - (void)mapViewWillStartLocatingUser:(
QMapView *)mapView;
1367 - (void)mapViewDidStopLocatingUser:(
QMapView *)mapView;
1375 - (void)mapView:(
QMapView *)mapView didUpdateUserLocation:(
QUserLocation *)userLocation fromHeading:(BOOL)fromHeading;
1381 - (void)mapView:(
QMapView *)mapView didFailToLocateUserWithError:(NSError *)error;
1389 - (void)mapView:(
QMapView *)mapView didChangeUserTrackingMode:(QUserTrackingMode)mode animated:(BOOL)animated;
1395 - (void)locationManagerDidChangeAuthorization:(
QMapView *)mapView;
1401 - (void)mapViewLogger:(
QMapView *)mapView logMessage:(NSString *)text;