├── .gitignore ├── .travis.yml ├── LICENSE ├── MovingAnnotationSource ├── CACoordLayer.h ├── CACoordLayer.m ├── MovingAnnotationView.h ├── MovingAnnotationView.m ├── TracingPoint.h ├── TracingPoint.m ├── Util.h └── Util.m ├── Podfile ├── Podfile.lock ├── Pods ├── AMap3DMap │ └── MAMapKit.framework │ │ ├── 4.6.0.269e63a.3DMap752 │ │ ├── AMap.bundle │ │ ├── AMap3D.bundle │ │ │ ├── 3d_sky_1.data │ │ │ ├── 3d_sky_2.data │ │ │ ├── bktile_1.data │ │ │ ├── bktile_2.data │ │ │ ├── dash.data │ │ │ ├── dash_cd.data │ │ │ ├── dash_tq.data │ │ │ ├── icons_1_7_1444880368.data │ │ │ ├── icons_2_7_1445580283.data │ │ │ ├── icons_3_7_1444880372.data │ │ │ ├── icons_50_7_1444880375.data │ │ │ ├── lineround.data │ │ │ ├── roadarrow.data │ │ │ ├── style_1_7_1445219169.data │ │ │ ├── style_3_7_1445827513.data │ │ │ ├── style_4_7_1445391691.data │ │ │ ├── style_50_7_1445670996.data │ │ │ ├── style_5_7_1445391719.data │ │ │ ├── style_6_7_1445325996.data │ │ │ ├── tbl.data │ │ │ ├── tbl_l.data │ │ │ ├── tbl_n.data │ │ │ ├── tgl.data │ │ │ ├── tgl_l.data │ │ │ ├── tgl_n.data │ │ │ ├── tnl.data │ │ │ ├── tnl_l.data │ │ │ ├── tnl_n.data │ │ │ ├── trl.data │ │ │ ├── trl_l.data │ │ │ ├── trl_n.data │ │ │ ├── tyl.data │ │ │ ├── tyl_l.data │ │ │ └── tyl_n.data │ │ ├── Bundle3D.plist │ │ ├── images │ │ │ ├── calloutArrowMask.png │ │ │ ├── calloutArrowMask@2x.png │ │ │ ├── greenPin.png │ │ │ ├── greenPin@2x.png │ │ │ ├── greenPin@3x.png │ │ │ ├── greenPin_lift.png │ │ │ ├── greenPin_lift@2x.png │ │ │ ├── greenPin_lift@3x.png │ │ │ ├── lineDashTexture.png │ │ │ ├── lineDashTextureThin.png │ │ │ ├── lineTexture.png │ │ │ ├── lineTextureThin.png │ │ │ ├── pin_shadow.png │ │ │ ├── pin_shadow@2x.png │ │ │ ├── pin_shadow@3x.png │ │ │ ├── purplePin.png │ │ │ ├── purplePin@2x.png │ │ │ ├── purplePin@3x.png │ │ │ ├── purplePin_lift.png │ │ │ ├── purplePin_lift@2x.png │ │ │ ├── purplePin_lift@3x.png │ │ │ ├── redPin.png │ │ │ ├── redPin@2x.png │ │ │ ├── redPin@3x.png │ │ │ ├── redPin_lift.png │ │ │ ├── redPin_lift@2x.png │ │ │ ├── redPin_lift@3x.png │ │ │ ├── select_.png │ │ │ ├── select_@2x.png │ │ │ └── select_@3x.png │ │ └── offline │ │ │ └── offlinePackage.plist │ │ ├── Headers │ │ ├── MAAnimatedAnnotation.h │ │ ├── MAAnnotation.h │ │ ├── MAAnnotationMoveAnimation.h │ │ ├── MAAnnotationView.h │ │ ├── MACircle.h │ │ ├── MACircleRenderer.h │ │ ├── MAConfig.h │ │ ├── MAGeodesicPolyline.h │ │ ├── MAGeometry.h │ │ ├── MAGroundOverlay.h │ │ ├── MAGroundOverlayRenderer.h │ │ ├── MAHeatMapTileOverlay.h │ │ ├── MAIndoorInfo.h │ │ ├── MALineDrawType.h │ │ ├── MAMapKit.h │ │ ├── MAMapStatus.h │ │ ├── MAMapVersion.h │ │ ├── MAMapView.h │ │ ├── MAMultiColoredPolylineRenderer.h │ │ ├── MAMultiPoint.h │ │ ├── MAMultiPolyline.h │ │ ├── MAMultiTexturePolylineRenderer.h │ │ ├── MAOfflineCity.h │ │ ├── MAOfflineItem.h │ │ ├── MAOfflineItemCommonCity.h │ │ ├── MAOfflineItemMunicipality.h │ │ ├── MAOfflineItemNationWide.h │ │ ├── MAOfflineMap.h │ │ ├── MAOfflineProvince.h │ │ ├── MAOverlay.h │ │ ├── MAOverlayPathRenderer.h │ │ ├── MAOverlayRenderer.h │ │ ├── MAPinAnnotationView.h │ │ ├── MAPointAnnotation.h │ │ ├── MAPolygon.h │ │ ├── MAPolygonRenderer.h │ │ ├── MAPolyline.h │ │ ├── MAPolylineRenderer.h │ │ ├── MAShape.h │ │ ├── MATileOverlay.h │ │ ├── MATileOverlayRenderer.h │ │ ├── MATouchPoi.h │ │ ├── MATraceLocation.h │ │ ├── MATraceManager.h │ │ └── MAUserLocation.h │ │ └── MAMapKit ├── AMapFoundation │ └── AMapFoundationKit.framework │ │ ├── 1.3.1.4f053bd │ │ ├── AMapFoundationKit │ │ └── Headers │ │ ├── AMapFoundationKit.h │ │ ├── AMapFoundationVersion.h │ │ ├── AMapServices.h │ │ ├── AMapURLSearch.h │ │ ├── AMapURLSearchConfig.h │ │ ├── AMapURLSearchType.h │ │ └── AMapUtility.h ├── Headers │ └── Public │ │ ├── AMap3DMap │ │ └── MAMapKit │ │ │ ├── MAAnimatedAnnotation.h │ │ │ ├── MAAnnotation.h │ │ │ ├── MAAnnotationMoveAnimation.h │ │ │ ├── MAAnnotationView.h │ │ │ ├── MACircle.h │ │ │ ├── MACircleRenderer.h │ │ │ ├── MAConfig.h │ │ │ ├── MAGeodesicPolyline.h │ │ │ ├── MAGeometry.h │ │ │ ├── MAGroundOverlay.h │ │ │ ├── MAGroundOverlayRenderer.h │ │ │ ├── MAHeatMapTileOverlay.h │ │ │ ├── MAIndoorInfo.h │ │ │ ├── MALineDrawType.h │ │ │ ├── MAMapKit.h │ │ │ ├── MAMapStatus.h │ │ │ ├── MAMapVersion.h │ │ │ ├── MAMapView.h │ │ │ ├── MAMultiColoredPolylineRenderer.h │ │ │ ├── MAMultiPoint.h │ │ │ ├── MAMultiPolyline.h │ │ │ ├── MAMultiTexturePolylineRenderer.h │ │ │ ├── MAOfflineCity.h │ │ │ ├── MAOfflineItem.h │ │ │ ├── MAOfflineItemCommonCity.h │ │ │ ├── MAOfflineItemMunicipality.h │ │ │ ├── MAOfflineItemNationWide.h │ │ │ ├── MAOfflineMap.h │ │ │ ├── MAOfflineProvince.h │ │ │ ├── MAOverlay.h │ │ │ ├── MAOverlayPathRenderer.h │ │ │ ├── MAOverlayRenderer.h │ │ │ ├── MAPinAnnotationView.h │ │ │ ├── MAPointAnnotation.h │ │ │ ├── MAPolygon.h │ │ │ ├── MAPolygonRenderer.h │ │ │ ├── MAPolyline.h │ │ │ ├── MAPolylineRenderer.h │ │ │ ├── MAShape.h │ │ │ ├── MATileOverlay.h │ │ │ ├── MATileOverlayRenderer.h │ │ │ ├── MATouchPoi.h │ │ │ ├── MATraceLocation.h │ │ │ ├── MATraceManager.h │ │ │ └── MAUserLocation.h │ │ └── AMapFoundation │ │ └── AMapFoundationKit │ │ ├── AMapFoundationKit.h │ │ ├── AMapFoundationVersion.h │ │ ├── AMapServices.h │ │ ├── AMapURLSearch.h │ │ ├── AMapURLSearchConfig.h │ │ ├── AMapURLSearchType.h │ │ └── AMapUtility.h ├── Manifest.lock ├── Pods.xcodeproj │ └── project.pbxproj └── Target Support Files │ └── Pods-test │ ├── Pods-test-acknowledgements.markdown │ ├── Pods-test-acknowledgements.plist │ ├── Pods-test-dummy.m │ ├── Pods-test-frameworks.sh │ ├── Pods-test-resources.sh │ ├── Pods-test.debug.xcconfig │ └── Pods-test.release.xcconfig ├── README.md ├── ios_movingAnnotation_demo_gif.gif ├── test.xcodeproj ├── project.pbxproj └── project.xcworkspace │ └── contents.xcworkspacedata ├── test.xcworkspace └── contents.xcworkspacedata ├── test ├── AppDelegate.h ├── AppDelegate.m ├── Base.lproj │ └── Main.storyboard ├── Images.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── LaunchImage.launchimage │ │ └── Contents.json ├── MovingAnnotationSource │ ├── CACoordLayer.h │ ├── CACoordLayer.m │ ├── MovingAnnotationView.h │ ├── MovingAnnotationView.m │ ├── TracingPoint.h │ ├── TracingPoint.m │ ├── Util.h │ └── Util.m ├── ViewController.h ├── ViewController.m ├── en.lproj │ └── InfoPlist.strings ├── main.m ├── test-Info.plist ├── test-Prefix.pch ├── trackingPoints.png ├── userPosition.png └── userPosition@2x.png └── testTests ├── en.lproj └── InfoPlist.strings ├── testTests-Info.plist └── testTests.m /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | build/ 4 | *.pbxuser 5 | !default.pbxuser 6 | *.mode1v3 7 | !default.mode1v3 8 | *.mode2v3 9 | !default.mode2v3 10 | *.perspectivev3 11 | !default.perspectivev3 12 | xcuserdata 13 | *.xccheckout 14 | *.moved-aside 15 | DerivedData 16 | *.hmap 17 | *.ipa 18 | *.xcuserstate 19 | 20 | # CocoaPods 21 | # 22 | # We recommend against adding the Pods directory to your .gitignore. However 23 | # you should judge for yourself, the pros and cons are mentioned at: 24 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 25 | # 26 | #Pods/ 27 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: objective-c 2 | xcode_sdk: iphonesimulator 3 | xcode_workspace: test.xcworkspace # path to your xcodeproj folder 4 | xcode_scheme: test 5 | podfile: Podfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 cysgit 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /MovingAnnotationSource/CACoordLayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // CACoordLayer.h 3 | // test 4 | // 5 | // Created by yi chen on 14-9-3. 6 | // Copyright (c) 2014年 yi chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CACoordLayer : CALayer 12 | 13 | @property (nonatomic, assign) MAMapView * mapView; 14 | 15 | @property (nonatomic) double mapx; 16 | 17 | @property (nonatomic) double mapy; 18 | 19 | @property (nonatomic) CGPoint centerOffset; 20 | 21 | @end 22 | 23 | 24 | @interface MAMapView(Additional) 25 | 26 | - (CGPoint)pointForMapPoint:(MAMapPoint)mapPoint; 27 | 28 | @end -------------------------------------------------------------------------------- /MovingAnnotationSource/CACoordLayer.m: -------------------------------------------------------------------------------- 1 | // 2 | // CACoordLayer.m 3 | // test 4 | // 5 | // Created by yi chen on 14-9-3. 6 | // Copyright (c) 2014年 yi chen. All rights reserved. 7 | // 8 | 9 | #import "CACoordLayer.h" 10 | 11 | @implementation CACoordLayer 12 | 13 | @dynamic mapx; 14 | @dynamic mapy; 15 | 16 | - (id)initWithLayer:(id)layer 17 | { 18 | if ((self = [super initWithLayer:layer])) 19 | { 20 | if ([layer isKindOfClass:[CACoordLayer class]]) 21 | { 22 | CACoordLayer * input = layer; 23 | self.mapx = input.mapx; 24 | self.mapy = input.mapy; 25 | [self setNeedsDisplay]; 26 | } 27 | } 28 | return self; 29 | } 30 | 31 | + (BOOL)needsDisplayForKey:(NSString *)key 32 | { 33 | if ([@"mapx" isEqualToString:key]) 34 | { 35 | return YES; 36 | } 37 | if ([@"mapy" isEqualToString:key]) 38 | { 39 | return YES; 40 | } 41 | 42 | return [super needsDisplayForKey:key]; 43 | } 44 | 45 | - (void)display 46 | { 47 | CACoordLayer * layer = [self presentationLayer]; 48 | MAMapPoint mappoint = MAMapPointMake(layer.mapx, layer.mapy); 49 | 50 | CGPoint center = [self.mapView pointForMapPoint:mappoint]; 51 | center.x += self.centerOffset.x; 52 | center.y += self.centerOffset.y; 53 | 54 | self.position = center; 55 | } 56 | 57 | @end 58 | 59 | -------------------------------------------------------------------------------- /MovingAnnotationSource/MovingAnnotationView.h: -------------------------------------------------------------------------------- 1 | // 2 | // MovingAnnotationView.h 3 | // test 4 | // 5 | // Created by yi chen on 14-9-3. 6 | // Copyright (c) 2014年 yi chen. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "TracingPoint.h" 11 | 12 | @interface MovingAnnotationView : MAPinAnnotationView 13 | 14 | /*! 15 | @brief 添加动画 16 | @param points 轨迹点串,每个轨迹点为TracingPoint类型 17 | @param duration 动画时长,包括从上一个动画的终止点过渡到新增动画起始点的时间 18 | */ 19 | - (void)addTrackingAnimationForPoints:(NSArray *)points duration:(CFTimeInterval)duration; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /MovingAnnotationSource/MovingAnnotationView.m: -------------------------------------------------------------------------------- 1 | 2 | // 3 | // MovingAnnotationView.m 4 | // test 5 | // 6 | // Created by yi chen on 14-9-3. 7 | // Copyright (c) 2014年 yi chen. All rights reserved. 8 | // 9 | 10 | #import "MovingAnnotationView.h" 11 | #import "CACoordLayer.h" 12 | #import "Util.h" 13 | 14 | #define TurnAnimationDuration 0.1 15 | 16 | #define MapXAnimationKey @"mapx" 17 | #define MapYAnimationKey @"mapy" 18 | #define RotationAnimationKey @"transform.rotation.z" 19 | 20 | @interface MovingAnnotationView() 21 | 22 | @property (nonatomic, strong) NSMutableArray * animationList; 23 | 24 | @end 25 | 26 | @implementation MovingAnnotationView 27 | { 28 | MAMapPoint currDestination; 29 | MAMapPoint lastDestination; 30 | 31 | CLLocationDirection lastDirection; 32 | 33 | BOOL isAnimatingX, isAnimatingY; 34 | } 35 | 36 | #pragma mark - Animation 37 | + (Class)layerClass 38 | { 39 | return [CACoordLayer class]; 40 | } 41 | 42 | - (void)addTrackingAnimationForPoints:(NSArray *)points duration:(CFTimeInterval)duration 43 | { 44 | if (![points count]) 45 | { 46 | return; 47 | } 48 | 49 | CACoordLayer * mylayer = ((CACoordLayer *)self.layer); 50 | 51 | //preparing 52 | NSUInteger num = 2*[points count] + 1; 53 | NSMutableArray * xvalues = [NSMutableArray arrayWithCapacity:num]; 54 | NSMutableArray *yvalues = [NSMutableArray arrayWithCapacity:num]; 55 | NSMutableArray *rvalues = [NSMutableArray arrayWithCapacity:num]; 56 | 57 | NSMutableArray * times = [NSMutableArray arrayWithCapacity:num]; 58 | NSMutableArray * rtimes = [NSMutableArray arrayWithCapacity:num]; 59 | 60 | double sumOfDistance = 0.f; 61 | double * dis = malloc(([points count]) * sizeof(double)); 62 | 63 | //the first point is set by the destination of last animation. 64 | MAMapPoint preLoc; 65 | CLLocationDirection preDir; 66 | if (!([self.animationList count] > 0 || isAnimatingX || isAnimatingY)) 67 | { 68 | lastDestination = MAMapPointMake(mylayer.mapx, mylayer.mapy); 69 | } 70 | preLoc = lastDestination; 71 | 72 | MAMapPoint firstPoint = MAMapPointForCoordinate(((TracingPoint *)[points firstObject]).coordinate); 73 | double transitDir = [Util calculateCourseFromMapPoint:preLoc to:firstPoint]; 74 | preDir = [Util fixNewDirection:transitDir basedOnOldDirection:lastDirection]; 75 | 76 | [xvalues addObject:@(preLoc.x)]; 77 | [yvalues addObject:@(preLoc.y)]; 78 | [times addObject:@(0.f)]; 79 | 80 | [rvalues addObject:@(preDir * DegToRad)]; 81 | [rtimes addObject:@(0.f)]; 82 | 83 | //set the animation points. 84 | for (int i = 0; i<[points count]; i++) 85 | { 86 | TracingPoint * tp = points[i]; 87 | 88 | //position 89 | MAMapPoint p = MAMapPointForCoordinate(tp.coordinate); 90 | [xvalues addObjectsFromArray:@[@(p.x), @(p.x)]];//stop for turn 91 | [yvalues addObjectsFromArray:@[@(p.y), @(p.y)]]; 92 | 93 | //angle 94 | double currDir = [Util fixNewDirection:tp.course basedOnOldDirection:preDir]; 95 | [rvalues addObjectsFromArray:@[@(preDir * DegToRad), @(currDir * DegToRad)]]; 96 | 97 | //distance 98 | dis[i] = MAMetersBetweenMapPoints(p, preLoc); 99 | sumOfDistance = sumOfDistance + dis[i]; 100 | dis[i] = sumOfDistance; 101 | 102 | //record pre 103 | preLoc = p; 104 | preDir = currDir; 105 | } 106 | 107 | //set the animation times. 108 | double preTime = 0.f; 109 | double turnDuration = TurnAnimationDuration/duration; 110 | for (int i = 0; i<[points count]; i++) 111 | { 112 | double turnEnd = dis[i]/sumOfDistance; 113 | double turnStart = (preTime > turnEnd - turnDuration) ? (turnEnd + preTime) * 0.5 : turnEnd - turnDuration; 114 | 115 | [times addObjectsFromArray:@[@(turnStart), @(turnEnd)]]; 116 | [rtimes addObjectsFromArray:@[@(turnStart), @(turnEnd)]]; 117 | 118 | preTime = turnEnd; 119 | } 120 | 121 | //record the destination. 122 | TracingPoint * last = [points lastObject]; 123 | lastDestination = MAMapPointForCoordinate(last.coordinate); 124 | lastDirection = last.course; 125 | 126 | free(dis); 127 | 128 | // add animation. 129 | CAKeyframeAnimation *xanimation = [CAKeyframeAnimation animationWithKeyPath:MapXAnimationKey]; 130 | xanimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 131 | xanimation.values = xvalues; 132 | xanimation.keyTimes = times; 133 | xanimation.duration = duration; 134 | xanimation.delegate = self; 135 | xanimation.fillMode = kCAFillModeForwards; 136 | 137 | CAKeyframeAnimation *yanimation = [CAKeyframeAnimation animationWithKeyPath:MapYAnimationKey]; 138 | yanimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 139 | yanimation.values = yvalues; 140 | yanimation.keyTimes = times; 141 | yanimation.duration = duration; 142 | yanimation.delegate = self; 143 | yanimation.fillMode = kCAFillModeForwards; 144 | 145 | CAKeyframeAnimation *ranimation = [CAKeyframeAnimation animationWithKeyPath:RotationAnimationKey]; 146 | ranimation.values = rvalues; 147 | ranimation.keyTimes = rtimes; 148 | ranimation.duration = duration; 149 | ranimation.delegate = self; 150 | ranimation.fillMode = kCAFillModeForwards; 151 | 152 | [self pushBackAnimation:xanimation]; 153 | [self pushBackAnimation:yanimation]; 154 | [self pushBackAnimation:ranimation]; 155 | 156 | mylayer.mapView = [self mapView]; 157 | 158 | } 159 | 160 | - (void)pushBackAnimation:(CAPropertyAnimation *)anim 161 | { 162 | [self.animationList addObject:anim]; 163 | 164 | if ([self.layer animationForKey:anim.keyPath] == nil) 165 | { 166 | [self popFrontAnimationForKey:anim.keyPath]; 167 | } 168 | } 169 | 170 | - (void)popFrontAnimationForKey:(NSString *)key 171 | { 172 | [self.animationList enumerateObjectsUsingBlock:^(CAKeyframeAnimation * obj, NSUInteger idx, BOOL *stop) 173 | { 174 | if ([obj.keyPath isEqualToString:key]) 175 | { 176 | [self.layer addAnimation:obj forKey:obj.keyPath]; 177 | [self.animationList removeObject:obj]; 178 | 179 | if ([key isEqualToString:MapXAnimationKey]) 180 | { 181 | isAnimatingX = YES; 182 | } 183 | else if([key isEqualToString:MapYAnimationKey]) 184 | { 185 | isAnimatingY = YES; 186 | } 187 | else if([key isEqualToString:RotationAnimationKey]) 188 | { 189 | double endDir = ((NSNumber *)[obj.values lastObject]).doubleValue; 190 | 191 | self.layer.transform = CATransform3DMakeRotation(endDir, 0, 0, 1); 192 | //动画结束时状态不会恢复到起始状态。 193 | } 194 | *stop = YES; 195 | } 196 | }]; 197 | } 198 | 199 | 200 | #pragma mark - Animation Delegate 201 | 202 | - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag 203 | { 204 | if ([anim isKindOfClass:[CAKeyframeAnimation class]]) 205 | { 206 | CAKeyframeAnimation * keyAnim = ((CAKeyframeAnimation *)anim); 207 | if ([keyAnim.keyPath isEqualToString:MapXAnimationKey]) 208 | { 209 | isAnimatingX = NO; 210 | 211 | CACoordLayer * mylayer = ((CACoordLayer *)self.layer); 212 | mylayer.mapx = ((NSNumber *)[keyAnim.values lastObject]).doubleValue; 213 | currDestination.x = mylayer.mapx; 214 | 215 | [self updateAnnotationCoordinate]; 216 | 217 | [self popFrontAnimationForKey:MapXAnimationKey]; 218 | } 219 | else if ([keyAnim.keyPath isEqualToString:MapYAnimationKey]) 220 | { 221 | isAnimatingY = NO; 222 | 223 | CACoordLayer * mylayer = ((CACoordLayer *)self.layer); 224 | mylayer.mapy = ((NSNumber *)[keyAnim.values lastObject]).doubleValue; 225 | currDestination.y = mylayer.mapy; 226 | [self updateAnnotationCoordinate]; 227 | 228 | [self popFrontAnimationForKey:MapYAnimationKey]; 229 | } 230 | else if([keyAnim.keyPath isEqualToString:RotationAnimationKey]) 231 | { 232 | [self popFrontAnimationForKey:RotationAnimationKey]; 233 | } 234 | 235 | } 236 | } 237 | 238 | - (void)updateAnnotationCoordinate 239 | { 240 | if (! (isAnimatingX || isAnimatingY) ) 241 | { 242 | self.annotation.coordinate = MACoordinateForMapPoint(currDestination); 243 | } 244 | } 245 | 246 | #pragma mark - Property 247 | 248 | - (NSMutableArray *)animationList 249 | { 250 | if (_animationList == nil) 251 | { 252 | _animationList = [NSMutableArray array]; 253 | } 254 | return _animationList; 255 | } 256 | 257 | - (MAMapView *)mapView 258 | { 259 | return (MAMapView*)(self.superview.superview); 260 | } 261 | 262 | #pragma mark - Override 263 | 264 | - (void)setCenterOffset:(CGPoint)centerOffset 265 | { 266 | CACoordLayer * mylayer = ((CACoordLayer *)self.layer); 267 | mylayer.centerOffset = centerOffset; 268 | [super setCenterOffset:centerOffset]; 269 | } 270 | 271 | #pragma mark - Life Cycle 272 | 273 | - (id)initWithAnnotation:(id)annotation reuseIdentifier:(NSString *)reuseIdentifier 274 | { 275 | self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier]; 276 | if (self) 277 | { 278 | CACoordLayer * mylayer = ((CACoordLayer *)self.layer); 279 | MAMapPoint mapPoint = MAMapPointForCoordinate(annotation.coordinate); 280 | mylayer.mapx = mapPoint.x; 281 | mylayer.mapy = mapPoint.y; 282 | 283 | mylayer.centerOffset = self.centerOffset; 284 | 285 | isAnimatingX = NO; 286 | isAnimatingY = NO; 287 | } 288 | return self; 289 | } 290 | 291 | 292 | @end 293 | -------------------------------------------------------------------------------- /MovingAnnotationSource/TracingPoint.h: -------------------------------------------------------------------------------- 1 | // 2 | // TracingPoint.h 3 | // test 4 | // 5 | // Created by yi chen on 3/19/15. 6 | // Copyright (c) 2015 yi chen. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface TracingPoint : NSObject 13 | 14 | /*! 15 | @brief 轨迹经纬度 16 | */ 17 | @property (nonatomic) CLLocationCoordinate2D coordinate; 18 | 19 | /*! 20 | @brief 方向,有效范围0~359.9度 21 | */ 22 | @property (nonatomic) CLLocationDirection course; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /MovingAnnotationSource/TracingPoint.m: -------------------------------------------------------------------------------- 1 | // 2 | // TracingPoint.m 3 | // test 4 | // 5 | // Created by yi chen on 3/19/15. 6 | // Copyright (c) 2015 yi chen. All rights reserved. 7 | // 8 | 9 | #import "TracingPoint.h" 10 | 11 | @implementation TracingPoint 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /MovingAnnotationSource/Util.h: -------------------------------------------------------------------------------- 1 | // 2 | // Util.h 3 | // test 4 | // 5 | // Created by yi chen on 3/24/15. 6 | // Copyright (c) 2015 yi chen. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | #define RadToDeg 57.2957795130823228646477218717336654663086 //180.f / M_PI 13 | #define DegToRad 0.0174532925199432954743716805978692718782 // M_PI / 180.f 14 | 15 | @interface Util : NSObject 16 | 17 | + (CLLocationDirection)calculateCourseFromMapPoint:(MAMapPoint)point1 to:(MAMapPoint)point2; 18 | 19 | + (CLLocationDirection)calculateCourseFromCoordinate:(CLLocationCoordinate2D)coord1 to:(CLLocationCoordinate2D)coord2; 20 | + (CLLocationDirection)fixNewDirection:(CLLocationDirection)newDir basedOnOldDirection:(CLLocationDirection)oldDir; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /MovingAnnotationSource/Util.m: -------------------------------------------------------------------------------- 1 | // 2 | // Util.m 3 | // test 4 | // 5 | // Created by yi chen on 3/24/15. 6 | // Copyright (c) 2015 yi chen. All rights reserved. 7 | // 8 | 9 | #import "Util.h" 10 | 11 | @implementation Util 12 | 13 | + (CLLocationDirection)calculateCourseFromMapPoint:(MAMapPoint)p1 to:(MAMapPoint)p2 14 | { 15 | //20级坐标y轴向下,需要反过来。 16 | MAMapPoint dp = MAMapPointMake(p2.x - p1.x, p1.y - p2.y); 17 | 18 | if (dp.y == 0) 19 | { 20 | return dp.x < 0? 270.f:0.f; 21 | } 22 | 23 | double dir = atan(dp.x/dp.y) * 180.f / M_PI; 24 | 25 | if (dp.y > 0) 26 | { 27 | if (dp.x < 0) 28 | { 29 | dir = dir + 360.f; 30 | } 31 | 32 | }else 33 | { 34 | dir = dir + 180.f; 35 | } 36 | 37 | return dir; 38 | } 39 | 40 | + (CLLocationDirection)calculateCourseFromCoordinate:(CLLocationCoordinate2D)coord1 to:(CLLocationCoordinate2D)coord2 41 | { 42 | MAMapPoint p1 = MAMapPointForCoordinate(coord1); 43 | MAMapPoint p2 = MAMapPointForCoordinate(coord2); 44 | 45 | return [self calculateCourseFromMapPoint:p1 to:p2]; 46 | } 47 | 48 | + (CLLocationDirection)fixNewDirection:(CLLocationDirection)newDir basedOnOldDirection:(CLLocationDirection)oldDir 49 | { 50 | //the gap between newDir and oldDir would not exceed 180.f degrees 51 | CLLocationDirection turn = newDir - oldDir; 52 | if(turn > 180.f) 53 | { 54 | return newDir - 360.f; 55 | } 56 | else if (turn < -180.f) 57 | { 58 | return newDir + 360.f; 59 | } 60 | else 61 | { 62 | return newDir; 63 | } 64 | 65 | } 66 | 67 | @end 68 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment this line to define a global platform for your project 2 | # platform :ios, "7.0" 3 | 4 | target "test" do 5 | 6 | pod 'AMap3DMap' 7 | 8 | end 9 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AMap3DMap (4.6.0): 3 | - AMapFoundation (~> 1.3) 4 | - AMapFoundation (1.3.1) 5 | 6 | DEPENDENCIES: 7 | - AMap3DMap 8 | 9 | SPEC CHECKSUMS: 10 | AMap3DMap: 0b1263f9e58d6f96df145c9d5012987aa13f67d9 11 | AMapFoundation: 636834a27cd003084f56b4232f3031e6a44c7e7e 12 | 13 | PODFILE CHECKSUM: 253b29689f048ea387df49c136fa2c3984e992f4 14 | 15 | COCOAPODS: 1.2.0 16 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/4.6.0.269e63a.3DMap752: -------------------------------------------------------------------------------- 1 | 4.6.0.269e63a.3DMap752 2 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/3d_sky_1.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/3d_sky_1.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/3d_sky_2.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/3d_sky_2.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/bktile_1.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/bktile_1.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/bktile_2.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/bktile_2.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/dash.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/dash.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/dash_cd.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/dash_cd.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/dash_tq.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/dash_tq.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/icons_1_7_1444880368.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/icons_1_7_1444880368.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/icons_2_7_1445580283.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/icons_2_7_1445580283.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/icons_3_7_1444880372.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/icons_3_7_1444880372.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/icons_50_7_1444880375.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/icons_50_7_1444880375.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/lineround.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/lineround.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/roadarrow.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/roadarrow.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/style_1_7_1445219169.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/style_1_7_1445219169.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/style_3_7_1445827513.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/style_3_7_1445827513.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/style_4_7_1445391691.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/style_4_7_1445391691.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/style_50_7_1445670996.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/style_50_7_1445670996.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/style_5_7_1445391719.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/style_5_7_1445391719.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/style_6_7_1445325996.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/style_6_7_1445325996.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tbl.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tbl.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tbl_l.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tbl_l.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tbl_n.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tbl_n.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tgl.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tgl.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tgl_l.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tgl_l.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tgl_n.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tgl_n.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tnl.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tnl.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tnl_l.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tnl_l.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tnl_n.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tnl_n.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/trl.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/trl.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/trl_l.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/trl_l.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/trl_n.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/trl_n.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tyl.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tyl.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tyl_l.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tyl_l.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tyl_n.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/AMap3D.bundle/tyl_n.data -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/Bundle3D.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Style 6 | 7 | style-day 8 | style_1_7_1445219169 9 | style-night 10 | style_5_7_1445391719 11 | style-satellite 12 | style_3_7_1445827513 13 | style-navicar-day 14 | style_4_7_1445391691 15 | style-navicar-night 16 | style_5_7_1445391719 17 | style-bus 18 | style_6_7_1445325996 19 | style-indoor 20 | style_50_7_1445670996 21 | 22 | Texture 23 | 24 | icon-day 25 | icons_1_7_1444880368 26 | icon-night 27 | icons_2_7_1445580283 28 | icon-bus 29 | icons_3_7_1444880372 30 | icon-indoor 31 | icons_50_7_1444880375 32 | background-day 33 | bktile_1 34 | background-night 35 | bktile_2 36 | roadarrow 37 | roadarrow 38 | lineround 39 | lineround 40 | dash-railway 41 | dash 42 | dash-overpass 43 | dash_tq 44 | dash-longandshort 45 | dash_cd 46 | tmc-green-day 47 | tgl 48 | tmc-green-night 49 | tgl_n 50 | tmc-yellow-day 51 | tyl 52 | tmc-yellow-night 53 | tyl_n 54 | tmc-red-day 55 | trl 56 | tmc-red-night 57 | trl_n 58 | tmc-blackred-day 59 | tbl 60 | tmc-blackred-night 61 | tbl_n 62 | tmc-gray-day 63 | tnl 64 | tmc-gray-night 65 | tnl_n 66 | sky-day 67 | 3d_sky_1 68 | sky-night 69 | 3d_sky_2 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/calloutArrowMask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/calloutArrowMask.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/calloutArrowMask@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/calloutArrowMask@2x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/greenPin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/greenPin.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/greenPin@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/greenPin@2x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/greenPin@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/greenPin@3x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/greenPin_lift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/greenPin_lift.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/greenPin_lift@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/greenPin_lift@2x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/greenPin_lift@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/greenPin_lift@3x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/lineDashTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/lineDashTexture.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/lineDashTextureThin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/lineDashTextureThin.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/lineTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/lineTexture.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/lineTextureThin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/lineTextureThin.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/pin_shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/pin_shadow.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/pin_shadow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/pin_shadow@2x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/pin_shadow@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/pin_shadow@3x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/purplePin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/purplePin.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/purplePin@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/purplePin@2x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/purplePin@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/purplePin@3x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/purplePin_lift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/purplePin_lift.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/purplePin_lift@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/purplePin_lift@2x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/purplePin_lift@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/purplePin_lift@3x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/redPin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/redPin.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/redPin@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/redPin@2x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/redPin@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/redPin@3x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/redPin_lift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/redPin_lift.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/redPin_lift@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/redPin_lift@2x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/redPin_lift@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/redPin_lift@3x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/select_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/select_.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/select_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/select_@2x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/select_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/images/select_@3x.png -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/offline/offlinePackage.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/AMap.bundle/offline/offlinePackage.plist -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAAnimatedAnnotation.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAAnimatedAnnotation.h 3 | // MAMapKit 4 | // 5 | // Created by shaobin on 16/12/8. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import 11 | #import "MAAnnotationMoveAnimation.h" 12 | 13 | ///支持动画效果的点标注 14 | @interface MAAnimatedAnnotation : MAPointAnnotation 15 | 16 | ///移动方向. since 4.5.0 17 | @property (nonatomic, assign) CLLocationDirection movingDirection; 18 | 19 | /** 20 | @brief 添加移动动画, 第一个添加的动画以当前coordinate为起始点,沿传入的coordinates点移动,否则以上一个动画终点为起始点. since 4.5.0 21 | @param coordinates c数组,由调用者负责coordinates指向内存的管理 22 | @param count coordinates数组大小 23 | @param duration 动画时长,0或<0为无动画 24 | @param name 名字,如不指定可传nil 25 | @param completeCallback 动画完成回调,isFinished: 动画是否执行完成 26 | */ 27 | - (void)addMoveAnimationWithKeyCoordinates:(CLLocationCoordinate2D *)coordinates 28 | count:(NSUInteger)count 29 | withDuration:(CGFloat)duration 30 | withName:(NSString *)name 31 | completeCallback:(void(^)(BOOL isFinished))completeCallback; 32 | 33 | /** 34 | * @brief 获取所有未完成的移动动画, 返回数组内为MAAnnotationMoveAnimation对象. since 4.5.0 35 | * @return 返回所有移动动画,数组内元素类型为 MAAnnotationMoveAnimation 36 | */ 37 | - (NSArray *)allMoveAnimations; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAAnnotation.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAAnnotation.h 3 | // MAMapKit 4 | // 5 | // Created by yin cai on 11-12-13. 6 | // Copyright (c) 2011年 Autonavi Inc. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import 11 | #import 12 | #import 13 | #import "MAGeometry.h" 14 | 15 | /** 16 | * 该类为标注点的protocol,提供了标注类的基本信息函数 17 | */ 18 | @protocol MAAnnotation 19 | 20 | /** 21 | * @brief 标注view中心坐标 22 | */ 23 | @property (nonatomic, readonly) CLLocationCoordinate2D coordinate; 24 | 25 | @optional 26 | 27 | ///annotation标题 28 | @property (nonatomic, copy) NSString *title; 29 | 30 | ///annotation副标题 31 | @property (nonatomic, copy) NSString *subtitle; 32 | 33 | /** 34 | * @brief 设置标注的坐标,在拖拽时会被调用. 35 | * @param newCoordinate 新的坐标值 36 | */ 37 | - (void)setCoordinate:(CLLocationCoordinate2D)newCoordinate; 38 | 39 | @end 40 | 41 | /** 42 | * 支持动画需要实现的协议. since 4.5.0 43 | */ 44 | @protocol MAAnimatableAnnotation 45 | 46 | @required 47 | /** 48 | * @brief 动画帧更新回调接口,实现者可在内部做更新处理,如更新coordinate. since 4.5.0 49 | * @param timeDelta 时间步长,单位秒 50 | */ 51 | - (void)step:(CGFloat)timeDelta; 52 | 53 | /** 54 | * @brief 动画是否已完成. since 4.5.0 55 | * @return YES动画已完成,NO没有完成 56 | */ 57 | - (BOOL)isAnimationFinished; 58 | 59 | @optional 60 | /** 61 | * @brief 动画更新时调用此接口,获取annotationView的旋转角度,不实现默认为0. since 4.5.0 62 | * @return 当前annotation的旋转角度 63 | */ 64 | - (CLLocationDirection)rotateDegree; 65 | 66 | 67 | @end 68 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAAnnotationMoveAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAAnnotationMoveAnimation.h 3 | // MAMapKit 4 | // 5 | // Created by shaobin on 16/11/21. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | 10 | #import "MAConfig.h" 11 | #import 12 | #import "MAAnnotation.h" 13 | 14 | ///annotation移动动画. since 4.5.0 15 | @interface MAAnnotationMoveAnimation : NSObject 16 | 17 | /** 18 | * @brief 获取动画名字 19 | * @return 添加动画时传入的名字 20 | */ 21 | - (NSString *)name; 22 | 23 | /** 24 | * @brief 获取经纬度坐标点数组 25 | * @return 返回经纬度坐标点数组 26 | */ 27 | - (CLLocationCoordinate2D *)coordinates; 28 | 29 | /** 30 | * @brief 获取coordinates数组内坐标点个数 31 | * @return coordinates数组内坐标点个数 32 | */ 33 | - (NSUInteger)count; 34 | 35 | /** 36 | * @brief 获取动画时长 37 | * @return 动画时长 38 | */ 39 | - (CGFloat)duration; 40 | 41 | /** 42 | * @brief 获取动画已执行的时长 43 | * @return 动画已执行的时长 44 | */ 45 | - (CGFloat)elapsedTime; 46 | 47 | /** 48 | * @brief 取消 49 | */ 50 | - (void)cancel; 51 | 52 | /** 53 | * @brief 是否已取消 54 | * @return YES已取消,NO未取消 55 | */ 56 | - (BOOL)isCancelled; 57 | 58 | 59 | @end 60 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAAnnotationView.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAAnnotationView.h 3 | // MAMapKitDemo 4 | // 5 | // Created by songjian on 13-1-7. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import 11 | 12 | ///MAAnnotationViewDragState 13 | typedef NS_ENUM(NSInteger, MAAnnotationViewDragState) 14 | { 15 | MAAnnotationViewDragStateNone = 0, ///< 静止状态 16 | MAAnnotationViewDragStateStarting, ///< 开始拖动 17 | MAAnnotationViewDragStateDragging, ///< 拖动中 18 | MAAnnotationViewDragStateCanceling, ///< 取消拖动 19 | MAAnnotationViewDragStateEnding ///< 拖动结束 20 | }; 21 | 22 | @protocol MAAnnotation; 23 | 24 | ///标注view 25 | @interface MAAnnotationView : UIView 26 | 27 | ///复用标识 28 | @property (nonatomic, readonly, copy) NSString *reuseIdentifier; 29 | 30 | ///z值,大值在上,默认为0。类似CALayer的zPosition 31 | @property (nonatomic, assign) NSInteger zIndex; 32 | 33 | ///关联的annotation 34 | @property (nonatomic, strong) id annotation; 35 | 36 | ///显示的image 37 | @property (nonatomic, strong) UIImage *image; 38 | 39 | ///annotationView的中心默认位于annotation的坐标位置,可以设置centerOffset改变view的位置,正的偏移使view朝右下方移动,负的朝左上方,单位是屏幕坐标 40 | @property (nonatomic) CGPoint centerOffset; 41 | 42 | ///弹出气泡默认位于view正中上方,可以设置calloutOffset改变view的位置,正的偏移使view朝右下方移动,负的朝左上方,单位是屏幕坐标 43 | @property (nonatomic) CGPoint calloutOffset; 44 | 45 | ///默认为YES,当为NO时view忽略触摸事件 46 | @property (nonatomic, getter=isEnabled) BOOL enabled; 47 | 48 | ///是否高亮 49 | @property (nonatomic, getter=isHighlighted) BOOL highlighted; 50 | 51 | ///设置是否处于选中状态, 外部如果要选中请使用mapView的selectAnnotation方法 52 | @property (nonatomic, getter=isSelected) BOOL selected; 53 | 54 | ///是否允许弹出默认callout 55 | @property (nonatomic) BOOL canShowCallout; 56 | 57 | ///显示在气泡左侧的view 58 | @property (strong, nonatomic) UIView *leftCalloutAccessoryView; 59 | 60 | ///显示在气泡右侧的view 61 | @property (strong, nonatomic) UIView *rightCalloutAccessoryView; 62 | 63 | ///是否支持拖动 64 | @property (nonatomic, getter=isDraggable) BOOL draggable; 65 | 66 | ///当前view的拖动状态 67 | @property (nonatomic) MAAnnotationViewDragState dragState; 68 | 69 | /** 70 | * @brief 设置是否处于选中状态, 外部如果要选中请使用mapView的selectAnnotation方法 71 | * @param selected 是否选中 72 | * @param animated 是否使用动画效果 73 | */ 74 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated; 75 | 76 | /** 77 | * @brief 初始化并返回一个annotation view 78 | * @param annotation 关联的annotation对象 79 | * @param reuseIdentifier 如果要重用view,传入一个字符串,否则设为nil,建议重用view 80 | * @return 初始化成功则返回annotation view,否则返回nil 81 | */ 82 | - (id)initWithAnnotation:(id )annotation reuseIdentifier:(NSString *)reuseIdentifier; 83 | 84 | /** 85 | * @brief 当从reuse队列里取出时被调用, 子类重新必须调用super 86 | */ 87 | - (void)prepareForReuse; 88 | 89 | /** 90 | * @brief 设置view的拖动状态 91 | * @param newDragState 新的拖动状态 92 | * @param animated 是否使用动画动画 93 | */ 94 | - (void)setDragState:(MAAnnotationViewDragState)newDragState animated:(BOOL)animated; 95 | 96 | @end 97 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MACircle.h: -------------------------------------------------------------------------------- 1 | // 2 | // MACircle.h 3 | // MAMapKit 4 | // 5 | // 6 | // Copyright (c) 2011年 Autonavi Inc. All rights reserved. 7 | // 8 | 9 | 10 | 11 | #import "MAConfig.h" 12 | #import "MAShape.h" 13 | #import "MAOverlay.h" 14 | #import "MAGeometry.h" 15 | 16 | ///该类用于定义一个圆, 通常MACircle是MACircleView的model 17 | @interface MACircle : MAShape { 18 | @package 19 | MAMapRect _boundingMapRect; 20 | } 21 | 22 | ///中心点经纬度坐标 23 | @property (nonatomic, assign) CLLocationCoordinate2D coordinate; 24 | 25 | ///半径,单位:米 26 | @property (nonatomic, assign) CLLocationDistance radius; 27 | 28 | ///该圆的外接map rect 29 | @property (nonatomic, readonly) MAMapRect boundingMapRect; 30 | 31 | /** 32 | * @brief 根据中心点和半径生成圆 33 | * @param coord 中心点的经纬度坐标 34 | * @param radius 半径,单位:米 35 | * @return 新生成的圆 36 | */ 37 | + (instancetype)circleWithCenterCoordinate:(CLLocationCoordinate2D)coord 38 | radius:(CLLocationDistance)radius; 39 | 40 | /** 41 | * @brief 根据map rect生成圆 42 | * @param mapRect mapRect 圆的最小外界矩形 43 | * @return 新生成的圆 44 | */ 45 | + (instancetype)circleWithMapRect:(MAMapRect)mapRect; 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MACircleRenderer.h: -------------------------------------------------------------------------------- 1 | // 2 | // MACircleRenderer.h 3 | // MAMapKit 4 | // 5 | // Created by yin cai on 11-12-30. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import "MACircle.h" 11 | #import "MAOverlayPathRenderer.h" 12 | 13 | /** 14 | * 该类是MACircle的显示圆Renderer,可以通过MAOverlayPathRenderer修改其fill和stroke attributes 15 | */ 16 | @interface MACircleRenderer : MAOverlayPathRenderer 17 | 18 | ///关联的MAcirlce model 19 | @property (nonatomic, readonly) MACircle *circle; 20 | 21 | /** 22 | * @brief 根据指定圆生成对应的Renderer 23 | * @param circle 指定的MACircle model 24 | * @return 生成的Renderer 25 | */ 26 | - (instancetype)initWithCircle:(MACircle *)circle; 27 | 28 | /** 29 | * @brief 当关联circle数据发生变化时(如半径、中心点改变),调用此接口更新, since 4.6.0 30 | */ 31 | - (void)setNeedsUpdate; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAConfig.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAConfig.h 3 | // MAMapKit 4 | // 5 | // Created by shaobin on 16/10/24. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #ifndef MAConfig_h 10 | #define MAConfig_h 11 | 12 | #ifndef MA_INCLUDE_OFFLINE 13 | #define MA_INCLUDE_OFFLINE 1 14 | #endif 15 | 16 | #ifndef MA_INCLUDE_TRACE_CORRECT 17 | #define MA_INCLUDE_TRACE_CORRECT 1 18 | #endif 19 | 20 | #ifndef MA_INCLUDE_INDOOR 21 | #define MA_INCLUDE_INDOOR 1 22 | #endif 23 | 24 | #ifndef MA_INCLUDE_CACHE 25 | #define MA_INCLUDE_CACHE 1 26 | #endif 27 | 28 | #ifndef MA_INCLUDE_WORLDMAP 29 | #define MA_INCLUDE_WORLDMAP 1 30 | #endif 31 | 32 | #ifndef MA_INCLUDE_OVERLAY_HEATMAP 33 | #define MA_INCLUDE_OVERLAY_HEATMAP 1 34 | #endif 35 | 36 | #ifndef MA_INCLUDE_OVERLAY_GROUND 37 | #define MA_INCLUDE_OVERLAY_GROUND 1 38 | #endif 39 | 40 | #ifndef MA_INCLUDE_OVERLAY_GEODESIC 41 | #define MA_INCLUDE_OVERLAY_GEODESIC 1 42 | #endif 43 | 44 | #endif /* MAConfig_h */ 45 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAGeodesicPolyline.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAGeodesicPolyline.h 3 | // MapKit_static 4 | // 5 | // Created by songjian on 13-10-23. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | 10 | 11 | #import "MAConfig.h" 12 | 13 | #if MA_INCLUDE_OVERLAY_GEODESIC 14 | 15 | #import "MAPolyline.h" 16 | 17 | ///大地曲线 18 | @interface MAGeodesicPolyline : MAPolyline 19 | 20 | /** 21 | * @brief 根据MAMapPoints生成大地曲线 22 | * @param points MAMapPoint点 23 | * @param count 点的个数 24 | * @return 生成的大地曲线 25 | */ 26 | + (instancetype)polylineWithPoints:(MAMapPoint *)points count:(NSUInteger)count; 27 | 28 | /** 29 | * @brief 根据经纬度生成大地曲线 30 | * @param coords 经纬度 31 | * @param count 点的个数 32 | * @return 生成的大地曲线 33 | */ 34 | + (instancetype)polylineWithCoordinates:(CLLocationCoordinate2D *)coords count:(NSUInteger)count; 35 | 36 | @end 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAGeometry.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAGeometry.h 3 | // MAMapKit 4 | // 5 | // Created by AutoNavi. 6 | // Copyright (c) 2013年 AutoNavi. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import 11 | #import 12 | #import 13 | 14 | 15 | #ifdef __cplusplus 16 | extern "C" { 17 | #endif 18 | 19 | ///东北、西南两个点定义的四边形经纬度范围 20 | struct MACoordinateBounds{ 21 | CLLocationCoordinate2D northEast; ///< 东北角经纬度 22 | CLLocationCoordinate2D southWest; ///< 西南角经纬度 23 | }; 24 | typedef struct MACoordinateBounds MACoordinateBounds; 25 | 26 | ///经度、纬度定义的经纬度跨度范围 27 | struct MACoordinateSpan{ 28 | CLLocationDegrees latitudeDelta; ///< 纬度跨度 29 | CLLocationDegrees longitudeDelta; ///< 经度跨度 30 | }; 31 | typedef struct MACoordinateSpan MACoordinateSpan; 32 | 33 | ///中心点、跨度范围定义的四边形经纬度范围 34 | struct MACoordinateRegion{ 35 | CLLocationCoordinate2D center; ///< 中心点经纬度 36 | MACoordinateSpan span; ///< 跨度范围 37 | }; 38 | typedef struct MACoordinateRegion MACoordinateRegion; 39 | 40 | ///平面投影坐标结构定义 41 | struct MAMapPoint{ 42 | double x; /// 14 | #import "MAShape.h" 15 | #import "MAOverlay.h" 16 | 17 | ///该类用于确定覆盖在地图上的图片,及其覆盖区域, 通常MAGroundOverlay是MAGroundOverlayView的model 18 | @interface MAGroundOverlay : MAShape 19 | 20 | ///绘制在地图上的覆盖图片 21 | @property (nonatomic, readonly) UIImage *icon; 22 | 23 | ///透明度. 最终透明度 = 纹理透明度 * alpha. 有效范围为[0.f, 1.f], 默认为1.f 24 | @property (nonatomic) CGFloat alpha; 25 | 26 | ///覆盖图片在地图尺寸等同于其像素的zoom值 27 | @property (nonatomic, readonly) CGFloat zoomLevel; 28 | 29 | ///图片在地图中的覆盖范围 30 | @property (nonatomic, readonly) MACoordinateBounds bounds; 31 | 32 | /** 33 | * @brief 根据bounds值和icon生成GroundOverlay 34 | * @param bounds 图片的在地图的覆盖范围 35 | * @param icon 覆盖图片 36 | * @return 以bounds和icon 新生成GroundOverlay 37 | */ 38 | + (instancetype)groundOverlayWithBounds:(MACoordinateBounds)bounds 39 | icon:(UIImage *)icon; 40 | 41 | /** 42 | * @brief 根据coordinate,icon,zoomLevel生成GroundOverlay 43 | * @param coordinate 图片的在地图上的中心点 44 | * @param zoomLevel 图片在地图尺寸等同于像素的zoom值 45 | * @param icon 覆盖图片 46 | * @return 以coordinate,icon,zoomLevel 新生成GroundOverlay 47 | */ 48 | + (instancetype)groundOverlayWithCoordinate:(CLLocationCoordinate2D)coordinate 49 | zoomLevel:(CGFloat)zoomLevel 50 | icon:(UIImage *)icon; 51 | @end 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAGroundOverlayRenderer.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAGroundOverlayRenderer.h 3 | // MapKit_static 4 | // 5 | // Created by Li Fei on 11/13/13. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | 11 | #if MA_INCLUDE_OVERLAY_GROUND 12 | 13 | #import "MAOverlayRenderer.h" 14 | #import "MAGroundOverlay.h" 15 | 16 | ///此类是将MAGroundOverlay中的覆盖图片显示在地图上的renderer 17 | @interface MAGroundOverlayRenderer : MAOverlayRenderer 18 | 19 | ///具有覆盖图片,以及图片覆盖的区域 20 | @property (nonatomic ,readonly) MAGroundOverlay *groundOverlay; 21 | 22 | /** 23 | * @brief 根据指定的GroundOverlay生成将图片显示在地图上Renderer 24 | * @param groundOverlay 制定了覆盖图片,以及图片的覆盖区域的groundOverlay 25 | * @return 以GroundOverlay新生成Renderer 26 | */ 27 | - (instancetype)initWithGroundOverlay:(MAGroundOverlay *)groundOverlay; 28 | 29 | @end 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAHeatMapTileOverlay.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAHeatMapTileOverlay.h 3 | // test2D 4 | // 5 | // Created by xiaoming han on 15/4/21. 6 | // Copyright (c) 2015年 AutoNavi. All rights reserved. 7 | // 8 | 9 | 10 | 11 | #import "MAConfig.h" 12 | 13 | #if MA_INCLUDE_OVERLAY_HEATMAP 14 | 15 | #import "MATileOverlay.h" 16 | 17 | ///热力图节点 18 | @interface MAHeatMapNode : NSObject 19 | 20 | ///经纬度 21 | @property (nonatomic, assign) CLLocationCoordinate2D coordinate; 22 | 23 | ///强度 24 | @property (nonatomic, assign) float intensity; 25 | 26 | @end 27 | 28 | ///热力图渐变属性 29 | @interface MAHeatMapGradient : NSObject 30 | 31 | ///颜色 default [blue,green,red] 32 | @property (nonatomic, readonly) NSArray *colors; 33 | 34 | ///default[@(0.2),@(0.5),@(0,9)] 35 | @property (nonatomic, readonly) NSArray *startPoints; 36 | 37 | /** 38 | * @brief 重新设置gradient的时候,需要执行 MATileOverlayView 中的 reloadData 方法 39 | * @param colors 颜色 40 | * @param startPoints startPoints 41 | * @return instance 42 | */ 43 | - (instancetype)initWithColor:(NSArray *)colors andWithStartPoints:(NSArray *)startPoints; 44 | 45 | @end 46 | 47 | ///热力图tileOverlay 48 | @interface MAHeatMapTileOverlay : MATileOverlay 49 | 50 | ///MAHeatMapNode array 51 | @property (nonatomic, strong) NSArray *data; 52 | 53 | ///热力图半径,默认为12,范围:0-100 screen point 54 | @property (nonatomic, assign) NSInteger radius; 55 | 56 | ///透明度,默认为0.6,范围:0-1 57 | @property (nonatomic, assign) CGFloat opacity; 58 | 59 | ///热力图梯度 60 | @property (nonatomic, strong) MAHeatMapGradient *gradient; 61 | 62 | ///是否开启高清热力图,默认关闭 63 | @property (nonatomic, assign) BOOL allowRetinaAdapting; 64 | 65 | @end 66 | 67 | #endif 68 | 69 | 70 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAIndoorInfo.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAIndoorInfo.h 3 | // MAMapKit 4 | // 5 | // Created by 翁乐 on 5/6/16. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | 11 | #if MA_INCLUDE_INDOOR 12 | 13 | #import 14 | 15 | ///室内楼层信息 16 | @interface MAIndoorFloorInfo : NSObject 17 | ///楼层名 18 | @property (nonatomic, readonly) NSString *floorName; 19 | ///楼层index 20 | @property (nonatomic, readonly) int floorIndex; 21 | ///楼层别名 22 | @property (nonatomic, readonly) NSString *floorNona; 23 | ///是否属于停车场 24 | @property (nonatomic, readonly) BOOL isPark; 25 | @end 26 | 27 | ///室内图信息 28 | @interface MAIndoorInfo : NSObject 29 | ///室内地图中文名 30 | @property (nonatomic, readonly) NSString *cnName; 31 | ///室内地图英文名 32 | @property (nonatomic, readonly) NSString *enName; 33 | ///室内地图poiID 34 | @property (nonatomic, readonly) NSString *poiID; 35 | ///建筑类型 36 | @property (nonatomic, readonly) NSString *buildingType; 37 | ///当前楼层index,和floorInfo内部的index相关 38 | @property (nonatomic, readonly) int activeFloorIndex; 39 | ///当前激活的楼层,只和floorInfo相关,与floorInfo内部元素的index无关 40 | @property (nonatomic, readonly) int activeFloorInfoIndex; 41 | ///由 MAIndoorFloorInfo 组成,可直接通过 activeFloorInfoIndex 取出当前楼层 42 | @property (nonatomic, readonly) NSArray *floorInfo; 43 | ///楼层数量 44 | @property (nonatomic, readonly) int numberOfFloor; 45 | ///停车场楼层数量 46 | @property (nonatomic, readonly) int numberOfParkFloor; 47 | @end 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MALineDrawType.h: -------------------------------------------------------------------------------- 1 | // 2 | // MALineDrawType.h 3 | // MapKit_static 4 | // 5 | // Created by yi chen on 14-7-30. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | 11 | #ifndef MapKit_static_MALineDrawType_h 12 | #define MapKit_static_MALineDrawType_h 13 | 14 | enum MALineJoinType 15 | { 16 | kMALineJoinBevel, ///< 斜面连接点 17 | kMALineJoinMiter, ///< 斜接连接点 18 | kMALineJoinRound ///< 圆角连接点 19 | }; 20 | typedef enum MALineJoinType MALineJoinType; 21 | 22 | enum MALineCapType 23 | { 24 | kMALineCapButt, ///< 普通头 25 | kMALineCapSquare, ///< 扩展头 26 | kMALineCapArrow, ///< 箭头 27 | kMALineCapRound ///< 圆形头 28 | }; 29 | typedef enum MALineCapType MALineCapType; 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAMapKit.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAMapKit.h 3 | // MAMapKit 4 | // 5 | // Created by 翁乐 on 12/2/15. 6 | // Copyright © 2015 Amap. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import 12 | #import 13 | #import 14 | #import 15 | #import 16 | #import 17 | #import 18 | #import 19 | #import 20 | #import 21 | #import 22 | #import 23 | #import 24 | #import 25 | #import 26 | #import 27 | #import 28 | #import 29 | #import 30 | #import 31 | #import 32 | #import 33 | #import 34 | #import 35 | #import 36 | #import 37 | #import 38 | #import 39 | #import 40 | #import 41 | #import 42 | #import 43 | #import 44 | #import 45 | #import 46 | #import 47 | #import 48 | #import 49 | 50 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAMapStatus.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAMapStatus.h 3 | // MapKit_static 4 | // 5 | // Created by yi chen on 1/27/15. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | 10 | 11 | #import "MAConfig.h" 12 | #import 13 | #import 14 | 15 | ///地图状态对象 16 | @interface MAMapStatus : NSObject 17 | 18 | ///地图的中心点,改变该值时,地图的比例尺级别不会发生变化 19 | @property (nonatomic) CLLocationCoordinate2D centerCoordinate; 20 | 21 | ///缩放级别 22 | @property (nonatomic) CGFloat zoomLevel; 23 | 24 | ///设置地图旋转角度(逆时针为正向), 单位度, [0,360) 25 | @property (nonatomic) CGFloat rotationDegree; 26 | 27 | ///设置地图相机角度(范围为[0.f, 45.f]) 28 | @property (nonatomic) CGFloat cameraDegree; 29 | 30 | ///地图的视图锚点。坐标系归一化,(0, 0)为MAMapView左上角,(1, 1)为右下角。默认为(0.5, 0.5),即当前地图的视图中心 31 | @property (nonatomic) CGPoint screenAnchor; 32 | 33 | /** 34 | * @biref 根据指定参数生成对应的status 35 | * @param coordinate 地图的中心点,改变该值时,地图的比例尺级别不会发生变化 36 | * @param zoomLevel 缩放级别 37 | * @param rotationDegree 设置地图旋转角度(逆时针为正向) 38 | * @param cameraDegree 设置地图相机角度(范围为[0.f, 45.f]) 39 | * @param screenAnchor 地图的视图锚点。坐标系归一化,(0, 0)为MAMapView左上角,(1, 1)为右下角。默认为(0.5, 0.5),即当前地图的视图中心 40 | * @return 生成的Status 41 | */ 42 | + (instancetype)statusWithCenterCoordinate:(CLLocationCoordinate2D)coordinate 43 | zoomLevel:(CGFloat)zoomLevel 44 | rotationDegree:(CGFloat)rotationDegree 45 | cameraDegree:(CGFloat)cameraDegree 46 | screenAnchor:(CGPoint)screenAnchor; 47 | 48 | /** 49 | * @brief 根据指定参数初始化对应的status 50 | * @param coordinate 地图的中心点,改变该值时,地图的比例尺级别不会发生变化 51 | * @param zoomLevel 缩放级别 52 | * @param rotationDegree 设置地图旋转角度(逆时针为正向) 53 | * @param cameraDegree 设置地图相机角度(范围为[0.f, 45.f]) 54 | * @param screenAnchor 地图的视图锚点。坐标系归一化,(0, 0)为MAMapView左上角,(1, 1)为右下角。默认为(0.5, 0.5),即当前地图的视图中心 55 | * @return 生成的Status 56 | */ 57 | - (id)initWithCenterCoordinate:(CLLocationCoordinate2D)coordinate 58 | zoomLevel:(CGFloat)zoomLevel 59 | rotationDegree:(CGFloat)rotationDegree 60 | cameraDegree:(CGFloat)cameraDegree 61 | screenAnchor:(CGPoint)screenAnchor; 62 | 63 | @end 64 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAMapVersion.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAMapVersion.h 3 | // MAMapKit 4 | // 5 | // Created by yi chen on 2/24/16. 6 | // Copyright © 2016 AutoNavi. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import 11 | 12 | #ifndef MAMapVersion_h 13 | #define MAMapVersion_h 14 | 15 | #define MAMapVersionNumber 40600 16 | 17 | #define MAMapMinRequiredFoundationVersion 10301 18 | 19 | // 依赖库版本检测 20 | #if AMapFoundationVersionNumber < MAMapMinRequiredFoundationVersion 21 | #error "The AMapFoundationKit version is less than minimum required, please update! Any questions please to visit http://lbs.amap.com" 22 | #endif 23 | 24 | FOUNDATION_EXTERN NSString * const MAMapKitVersion; 25 | FOUNDATION_EXTERN NSString * const MAMapKitName; 26 | 27 | 28 | #endif /* MAMapVersion_h */ 29 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAMultiColoredPolylineRenderer.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAMultiColoredPolylineRenderer.h 3 | // MapKit_static 4 | // 5 | // Created by yi chen on 12/11/15. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | 10 | 11 | #import "MAConfig.h" 12 | #import "MAPolylineRenderer.h" 13 | #import "MAMultiPolyline.h" 14 | 15 | ///此类用于绘制MAMultiPolyline对应的多段线,支持分段颜色绘制 16 | @interface MAMultiColoredPolylineRenderer : MAPolylineRenderer 17 | 18 | ///关联的MAMultiPolyline model 19 | @property (nonatomic, readonly) MAMultiPolyline *multiPolyline; 20 | 21 | ///分段绘制的颜色,需要分段颜色绘制时,必须设置(内容必须为UIColor) 22 | @property (nonatomic, strong) NSArray *strokeColors; 23 | 24 | ///颜色是否渐变 25 | @property (nonatomic, getter=isGradient) BOOL gradient; 26 | 27 | /** 28 | * @brief 根据指定的MAPolyline生成一个多段线Renderer 29 | * @param multiPolyline 指定MAMultiPolyline 30 | * @return 新生成的多段线Renderer 31 | */ 32 | - (instancetype)initWithMultiPolyline:(MAMultiPolyline *)multiPolyline; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAMultiPoint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAMultiPoint.h 3 | // MAMapKit 4 | // 5 | // 6 | // Copyright (c) 2011年 Autonavi Inc. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import 11 | #import "MAShape.h" 12 | #import "MAGeometry.h" 13 | 14 | ///该类是个由多个点组成的虚基类, 不能直接实例化对象, 要使用其子类MAPolyline,MAPolygon来实例化 15 | @interface MAMultiPoint : MAShape { 16 | @package 17 | MAMapPoint *_points; 18 | NSUInteger _pointCount; 19 | MAMapRect _boundingRect; 20 | } 21 | 22 | ///坐标点数组 23 | @property (nonatomic, readonly) MAMapPoint *points; 24 | 25 | ///坐标点的个数 26 | @property (nonatomic, readonly) NSUInteger pointCount; 27 | 28 | /** 29 | * @brief 将内部的坐标点数据转化为经纬度坐标并拷贝到coords内存中 30 | * @param coords 调用者提供的内存空间, 该空间长度必须大于等于要拷贝的坐标点的个数(range.length) 31 | * @param range 要拷贝的数据范围 32 | */ 33 | - (void)getCoordinates:(CLLocationCoordinate2D *)coords range:(NSRange)range; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAMultiPolyline.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAMultiPolyline.h 3 | // MapKit_static 4 | // 5 | // Created by yi chen on 12/11/15. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import "MAPolyline.h" 11 | 12 | ///此类用于定义一个由多个点相连的多段线,绘制时支持分段采用不同颜色(纹理)绘制,点与点之间尾部相连但第一点与最后一个点不相连, 通常MAMultiPolyline是MAMultiColoredPolylineRenderer(分段颜色绘制)或MAMultiTexturePolylineRenderer(分段纹理绘制)的model 13 | @interface MAMultiPolyline : MAPolyline 14 | 15 | ///绘制索引数组(纹理、颜色索引数组), 成员为NSNumber, 且为非负数 16 | @property (nonatomic, strong, readonly) NSArray *drawStyleIndexes; 17 | 18 | /** 19 | * @brief 分段绘制,根据map point数据生成多段线 20 | * 分段纹理绘制:其对应的MAMultiTexturePolylineRenderer必须使用 - (BOOL)loadStrokeTextureImages:(NSArray *)textureImages; 加载纹理图片, 否则使用默认的灰色纹理绘制 21 | * 分段颜色绘制:其对应的MAMultiColoredPolylineRenderer必须设置strokeColors属性 22 | * @param points 指定的直角坐标点数组 23 | * @param count 坐标点的个数 24 | * @param drawStyleIndexes 纹理索引数组(颜色索引数组), 成员为NSNumber, 且为非负数 25 | * @return 生成的折线对象 26 | */ 27 | + (instancetype)polylineWithPoints:(MAMapPoint *)points count:(NSUInteger)count drawStyleIndexes:(NSArray*) drawStyleIndexes; 28 | 29 | /** 30 | * @brief 分段绘制,根据经纬度坐标数据生成多段线 31 | * 分段纹理绘制:其对应的MAMultiTexturePolylineRenderer必须使用 - (BOOL)loadStrokeTextureImages:(NSArray *)textureImages; 加载纹理图片, 否则使用默认的灰色纹理绘制 32 | * 分段颜色绘制:其对应的MAMultiColoredPolylineRenderer必须设置strokeColors属性 33 | * @param coords 指定的经纬度坐标点数组 34 | * @param count 坐标点的个数 35 | * @param drawStyleIndexes 纹理索引数组(颜色索引数组), 成员为NSNumber, 且为非负数 36 | * @return 生成的折线对象 37 | */ 38 | + (instancetype)polylineWithCoordinates:(CLLocationCoordinate2D *)coords count:(NSUInteger)count drawStyleIndexes:(NSArray*) drawStyleIndexes; 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAMultiTexturePolylineRenderer.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAMultiTexturePolylineRenderer.h 3 | // MapKit_static 4 | // 5 | // Created by yi chen on 12/11/15. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import "MAPolylineRenderer.h" 11 | #import "MAMultiPolyline.h" 12 | 13 | ///此类用于绘制MAMultiPolyline对应的多段线,支持分段纹理绘制 14 | @interface MAMultiTexturePolylineRenderer : MAPolylineRenderer 15 | 16 | ///关联的MAMultiPolyline model 17 | @property (nonatomic, readonly) MAMultiPolyline *multiPolyline; 18 | 19 | ///取分段纹理id,返回分段纹理id数组 20 | @property (nonatomic, strong, readonly) NSArray * strokeTextureIDs; 21 | 22 | /** 23 | * @brief 根据指定的MAMultiPolyline生成一个多段线Renderer 24 | * @param multiPolyline 指定MAMultiPolyline 25 | * @return 新生成的多段线Renderer 26 | */ 27 | - (instancetype)initWithMultiPolyline:(MAMultiPolyline *)multiPolyline; 28 | 29 | /** 30 | * @brief 加载分段绘制的纹理图片. 需要分段纹理绘制时,必须设置。否则使用默认纹理绘制 31 | * @param textureImages 必须为UIImage数组,纹理图片(需满足:长宽相等,且宽度值为2的次幂)。若为nil,则清空原有纹理 32 | * @return 是否成功,若纹理加载失败返回0 33 | */ 34 | - (BOOL)loadStrokeTextureImages:(NSArray *)textureImages; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAOfflineCity.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAOfflineCity.h 3 | // 4 | // Copyright (c) 2013年 AutoNavi. All rights reserved. 5 | // 6 | 7 | #import "MAConfig.h" 8 | 9 | #if MA_INCLUDE_OFFLINE 10 | 11 | #import 12 | #import "MAOfflineItem.h" 13 | 14 | typedef enum{ 15 | MAOfflineCityStatusNone __attribute__((deprecated("use MAOfflineItemStatusNone instead"))) = MAOfflineItemStatusNone, ///< 不存在 16 | MAOfflineCityStatusCached __attribute__((deprecated("use MAOfflineItemStatusCached instead"))) = MAOfflineItemStatusCached, ///< 缓存状态 17 | MAOfflineCityStatusInstalled __attribute__((deprecated("use MAOfflineItemStatusInstalled instead"))) = MAOfflineItemStatusInstalled, ///< 已安装 18 | MAOfflineCityStatusExpired __attribute__((deprecated("use MAOfflineItemStatusExpired instead"))) = MAOfflineItemStatusExpired ///< 已过期 19 | }MAOfflineCityStatus; 20 | 21 | ///离线地图,城市信息 22 | @interface MAOfflineCity : MAOfflineItem 23 | 24 | ///城市编码 25 | @property (nonatomic, copy, readonly) NSString *cityCode; 26 | 27 | ///城市名称 28 | @property (nonatomic, copy, readonly) NSString *cityName __attribute__ ((deprecated("use name instead"))); 29 | 30 | ///下载地址 31 | @property (nonatomic, copy, readonly) NSString *urlString __attribute__ ((deprecated("Not supported in future version"))); 32 | 33 | ///离线数据状态 34 | @property (nonatomic, assign, readonly) MAOfflineCityStatus status __attribute__ ((deprecated("use itemStatus instead"))); 35 | 36 | @end 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAOfflineItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAOfflineItem.h 3 | // MapKit_static 4 | // 5 | // Created by songjian on 14-4-23. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | 10 | 11 | #import "MAConfig.h" 12 | 13 | #if MA_INCLUDE_OFFLINE 14 | 15 | #import 16 | 17 | ///离线地图item状态 18 | typedef NS_ENUM(NSInteger, MAOfflineItemStatus) 19 | { 20 | MAOfflineItemStatusNone = 0, ///<不存在 21 | MAOfflineItemStatusCached, ///<缓存状态 22 | MAOfflineItemStatusInstalled, ///<已安装 23 | MAOfflineItemStatusExpired ///<已过期 24 | }; 25 | 26 | @interface MAOfflineItem : NSObject 27 | 28 | ///名字 29 | @property (nonatomic, copy, readonly) NSString *name; 30 | 31 | ///简拼 32 | @property (nonatomic, copy, readonly) NSString *jianpin; 33 | 34 | ///拼音 35 | @property (nonatomic, copy, readonly) NSString *pinyin; 36 | 37 | ///区域编码 38 | @property (nonatomic, copy, readonly) NSString *adcode; 39 | 40 | ///离线数据大小 41 | @property (nonatomic, assign, readonly) long long size; 42 | 43 | ///状态 44 | @property (nonatomic, assign, readonly) MAOfflineItemStatus itemStatus; 45 | 46 | ///已下载大小(当itemStatus == MAOfflineItemStatusCached 时有效) 47 | @property (nonatomic, assign, readonly) long long downloadedSize; 48 | 49 | @end 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAOfflineItemCommonCity.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAOfflineItemCommonCity.h 3 | // MapKit_static 4 | // 5 | // Created by songjian on 14-4-23. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | 11 | #if MA_INCLUDE_OFFLINE 12 | 13 | #import "MAOfflineCity.h" 14 | 15 | ///普通城市 16 | @interface MAOfflineItemCommonCity : MAOfflineCity 17 | 18 | ///所属省份 19 | @property (nonatomic, weak) MAOfflineItem *province; 20 | 21 | @end 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAOfflineItemMunicipality.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAOfflineItemMunicipality.h 3 | // MapKit_static 4 | // 5 | // Created by songjian on 14-4-23. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | 11 | #if MA_INCLUDE_OFFLINE 12 | 13 | #import "MAOfflineCity.h" 14 | 15 | ///直辖市 16 | @interface MAOfflineItemMunicipality : MAOfflineCity 17 | 18 | @end 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAOfflineItemNationWide.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAOfflineItemNationWide.h 3 | // MapKit_static 4 | // 5 | // Created by songjian on 14-4-23. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | 11 | #if MA_INCLUDE_OFFLINE 12 | 13 | #import "MAOfflineCity.h" 14 | 15 | ///全国概要 16 | @interface MAOfflineItemNationWide : MAOfflineCity 17 | 18 | @end 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAOfflineMap.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAOfflineMap.h 3 | // 4 | // Copyright (c) 2013年 AutoNavi. All rights reserved. 5 | // 6 | 7 | #import "MAConfig.h" 8 | 9 | #if MA_INCLUDE_OFFLINE 10 | 11 | #import 12 | #import "MAOfflineProvince.h" 13 | #import "MAOfflineItemNationWide.h" 14 | #import "MAOfflineItemMunicipality.h" 15 | 16 | 17 | 18 | ///离线地图下载状态 19 | typedef NS_ENUM(NSInteger, MAOfflineMapDownloadStatus) 20 | { 21 | MAOfflineMapDownloadStatusWaiting, ///< 以插入队列,等待中 22 | MAOfflineMapDownloadStatusStart, ///< 开始下载 23 | MAOfflineMapDownloadStatusProgress, ///< 下载过程中 24 | MAOfflineMapDownloadStatusCompleted, ///< 下载成功 25 | MAOfflineMapDownloadStatusCancelled, ///< 取消 26 | MAOfflineMapDownloadStatusUnzip, ///< 解压缩 27 | MAOfflineMapDownloadStatusFinished, ///< 全部顺利完成 28 | MAOfflineMapDownloadStatusError ///< 发生错误 29 | }; 30 | 31 | ///离线下载错误domain 32 | extern NSString * const MAOfflineMapErrorDomain; 33 | 34 | ///离线地图下载错误类型 35 | typedef NS_ENUM(NSInteger, MAOfflineMapError) 36 | { 37 | MAOfflineMapErrorUnknown = -1, //!< 未知的错误 38 | 39 | MAOfflineMapErrorCannotWriteToTmp = -2, //!< 写入临时目录失败 40 | 41 | MAOfflineMapErrorCannotOpenZipFile = -3, //!< 打开归档文件失败 42 | 43 | MAOfflineMapErrorCannotExpand = -4 //!< 解归档文件失败 44 | }; 45 | 46 | /** 47 | * 当downloadStatus == MAOfflineMapDownloadStatusProgress 时, info参数是个NSDictionary, 48 | * 如下两个key用来获取已下载和总和的数据大小(单位byte), 对应的是NSNumber(long long) 类型. 49 | * 当downloadStatus == MAOfflineMapDownloadStatusError 时, info参数是NSError 50 | */ 51 | 52 | ///下载过程info的key,表示已下载数据大小 53 | extern NSString * const MAOfflineMapDownloadReceivedSizeKey; 54 | 55 | ///下载过程info的key,表示总的数据大小 56 | extern NSString * const MAOfflineMapDownloadExpectedSizeKey; 57 | 58 | /** 59 | * @brief 离线地图下载过程回调block 60 | * @param downloadItem 下载的item 61 | * @param downloadStatus 下载状态 62 | * @param info 下载过程中的附加信息 63 | */ 64 | typedef void(^MAOfflineMapDownloadBlock)(MAOfflineItem * downloadItem, MAOfflineMapDownloadStatus downloadStatus, id info); 65 | 66 | /** 67 | * @brief 离线地图检查更新回调block 68 | * @param hasNewestVersion 是否有新版本的布尔值 69 | */ 70 | typedef void(^MAOfflineMapNewestVersionBlock)(BOOL hasNewestVersion); 71 | 72 | ///离线地图管理类 73 | @interface MAOfflineMap : NSObject 74 | 75 | /** 76 | * @brief 获取MAOfflineMap 单例 77 | * @return MAOfflineMap 78 | */ 79 | + (MAOfflineMap *)sharedOfflineMap; 80 | 81 | ///省份数组(每个元素均是MAOfflineProvince类型) 82 | @property (nonatomic, readonly) NSArray *provinces; 83 | 84 | ///直辖市数组(每个元素均是MAOfflineItemMunicipality类型) 85 | @property (nonatomic, readonly) NSArray *municipalities; 86 | 87 | ///全国概要图 88 | @property (nonatomic, readonly) MAOfflineItemNationWide *nationWide; 89 | 90 | ///城市数组, 包括普通城市与直辖市 91 | @property (nonatomic, readonly) NSArray *cities; 92 | 93 | ///离线数据的版本号(由年月日组成, 如@"20130715") 94 | @property (nonatomic, readonly) NSString *version; 95 | 96 | /** 97 | * @brief 初始化离线地图数据,如果第一次运行且offlinePackage.plist文件不存在,则需要首先执行此方法。否则MAOfflineMap中的省、市、版本号等数据都为空。 98 | * @param block 初始化完成回调 99 | */ 100 | - (void)setupWithCompletionBlock:(void(^)(BOOL setupSuccess))block; 101 | 102 | /** 103 | * @brief 启动下载 104 | * @param item 数据 105 | * @param shouldContinueWhenAppEntersBackground 进入后台是否允许继续下载 106 | * @param downloadBlock 下载过程block 107 | */ 108 | - (void)downloadItem:(MAOfflineItem *)item shouldContinueWhenAppEntersBackground:(BOOL)shouldContinueWhenAppEntersBackground downloadBlock:(MAOfflineMapDownloadBlock)downloadBlock; 109 | 110 | /** 111 | * @brief 监测是否正在下载 112 | * @param item 条目 113 | * @return 是否在下载 114 | */ 115 | - (BOOL)isDownloadingForItem:(MAOfflineItem *)item; 116 | 117 | /** 118 | * @brief 暂停下载 119 | * @param item 条目 120 | */ 121 | - (void)pauseItem:(MAOfflineItem *)item; 122 | 123 | /** 124 | * @brief 删除item对应离线地图数据 125 | * @param item 条目 126 | */ 127 | - (void)deleteItem:(MAOfflineItem *)item; 128 | 129 | /** 130 | * @brief 取消全部下载 131 | */ 132 | - (void)cancelAll; 133 | 134 | /** 135 | * @brief 清除所有在磁盘上的离线地图数据, 之后调用[mapView reloadMap]会使其立即生效 136 | */ 137 | - (void)clearDisk; 138 | 139 | /** 140 | * @brief 监测新版本 141 | * @param newestVersionBlock 回调block 142 | */ 143 | - (void)checkNewestVersion:(MAOfflineMapNewestVersionBlock)newestVersionBlock; 144 | 145 | @end 146 | 147 | @interface MAOfflineMap (Deprecated) 148 | 149 | @property (nonatomic, readonly) NSArray *offlineCities __attribute__ ((deprecated("use cities instead"))); 150 | 151 | - (void)downloadCity:(MAOfflineCity *)city downloadBlock:(MAOfflineMapDownloadBlock)downloadBlock __attribute__ ((deprecated("use - (void)downloadItem:(MAOfflineItem *)item shouldContinueWhenAppEntersBackground:(BOOL)shouldContinueWhenAppEntersBackground downloadBlock:(MAOfflineMapDownloadBlock)downloadBlock instead"))); 152 | 153 | - (void)downloadCity:(MAOfflineCity *)city shouldContinueWhenAppEntersBackground:(BOOL)shouldContinueWhenAppEntersBackground downloadBlock:(MAOfflineMapDownloadBlock)downloadBlock __attribute__ ((deprecated("use - (void)downloadItem:(MAOfflineItem *)item shouldContinueWhenAppEntersBackground:(BOOL)shouldContinueWhenAppEntersBackground downloadBlock:(MAOfflineMapDownloadBlock)downloadBlock instead"))); 154 | 155 | - (BOOL)isDownloadingForCity:(MAOfflineCity *)city __attribute__ ((deprecated("use - (BOOL)isDownloadingForItem:(MAOfflineItem *)item instead"))); 156 | 157 | - (void)pause:(MAOfflineCity *)city __attribute__ ((deprecated("use - (void)pauseItem:(MAOfflineItem *)item instead"))); 158 | 159 | @end 160 | 161 | #endif 162 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAOfflineProvince.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAOfflineProvince.h 3 | // MapKit_static 4 | // 5 | // Created by songjian on 14-4-24. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | 11 | #if MA_INCLUDE_OFFLINE 12 | 13 | #import "MAOfflineItem.h" 14 | #import "MAOfflineItemCommonCity.h" 15 | 16 | ///离线地图,省地图信息 17 | @interface MAOfflineProvince : MAOfflineItem 18 | 19 | ///包含的城市数组(都是MAOfflineItemCommonCity类型) 20 | @property (nonatomic, strong, readonly) NSArray *cities; 21 | 22 | @end 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAOverlay.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAOverlay.h 3 | // MAMapKit 4 | // 5 | // 6 | // Copyright (c) 2011年 Autonavi Inc. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import "MAAnnotation.h" 11 | #import "MAGeometry.h" 12 | 13 | ///该类是地图覆盖物的基类,所有地图的覆盖物需要继承自此类 14 | @protocol MAOverlay 15 | @required 16 | 17 | ///返回区域中心坐标 18 | @property (nonatomic, readonly) CLLocationCoordinate2D coordinate; 19 | 20 | ///区域外接矩形 21 | @property (nonatomic, readonly) MAMapRect boundingMapRect; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAOverlayPathRenderer.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAOverlayPathRenderer.h 3 | // MAMapKit 4 | // 5 | // 6 | // Copyright (c) 2011年 Autonavi Inc. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import 11 | #import "MAOverlayRenderer.h" 12 | 13 | ///该类设置overlay绘制的属性,可以使用该类的子类MACircleRenderer, MAPolylineRenderer, MAPolygonRenderer或者继承该类 14 | @interface MAOverlayPathRenderer : MAOverlayRenderer 15 | 16 | ///填充颜色,默认是kMAOverlayRendererDefaultFillColor 17 | @property (retain) UIColor *fillColor; 18 | 19 | ///笔触颜色,默认是kMAOverlayRendererDefaultStrokeColor 20 | @property (retain) UIColor *strokeColor; 21 | 22 | ///笔触宽度,默认是0 23 | @property CGFloat lineWidth; 24 | 25 | ///LineJoin,默认是kMALineJoinBevel 26 | @property MALineJoinType lineJoinType; 27 | 28 | ///LineCap,默认是kMALineCapButt 29 | @property MALineCapType lineCapType; 30 | 31 | ///MiterLimit,默认是10.f 32 | @property CGFloat miterLimit; 33 | 34 | ///是否绘制成虚线, 默认是NO 35 | @property BOOL lineDash; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAOverlayRenderer.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAOverlayRenderer.h 3 | // MAMapKit 4 | // 5 | // 6 | // Copyright (c) 2011年 Autonavi Inc. All rights reserved. 7 | // 8 | 9 | 10 | 11 | #import "MAConfig.h" 12 | #import 13 | #import "MAOverlay.h" 14 | #import "MALineDrawType.h" 15 | 16 | #define kMAOverlayRendererDefaultStrokeColor [UIColor colorWithRed:0.3 green:0.63 blue:0.89 alpha:0.8] 17 | #define kMAOverlayRendererDefaultFillColor [UIColor colorWithRed:0.77 green:0.88 blue:0.94 alpha:0.8] 18 | 19 | ///该类是地图覆盖物Renderer的基类, 提供绘制overlay的接口但并无实际的实现(render相关方法只能在重写后的glRender方法中使用) 20 | @interface MAOverlayRenderer : NSObject 21 | 22 | ///关联的overlay对象 23 | @property (nonatomic, readonly, retain) id overlay; 24 | 25 | ///缓存的OpenGLES坐标 26 | @property (nonatomic) CGPoint *glPoints; 27 | 28 | ///缓存的OpenGLES坐标 个数 29 | @property (nonatomic) NSUInteger glPointCount; 30 | 31 | ///笔触纹理id, 修改纹理id参考 - (GLuint)loadStrokeTextureImage:(UIImage *)textureImage 32 | @property (nonatomic, readonly) GLuint strokeTextureID; 33 | 34 | 35 | /** 36 | * @brief 初始化并返回一个Overlay Renderer 37 | * @param overlay 关联的overlay对象 38 | * @return 初始化成功则返回overlay view,否则返回nil 39 | */ 40 | - (instancetype)initWithOverlay:(id )overlay; 41 | 42 | /** 43 | * @brief 将MAMapPoint转化为相对于receiver的本地坐标 44 | * @param mapPoint 要转化的MAMapPoint 45 | * @return 相对于receiver的本地坐标 46 | */ 47 | - (CGPoint)pointForMapPoint:(MAMapPoint)mapPoint; 48 | 49 | /** 50 | * @brief 将相对于receiver的本地坐标转化为MAMapPoint 51 | * @param point 要转化的相对于receiver的本地坐标 52 | * @return MAMapPoint 53 | */ 54 | - (MAMapPoint)mapPointForPoint:(CGPoint)point; 55 | 56 | /** 57 | * @brief 将MAMapRect转化为相对于receiver的本地rect 58 | * @param mapRect 要转化的MAMapRect 59 | * @return 相对于receiver的本地rect 60 | */ 61 | - (CGRect)rectForMapRect:(MAMapRect)mapRect; 62 | 63 | /** 64 | * @brief 将相对于receiver的本地rect转化为MAMapRect 65 | * @param rect 要转化的相对于receiver的本地rect 66 | * @return MAMapRect 67 | */ 68 | - (MAMapRect)mapRectForRect:(CGRect)rect; 69 | 70 | /** 71 | * @brief 将MAMapPoint转换为opengles可以直接使用的坐标 72 | * @param mapPoint MAMapPoint坐标 73 | * @return 直接支持的坐标 74 | */ 75 | - (CGPoint)glPointForMapPoint:(MAMapPoint)mapPoint; 76 | 77 | /** 78 | * @brief 批量将MAMapPoint转换为opengles可以直接使用的坐标 79 | * @param mapPoints MAMapPoint坐标数据指针 80 | * @param count 个数 81 | * @return 直接支持的坐标数据指针(需要调用者手动释放) 82 | */ 83 | - (CGPoint *)glPointsForMapPoints:(MAMapPoint *)mapPoints count:(NSUInteger)count; 84 | 85 | /** 86 | * @brief 将屏幕尺寸转换为OpenGLES尺寸 87 | * @param windowWidth 屏幕尺寸 88 | * @return OpenGLES尺寸 89 | */ 90 | - (CGFloat)glWidthForWindowWidth:(CGFloat)windowWidth; 91 | 92 | /** 93 | * @brief OpenGLES坐标系发生改变, 重新计算缓存的OpenGLES坐标 94 | */ 95 | - (void)referenceDidChange; 96 | 97 | /** 98 | * @brief 使用OpenGLES 绘制线 99 | * @param points OpenGLES坐标系点指针, 参考- (CGPoint)glPointForMapPoint:(MAMapPoint)mapPoint, - (CGPoint *)glPointsForMapPoints:(MAMapPoint *)mapPoints count:(NSUInteger)count 100 | * @param pointCount 点个数 101 | * @param strokeColor 线颜色 102 | * @param lineWidth OpenGLES支持线宽尺寸, 参考 - (CGFloat)glWidthForWindowWidth:(CGFloat)windowWidth 103 | * @param looped 是否闭合, 如polyline会设置NO, polygon会设置YES 104 | */ 105 | - (void)renderLinesWithPoints:(CGPoint *)points 106 | pointCount:(NSUInteger)pointCount 107 | strokeColor:(UIColor *)strokeColor 108 | lineWidth:(CGFloat)lineWidth 109 | looped:(BOOL)looped; 110 | 111 | /** 112 | * @brief 使用OpenGLES 绘制线 113 | * @param points OpenGLES坐标系点指针, 参考- (CGPoint)glPointForMapPoint:(MAMapPoint)mapPoint, - (CGPoint *)glPointsForMapPoints:(MAMapPoint *)mapPoints count:(NSUInteger)count 114 | * @param pointCount 点个数 115 | * @param strokeColor 线颜色 116 | * @param lineWidth OpenGLES支持线宽尺寸, 参考 - (CGFloat)glWidthForWindowWidth:(CGFloat)windowWidth 117 | * @param looped 是否闭合, 如polyline会设置NO, polygon会设置YES 118 | * @param lineJoinType 线连接点样式 119 | * @param lineCapType 线端点样式 120 | * @param lineDash 是否是虚线 121 | */ 122 | - (void)renderLinesWithPoints:(CGPoint *)points 123 | pointCount:(NSUInteger)pointCount 124 | strokeColor:(UIColor *)strokeColor 125 | lineWidth:(CGFloat)lineWidth 126 | looped:(BOOL)looped 127 | LineJoinType:(MALineJoinType)lineJoinType 128 | LineCapType:(MALineCapType)lineCapType 129 | lineDash:(BOOL)lineDash; 130 | 131 | /** 132 | * @brief 使用OpenGLES 按指定纹理绘制线 133 | * @param points OpenGLES坐标系点指针, 参考- (CGPoint)glPointForMapPoint:(MAMapPoint)mapPoint, - (CGPoint *)glPointsForMapPoints:(MAMapPoint *)mapPoints count:(NSUInteger)count 134 | * @param pointCount 点个数 135 | * @param lineWidth 线OpenGLES支持线宽尺寸, 参考 - (CGFloat)glWidthForWindowWidth:(CGFloat)windowWidth 136 | * @param textureID 指定的纹理 使用- (void)loadStrokeTextureImage:(UIImage *)textureImage;加载 137 | * @param looped 是否闭合, 如polyline会设置NO, polygon会设置YES 138 | */ 139 | - (void)renderTexturedLinesWithPoints:(CGPoint *)points 140 | pointCount:(NSUInteger)pointCount 141 | lineWidth:(CGFloat)lineWidth 142 | textureID:(GLuint)textureID 143 | looped:(BOOL)looped; 144 | 145 | /** 146 | * @brief 使用OpenGLES 绘制多纹理线 147 | * @param points OpenGLES坐标系点指针, 参考- (CGPoint)glPointForMapPoint:(MAMapPoint)mapPoint, - (CGPoint *)glPointsForMapPoints:(MAMapPoint *)mapPoints count:(NSUInteger)count 148 | * @param pointCount 点个数 149 | * @param lineWidth 线OpenGLES支持线宽尺寸, 参考 - (CGFloat)glWidthForWindowWidth:(CGFloat)windowWidth 150 | * @param textureIDs 各段指定的纹理 使用- (BOOL)loadStrokeTextureImages:(NSArray *)textureImages;加载,在strokeTextureIDs属性中获取 151 | * @param drawStyleIndexes 纹理索引数组,成员为NSNumber,且为非负数,负数按0处理 152 | * @param looped 是否闭合, 如polyline会设置NO, polygon会设置YES 153 | */ 154 | - (void)renderTexturedLinesWithPoints:(CGPoint *)points 155 | pointCount:(NSUInteger)pointCount 156 | lineWidth:(CGFloat)lineWidth 157 | textureIDs:(NSArray *)textureIDs 158 | drawStyleIndexes:(NSArray *)drawStyleIndexes 159 | looped:(BOOL)looped; 160 | 161 | /** 162 | * @brief 使用OpenGLES 绘制多段颜色线 163 | * @param points OpenGLES坐标系点指针, 参考- (CGPoint)glPointForMapPoint:(MAMapPoint)mapPoint, - (CGPoint *)glPointsForMapPoints:(MAMapPoint *)mapPoints count:(NSUInteger)count 164 | * @param pointCount 点个数 165 | * @param strokeColors 各段指定的颜色 166 | * @param drawStyleIndexes 颜色索引数组,成员为NSNumber,且为非负数,负数按0处理 167 | * @param isGradient 颜色是否渐变 168 | * @param lineWidth 线OpenGLES支持线宽尺寸, 参考 - (CGFloat)glWidthForWindowWidth:(CGFloat)windowWidth 169 | * @param looped 是否闭合, 如polyline会设置NO, polygon会设置YES 170 | * @param lineJoinType 线连接点样式 171 | * @param lineCapType 线端点样式 172 | * @param lineDash 是否虚线 173 | */ 174 | - (void)renderLinesWithPoints:(CGPoint *)points 175 | pointCount:(NSUInteger)pointCount 176 | strokeColors:(NSArray *)strokeColors 177 | drawStyleIndexes:(NSArray *)drawStyleIndexes 178 | isGradient:(BOOL)isGradient 179 | lineWidth:(CGFloat)lineWidth 180 | looped:(BOOL)looped 181 | LineJoinType:(MALineJoinType)lineJoinType 182 | LineCapType:(MALineCapType)lineCapType 183 | lineDash:(BOOL)lineDash; 184 | 185 | /** 186 | * @brief 使用OpenGLES 绘制区域 187 | * @param points OpenGLES坐标系点指针, 参考- (CGPoint)glPointForMapPoint:(MAMapPoint)mapPoint, - (CGPoint *)glPointsForMapPoints:(MAMapPoint *)mapPoints count:(NSUInteger)count 188 | * @param pointCount 点个数 189 | * @param fillColor 填充颜色 190 | * @param usingTriangleFan 若必为凸多边形输入YES,可能为凹多边形输入NO 191 | */ 192 | - (void)renderRegionWithPoints:(CGPoint *)points 193 | pointCount:(NSUInteger)pointCount 194 | fillColor:(UIColor *)fillColor 195 | usingTriangleFan:(BOOL)usingTriangleFan; 196 | 197 | /** 198 | * @brief 使用OpenGLES 绘制区域(带轮廓线) \n注意:strokeLineWidth为0 或 strokeColor为nil 时不绘制轮廓线。 199 | * @param points OpenGLES坐标系点指针, 参考- (CGPoint)glPointForMapPoint:(MAMapPoint)mapPoint, - (CGPoint *)glPointsForMapPoints:(MAMapPoint *)mapPoints count:(NSUInteger)count 200 | * @param pointCount 点个数 201 | * @param fillColor 填充颜色 202 | * @param strokeColor 轮廓线颜色 203 | * @param strokeLineWidth 轮廓线宽。OpenGLES支持线宽尺寸, 参考 - (CGFloat)glWidthForWindowWidth:(CGFloat)windowWidth 204 | * @param strokeLineJoinType 轮廓线连接点样式 205 | * @param strokeLineDash 轮廓线是否是虚线 206 | * @param usingTriangleFan 若必为凸多边形输入YES,可能为凹多边形输入NO 207 | */ 208 | - (void)renderStrokedRegionWithPoints:(CGPoint *)points pointCount:(NSUInteger)pointCount 209 | fillColor:(UIColor *)fillColor 210 | strokeColor:(UIColor *)strokeColor 211 | strokeLineWidth:(CGFloat)strokeLineWidth 212 | strokeLineJoinType:(MALineJoinType)strokeLineJoinType 213 | strokeLineDash:(BOOL)strokeLineDash 214 | usingTriangleFan:(BOOL)usingTriangleFan; 215 | 216 | /** 217 | * @brief 使用OpenGLES 绘制区域(带纹理轮廓线) \n注意:strokeLineWidth为0 或 strokeTexture为0 时不绘制轮廓线。 218 | * @param points OpenGLES坐标系点指针, 参考- (CGPoint)glPointForMapPoint:(MAMapPoint)mapPoint, - (CGPoint *)glPointsForMapPoints:(MAMapPoint *)mapPoints count:(NSUInteger)count 219 | * @param pointCount 点个数 220 | * @param fillColor 填充颜色 221 | * @param strokeLineWidth 轮廓线宽。OpenGLES支持线宽尺寸, 参考 - (CGFloat)glWidthForWindowWidth:(CGFloat)windowWidth 222 | * @param strokeTexture 轮廓线纹理。使用- (void)loadStrokeTextureImage:(UIImage *)textureImage;加载 223 | * @param usingTriangleFan 若必为凸多边形输入YES,可能为凹多边形输入NO 224 | */ 225 | - (void)renderTextureStrokedRegionWithPoints:(CGPoint *)points 226 | pointCount:(NSUInteger)pointCount 227 | fillColor:(UIColor *)fillColor 228 | strokeTineWidth:(CGFloat)strokeLineWidth 229 | strokeTextureID:(GLuint)strokeTexture 230 | usingTriangleFan:(BOOL)usingTriangleFan; 231 | 232 | /** 233 | * @brief 使用OpenGLES 绘制图片 234 | * @param textureID OpenGLES纹理ID 235 | * @param points OpenGLES坐标系点指针,纹理矩形的四个顶点坐标,其第一个坐标为图片左上角,依次顺时针传入其他顶点 ,参考- (CGPoint)glPointForMapPoint:(MAMapPoint)mapPoint, - (CGPoint *)glPointsForMapPoints:(MAMapPoint *)mapPoints count:(NSUInteger)count 236 | */ 237 | - (void)renderIconWithTextureID:(GLuint)textureID points:(CGPoint *)points; 238 | 239 | /** 240 | * @brief 使用OpenGLES 绘制图片 241 | * @param textureID OpenGLES纹理ID 242 | * @param points OpenGLES坐标系点指针,纹理矩形的四个顶点坐标,其第一个坐标为图片左上角,依次顺时针传入其他顶点 ,参考- (CGPoint)glPointForMapPoint:(MAMapPoint)mapPoint, - (CGPoint *)glPointsForMapPoints:(MAMapPoint *)mapPoints count:(NSUInteger)count 243 | * @param modulateColor 调节颜色值, 最终颜色 = 纹理色 * modulateColor. 如只需要调节alpha的话就设置为[red=1, green=1, blue=1, alpha=0.5] 244 | */ 245 | - (void)renderIconWithTextureID:(GLuint)textureID points:(CGPoint *)points modulateColor:(UIColor *)modulateColor; 246 | 247 | /** 248 | * @brief 绘制函数(子类需要重载来实现) 249 | */ 250 | - (void)glRender; 251 | 252 | /** 253 | * @brief 加载纹理图片,纹理ID存储在成员strokeTextureID中。纹理图片为nil时,清空原有纹理 254 | * @param textureImage 纹理图片(需满足:长宽相等,且宽度值为2的次幂)。若为nil,则清空原有纹理 255 | * @return openGL纹理ID, 若纹理加载失败返回0 256 | */ 257 | - (GLuint)loadStrokeTextureImage:(UIImage *)textureImage; 258 | 259 | @end 260 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAPinAnnotationView.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAPinAnnotationView.h 3 | // MAMapKitDemo 4 | // 5 | // Created by songjian on 13-1-7. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import "MAMapView.h" 11 | #import "MAAnnotationView.h" 12 | 13 | ///MAPinAnnotationColor 14 | typedef NS_ENUM(NSInteger, MAPinAnnotationColor){ 15 | MAPinAnnotationColorRed = 0, ///< 红色大头针 16 | MAPinAnnotationColorGreen, ///< 绿色大头针 17 | MAPinAnnotationColorPurple ///< 紫色大头针 18 | }; 19 | 20 | ///提供类似大头针效果的annotation view 21 | @interface MAPinAnnotationView : MAAnnotationView 22 | 23 | ///大头针的颜色 24 | @property (nonatomic) MAPinAnnotationColor pinColor; 25 | 26 | ///添加到地图时是否使用下落动画效果 27 | @property (nonatomic) BOOL animatesDrop; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAPointAnnotation.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAPointAnnotation.h 3 | // MAMapKitDemo 4 | // 5 | // Created by songjian on 13-1-7. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import "MAShape.h" 11 | #import 12 | 13 | ///点标注数据 14 | @interface MAPointAnnotation : MAShape 15 | 16 | ///经纬度 17 | @property (nonatomic, assign) CLLocationCoordinate2D coordinate; 18 | 19 | ///是否固定在屏幕一点, 注意,拖动或者手动改变经纬度,都会导致设置失效 20 | @property (nonatomic, assign, getter = isLockedToScreen) BOOL lockedToScreen; 21 | 22 | ///固定屏幕点的坐标 23 | @property (nonatomic, assign) CGPoint lockedScreenPoint; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAPolygon.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAPolygon.h 3 | // MAMapKit 4 | // 5 | // 6 | // Copyright (c) 2011年 Autonavi Inc. All rights reserved. 7 | // 8 | 9 | 10 | 11 | #import "MAConfig.h" 12 | #import 13 | #import "MAMultiPoint.h" 14 | #import "MAOverlay.h" 15 | 16 | ///此类用于定义一个由多个点组成的闭合多边形, 点与点之间按顺序尾部相连, 第一个点与最后一个点相连, 通常MAPolygon是MAPolygonView的model 17 | @interface MAPolygon : MAMultiPoint 18 | 19 | /** 20 | * @brief 根据经纬度坐标数据生成闭合多边形 21 | * @param coords 经纬度坐标点数据,coords对应的内存会拷贝,调用者负责该内存的释放 22 | * @param count 经纬度坐标点数组个数 23 | * @return 新生成的多边形 24 | */ 25 | + (instancetype)polygonWithCoordinates:(CLLocationCoordinate2D *)coords count:(NSUInteger)count; 26 | 27 | /** 28 | * @brief 根据map point数据生成多边形 29 | * @param points map point数据,points对应的内存会拷贝,调用者负责该内存的释放 30 | * @param count 点的个数 31 | * @return 新生成的多边形 32 | */ 33 | + (instancetype)polygonWithPoints:(MAMapPoint *)points count:(NSUInteger)count; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAPolygonRenderer.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAPolygonRenderer.h 3 | // MAMapKit 4 | // 5 | // 6 | // Copyright (c) 2011年 Autonavi Inc. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import 11 | #import "MAPolygon.h" 12 | #import "MAOverlayPathRenderer.h" 13 | 14 | ///此类用于绘制MAPolygon,可以通过MAOverlayPathRenderer修改其fill和stroke attributes 15 | @interface MAPolygonRenderer : MAOverlayPathRenderer 16 | 17 | ///关联的MAPolygon model 18 | @property (nonatomic, readonly) MAPolygon *polygon; 19 | 20 | /** 21 | * @brief 根据指定的多边形生成一个多边形Renderer 22 | * @param polygon polygon 指定的多边形数据对象 23 | * @return 新生成的多边形Renderer 24 | */ 25 | - (instancetype)initWithPolygon:(MAPolygon *)polygon; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAPolyline.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAPolyline.h 3 | // MAMapKit 4 | // 5 | // 6 | // Copyright (c) 2011年 Autonavi Inc. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import "MAMultiPoint.h" 11 | #import "MAOverlay.h" 12 | 13 | ///此类用于定义一个由多个点相连的多段线,点与点之间尾部相连但第一点与最后一个点不相连, 通常MAPolyline是MAPolylineView的model 14 | @interface MAPolyline : MAMultiPoint 15 | 16 | /** 17 | * @brief 根据map point数据生成多段线 18 | * @param points map point数据,points对应的内存会拷贝,调用者负责该内存的释放 19 | * @param count map point个数 20 | * @return 生成的多段线 21 | */ 22 | + (instancetype)polylineWithPoints:(MAMapPoint *)points count:(NSUInteger)count; 23 | 24 | /** 25 | * @brief 根据经纬度坐标数据生成多段线 26 | * @param coords 经纬度坐标数据,coords对应的内存会拷贝,调用者负责该内存的释放 27 | * @param count 经纬度坐标个数 28 | * @return 生成的多段线 29 | */ 30 | + (instancetype)polylineWithCoordinates:(CLLocationCoordinate2D *)coords count:(NSUInteger)count; 31 | 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAPolylineRenderer.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAPolylineRenderer.h 3 | // MAMapKit 4 | // 5 | // 6 | // Copyright (c) 2011年 Autonavi Inc. All rights reserved. 7 | // 8 | 9 | 10 | 11 | #import "MAConfig.h" 12 | #import 13 | #import "MAPolyline.h" 14 | #import "MAOverlayPathRenderer.h" 15 | 16 | ///此类用于绘制MAPolyline,可以通过MAOverlayPathRenderer修改其fill和stroke attributes 17 | @interface MAPolylineRenderer : MAOverlayPathRenderer 18 | 19 | ///关联的MAPolyline model 20 | @property (nonatomic, readonly) MAPolyline *polyline; 21 | 22 | /** 23 | * @brief 根据指定的MAPolyline生成一个多段线Renderer 24 | * @param polyline 指定MAPolyline 25 | * @return 新生成的多段线Renderer 26 | */ 27 | - (instancetype)initWithPolyline:(MAPolyline *)polyline; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAShape.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAShape.h 3 | // MAMapKit 4 | // 5 | // 6 | // Copyright (c) 2011年 Autonavi Inc. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import 11 | #import "MAAnnotation.h" 12 | 13 | ///该类为一个抽象类,定义了基于MAAnnotation的MAShape类的基本属性和行为,不能直接使用,必须子类化之后才能使用 14 | @interface MAShape : NSObject { 15 | 16 | NSString *_title; ///<标题 17 | NSString *_subtitle; ///<副标题 18 | } 19 | 20 | ///标题 21 | @property (nonatomic, copy) NSString *title; 22 | 23 | ///副标题 24 | @property (nonatomic, copy) NSString *subtitle; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MATileOverlay.h: -------------------------------------------------------------------------------- 1 | // 2 | // MATileOverlay.h 3 | // MapKit_static 4 | // 5 | // Created by Li Fei on 11/22/13. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import "MAOverlay.h" 11 | 12 | ///该类是覆盖在球面墨卡托投影上的图片tiles的数据源 13 | @interface MATileOverlay : NSObject 14 | 15 | ///默认tileSize 256x256 16 | @property (readonly) CGSize tileSize; 17 | 18 | ///tileOverlay的可见最小Zoom值 19 | @property NSInteger minimumZ; 20 | 21 | ///tileOverlay的可见最大Zoom值 22 | @property NSInteger maximumZ; 23 | 24 | ///同initWithURLTemplate:中的URLTemplate 25 | @property (readonly) NSString *URLTemplate; 26 | 27 | ///暂未开放 28 | @property (nonatomic) BOOL canReplaceMapContent; 29 | 30 | ///区域外接矩形,可用来设定tileOverlay的可渲染区域 31 | @property (nonatomic) MAMapRect boundingMapRect; 32 | 33 | /** 34 | * @brief 根据指定的URLTemplate生成tileOverlay 35 | * @param URLTemplate URLTemplate是一个包含"{x}","{y}","{z}","{scale}"的字符串,"{x}","{y}","{z}","{scale}"会被tile path的值所替换,并生成用来加载tile图片数据的URL 。例如:@link http://server/path?x={x}&y={y}&z={z}&scale={scale} 36 | * @return 以指定的URLTemplate字符串生成tileOverlay 37 | */ 38 | - (id)initWithURLTemplate:(NSString *)URLTemplate; 39 | 40 | @end 41 | 42 | ///MATileOverlayPath 43 | struct MATileOverlayPath{ 44 | NSInteger x; ///< x坐标 45 | NSInteger y; ///< y坐标 46 | NSInteger z; ///< 缩放级别 47 | CGFloat contentScaleFactor; ///< 屏幕的scale factor 48 | }; 49 | typedef struct MATileOverlayPath MATileOverlayPath; 50 | 51 | ///此category中的方法来自定义加载MKTileOverlay 52 | @interface MATileOverlay (CustomLoading) 53 | 54 | /** 55 | * @brief 以tile path生成URL。用于加载tile,此方法默认填充URLTemplate 56 | * @param path tile path 57 | * @return 以tile path生成tileOverlay 58 | */ 59 | - (NSURL *)URLForTilePath:(MATileOverlayPath)path; 60 | 61 | /** 62 | * @brief 加载被请求的tile,并以tile数据或加载tile失败error访问回调block;默认实现为首先用URLForTilePath去获取URL,然后用异步NSURLConnection加载tile 63 | * @param path tile path 64 | * @param result 用来传入tile数据或加载tile失败的error访问的回调block 65 | */ 66 | - (void)loadTileAtPath:(MATileOverlayPath)path result:(void (^)(NSData *tileData, NSError *error))result; 67 | 68 | @end 69 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MATileOverlayRenderer.h: -------------------------------------------------------------------------------- 1 | // 2 | // MATileOverlayRenderer.h 3 | // MapKit_static 4 | // 5 | // Created by Li Fei on 11/25/13. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import "MAOverlayRenderer.h" 11 | #import "MATileOverlay.h" 12 | 13 | ///此类是将MAOverlayRenderer中的覆盖tiles显示在地图上的Renderer 14 | @interface MATileOverlayRenderer : MAOverlayRenderer 15 | 16 | ///覆盖在球面墨卡托投影上的图片tiles的数据源 17 | @property (nonatomic ,readonly) MATileOverlay *tileOverlay; 18 | 19 | /** 20 | * @brief 根据指定的tileOverlay生成将tiles显示在地图上的Renderer 21 | * @param tileOverlay 制定了覆盖图片,以及图片的覆盖区域的groundOverlay 22 | * @return 以tileOverlay新生成Renderer 23 | */ 24 | - (instancetype)initWithTileOverlay:(MATileOverlay *)tileOverlay; 25 | 26 | /** 27 | * @brief 清除所有tile的缓存,并刷新overlay 28 | */ 29 | - (void)reloadData; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MATouchPoi.h: -------------------------------------------------------------------------------- 1 | // 2 | // MATouchPoi.h 3 | // MapKit_static 4 | // 5 | // Created by songjian on 13-7-17. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import 11 | #import 12 | 13 | ///MATouchPoi 定义 14 | @interface MATouchPoi : NSObject 15 | 16 | ///名称 17 | @property (nonatomic, copy, readonly) NSString *name; 18 | 19 | ///经纬度坐标 20 | @property (nonatomic, assign, readonly) CLLocationCoordinate2D coordinate; 21 | 22 | ///poi的ID 23 | @property (nonatomic, copy, readonly) NSString *uid; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MATraceLocation.h: -------------------------------------------------------------------------------- 1 | // 2 | // MATraceLocation.h 3 | // MAMapKit 4 | // 5 | // Created by shaobin on 16/9/1. 6 | // Copyright © 2016年 AutoNavi. All rights reserved. 7 | // 8 | 9 | 10 | 11 | #import "MAConfig.h" 12 | 13 | #if MA_INCLUDE_TRACE_CORRECT 14 | 15 | #import 16 | #import 17 | 18 | ///返回轨迹点定义 19 | @interface MATracePoint : NSObject 20 | 21 | ///纬度坐标 22 | @property (nonatomic, assign) CLLocationDegrees latitude; 23 | ///经度坐标 24 | @property (nonatomic, assign) CLLocationDegrees longitude; 25 | 26 | @end 27 | 28 | ///传入轨迹点定义 29 | @interface MATraceLocation : NSObject 30 | 31 | ///经纬度坐标 32 | @property (nonatomic, assign) CLLocationCoordinate2D loc; 33 | ///角度, 标识移动方向,单位度 34 | @property (nonatomic, assign) double angle; 35 | ///速度,单位km/h 36 | @property (nonatomic, assign) double speed; 37 | ///时间,单位毫秒 38 | @property (nonatomic, assign) double time; 39 | 40 | @end 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MATraceManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // MATraceManager.h 3 | // MAMapKit 4 | // 5 | // Created by shaobin on 16/9/1. 6 | // Copyright © 2016年 AutoNavi. All rights reserved. 7 | // 8 | 9 | 10 | 11 | #import "MAConfig.h" 12 | 13 | #if MA_INCLUDE_TRACE_CORRECT 14 | 15 | #import 16 | #import 17 | #import "MATraceLocation.h" 18 | 19 | ///处理中回调, index: 批次编号,0 based 20 | typedef void(^MAProcessingCallback)(int index, NSArray *points); 21 | 22 | ///成功回调,distance:距离,单位米 23 | typedef void(^MAFinishCallback)(NSArray *points, double distance); 24 | 25 | ///失败回调 26 | typedef void(^MAFailedCallback)(int errorCode, NSString *errorDesc); 27 | 28 | ///轨迹纠偏管理类 29 | @interface MATraceManager : NSObject 30 | 31 | /** 32 | * @brief 获取纠偏后的经纬度点集 33 | * @param locations 待纠偏处理的点集, 顺序即为传入的顺序 34 | * @param type loctions经纬度坐标的类型, 如果已经是高德坐标系,传 -1 35 | * @param processingCallback 如果一次传入点过多,内部会分批处理。每处理完一批就调用此回调 36 | * @param finishCallback 全部处理完毕调用此回调 37 | * @param failedCallback 失败调用此回调 38 | * @return 返回一个NSOperation对象,可调用cancel取消 39 | */ 40 | - (NSOperation *)queryProcessedTraceWith:(NSArray*)locations 41 | type:(AMapCoordinateType)type 42 | processingCallback:(MAProcessingCallback)processingCallback 43 | finishCallback:(MAFinishCallback)finishCallback 44 | failedCallback:(MAFailedCallback)failedCallback; 45 | 46 | @end 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/Headers/MAUserLocation.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAUserLocation.h 3 | // MAMapKit 4 | // 5 | // Created by yin cai on 12-1-4. 6 | // Copyright © 2016 Amap. All rights reserved. 7 | // 8 | 9 | #import "MAConfig.h" 10 | #import 11 | #import "MAAnnotation.h" 12 | 13 | @class CLLocation; 14 | @class CLHeading; 15 | 16 | ///定位信息类 17 | @interface MAUserLocation : NSObject 18 | 19 | ///位置更新状态,如果正在更新位置信息,则该值为YES 20 | @property (readonly, nonatomic, getter = isUpdating) BOOL updating; 21 | 22 | ///位置信息,如果MAMapView的showsUserLocation为NO,或者尚未定位成功,则该值为nil 23 | @property (readonly, nonatomic, strong) CLLocation *location; 24 | 25 | ///heading信息 26 | @property (readonly, nonatomic, strong) CLHeading *heading; 27 | 28 | ///定位标注点要显示的标题信息 29 | @property (nonatomic, copy) NSString *title; 30 | 31 | ///定位标注点要显示的子标题信息 32 | @property (nonatomic, copy) NSString *subtitle; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Pods/AMap3DMap/MAMapKit.framework/MAMapKit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMap3DMap/MAMapKit.framework/MAMapKit -------------------------------------------------------------------------------- /Pods/AMapFoundation/AMapFoundationKit.framework/1.3.1.4f053bd: -------------------------------------------------------------------------------- 1 | 1.3.1.4f053bd 2 | -------------------------------------------------------------------------------- /Pods/AMapFoundation/AMapFoundationKit.framework/AMapFoundationKit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/Pods/AMapFoundation/AMapFoundationKit.framework/AMapFoundationKit -------------------------------------------------------------------------------- /Pods/AMapFoundation/AMapFoundationKit.framework/Headers/AMapFoundationKit.h: -------------------------------------------------------------------------------- 1 | // 2 | // AMapFoundationKit.h 3 | // AMapFoundationKit 4 | // 5 | // Created by xiaoming han on 15/10/28. 6 | // Copyright © 2015年 AutoNavi. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import 12 | #import 13 | #import 14 | 15 | #import -------------------------------------------------------------------------------- /Pods/AMapFoundation/AMapFoundationKit.framework/Headers/AMapFoundationVersion.h: -------------------------------------------------------------------------------- 1 | // 2 | // AMapFoundationVersion.h 3 | // AMapFoundation 4 | // 5 | // Created by xiaoming han on 15/10/26. 6 | // Copyright © 2015年 AutoNavi. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #ifndef AMapFoundationVersion_h 12 | #define AMapFoundationVersion_h 13 | 14 | #define AMapFoundationVersionNumber 10301 15 | 16 | FOUNDATION_EXTERN NSString * const AMapFoundationVersion; 17 | FOUNDATION_EXTERN NSString * const AMapFoundationName; 18 | 19 | #endif /* AMapFoundationVersion_h */ 20 | -------------------------------------------------------------------------------- /Pods/AMapFoundation/AMapFoundationKit.framework/Headers/AMapServices.h: -------------------------------------------------------------------------------- 1 | // 2 | // AMapSearchServices.h 3 | // AMapSearchKit 4 | // 5 | // Created by xiaoming han on 15/6/18. 6 | // Copyright (c) 2015年 xiaoming han. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AMapServices : NSObject 12 | 13 | + (AMapServices *)sharedServices; 14 | 15 | /** 16 | * APIkey。设置key,需要绑定对应的bundle id。 17 | */ 18 | @property (nonatomic, copy) NSString *apiKey; 19 | 20 | /** 21 | * 是否开启HTTPS,默认为NO。 22 | * 目前已支持服务:key鉴权、云图(不支持iOS9 SSL限制)、搜索(短串分享除外)。 23 | */ 24 | @property (nonatomic, assign) BOOL enableHTTPS; 25 | 26 | /** 27 | * 是否启用崩溃日志上传。默认为YES, 只有在真机上设置有效。 28 | * 开启崩溃日志上传有助于我们更好的了解SDK的状况,可以帮助我们持续优化和改进SDK。 29 | * 需要注意的是,我是通过设置NSUncaughtExceptionHandler来捕获异常的,如果您的APP中使用了其他收集崩溃日志的SDK,或者自己有设置NSUncaughtExceptionHandler的话,请保证 AMapServices 的初始化是在其他设置NSUncaughtExceptionHandler操作之后进行的,我们的handler会再处理完异常后调用前一次设置的handler,保证之前设置的handler会被执行。 30 | */ 31 | @property (nonatomic, assign) BOOL crashReportEnabled; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Pods/AMapFoundation/AMapFoundationKit.framework/Headers/AMapURLSearch.h: -------------------------------------------------------------------------------- 1 | // 2 | // AMapURLSearch.h 3 | // AMapFoundation 4 | // 5 | // Created by xiaoming han on 15/10/28. 6 | // Copyright © 2015年 AutoNavi. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AMapURLSearchConfig.h" 11 | 12 | /// 调起高德地图URL进行搜索,若是调起失败,可使用`+ (void)getLatestAMapApp;`方法获取最新版高德地图app. 13 | @interface AMapURLSearch : NSObject 14 | 15 | /// 打开高德地图AppStore页面 16 | + (void)getLatestAMapApp; 17 | 18 | /** 19 | * 调起高德地图app驾车导航. 20 | * 21 | * @param config 配置参数. 22 | * 23 | * @return 是否成功.若为YES则成功调起,若为NO则无法调起. 24 | */ 25 | + (BOOL)openAMapNavigation:(AMapNaviConfig *)config; 26 | 27 | /** 28 | * 调起高德地图app进行路径规划. 29 | * 30 | * @param config 配置参数. 31 | * 32 | * @return 是否成功. 33 | */ 34 | + (BOOL)openAMapRouteSearch:(AMapRouteConfig *)config; 35 | 36 | /** 37 | * 调起高德地图app进行POI搜索. 38 | * 39 | * @param config 配置参数. 40 | * 41 | * @return 是否成功. 42 | */ 43 | + (BOOL)openAMapPOISearch:(AMapPOIConfig *)config; 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /Pods/AMapFoundation/AMapFoundationKit.framework/Headers/AMapURLSearchConfig.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAMapURLSearchConfig.h 3 | // MAMapKitNew 4 | // 5 | // Created by xiaoming han on 15/5/25. 6 | // Copyright (c) 2015年 xiaoming han. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "AMapURLSearchType.h" 12 | 13 | /// 导航配置信息 14 | @interface AMapNaviConfig : NSObject 15 | 16 | /// 应用返回的Scheme 17 | @property (nonatomic, copy) NSString *appScheme; 18 | 19 | /// 应用名称 20 | @property (nonatomic, copy) NSString *appName; 21 | 22 | /// 终点 23 | @property (nonatomic, assign) CLLocationCoordinate2D destination; 24 | 25 | /// 导航策略 26 | @property (nonatomic, assign) AMapDrivingStrategy strategy; 27 | 28 | @end 29 | 30 | #pragma mark - 31 | 32 | /// 路径搜索配置信息 33 | @interface AMapRouteConfig : NSObject 34 | 35 | /// 应用返回的Scheme 36 | @property (nonatomic, copy) NSString *appScheme; 37 | 38 | /// 应用名称 39 | @property (nonatomic, copy) NSString *appName; 40 | 41 | /// 起点坐标 42 | @property (nonatomic, assign) CLLocationCoordinate2D startCoordinate; 43 | 44 | /// 终点坐标 45 | @property (nonatomic, assign) CLLocationCoordinate2D destinationCoordinate; 46 | 47 | /// 驾车策略 48 | @property (nonatomic, assign) AMapDrivingStrategy drivingStrategy; 49 | 50 | /// 公交策略 51 | @property (nonatomic, assign) AMapTransitStrategy transitStrategy; 52 | 53 | /// 路径规划类型 54 | @property (nonatomic, assign) AMapRouteSearchType routeType; 55 | 56 | @end 57 | 58 | #pragma mark - 59 | 60 | /// POI搜索配置信息 61 | @interface AMapPOIConfig : NSObject 62 | 63 | /// 应用返回的Scheme 64 | @property (nonatomic, copy) NSString *appScheme; 65 | 66 | /// 应用名称 67 | @property (nonatomic, copy) NSString *appName; 68 | 69 | /// 搜索关键字 70 | @property (nonatomic, copy) NSString *keywords; 71 | 72 | /// 左上角坐标 73 | @property (nonatomic, assign) CLLocationCoordinate2D leftTopCoordinate; 74 | 75 | /// 右下角坐标 76 | @property (nonatomic, assign) CLLocationCoordinate2D rightBottomCoordinate; 77 | 78 | @end 79 | 80 | -------------------------------------------------------------------------------- /Pods/AMapFoundation/AMapFoundationKit.framework/Headers/AMapURLSearchType.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAMapURLSearchType.h 3 | // MAMapKitNew 4 | // 5 | // Created by xiaoming han on 15/5/25. 6 | // Copyright (c) 2015年 xiaoming han. All rights reserved. 7 | // 8 | 9 | /// 驾车策略 10 | typedef NS_ENUM(NSInteger, AMapDrivingStrategy) 11 | { 12 | AMapDrivingStrategyFastest = 0, //速度最快 13 | AMapDrivingStrategyMinFare = 1, //避免收费 14 | AMapDrivingStrategyShortest = 2, //距离最短 15 | 16 | AMapDrivingStrategyNoHighways = 3, //不走高速 17 | AMapDrivingStrategyAvoidCongestion = 4, //躲避拥堵 18 | 19 | AMapDrivingStrategyAvoidHighwaysAndFare = 5, //不走高速且避免收费 20 | AMapDrivingStrategyAvoidHighwaysAndCongestion = 6, //不走高速且躲避拥堵 21 | AMapDrivingStrategyAvoidFareAndCongestion = 7, //躲避收费和拥堵 22 | AMapDrivingStrategyAvoidHighwaysAndFareAndCongestion = 8 //不走高速躲避收费和拥堵 23 | }; 24 | 25 | /// 公交策略 26 | typedef NS_ENUM(NSInteger, AMapTransitStrategy) 27 | { 28 | AMapTransitStrategyFastest = 0,//最快捷 29 | AMapTransitStrategyMinFare = 1,//最经济 30 | AMapTransitStrategyMinTransfer = 2,//最少换乘 31 | AMapTransitStrategyMinWalk = 3,//最少步行 32 | AMapTransitStrategyMostComfortable = 4,//最舒适 33 | AMapTransitStrategyAvoidSubway = 5,//不乘地铁 34 | }; 35 | 36 | /// 路径规划类型 37 | typedef NS_ENUM(NSInteger, AMapRouteSearchType) 38 | { 39 | AMapRouteSearchTypeDriving = 0, //驾车 40 | AMapRouteSearchTypeTransit = 1, //公交 41 | AMapRouteSearchTypeWalking = 2, //步行 42 | }; 43 | 44 | 45 | -------------------------------------------------------------------------------- /Pods/AMapFoundation/AMapFoundationKit.framework/Headers/AMapUtility.h: -------------------------------------------------------------------------------- 1 | // 2 | // AMapUtility.h 3 | // AMapFoundation 4 | // 5 | // Created by xiaoming han on 15/10/27. 6 | // Copyright © 2015年 AutoNavi. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | /** 13 | * 工具方法 14 | */ 15 | 16 | FOUNDATION_STATIC_INLINE NSString * AMapEmptyStringIfNil(NSString *s) 17 | { 18 | return s ? s : @""; 19 | } 20 | 21 | 22 | /// 坐标类型枚举 23 | typedef NS_ENUM(NSUInteger, AMapCoordinateType) 24 | { 25 | AMapCoordinateTypeBaidu = 0, // Baidu 26 | AMapCoordinateTypeMapBar, // MapBar 27 | AMapCoordinateTypeMapABC, // MapABC 28 | AMapCoordinateTypeSoSoMap, // SoSoMap 29 | AMapCoordinateTypeAliYun, // AliYun 30 | AMapCoordinateTypeGoogle, // Google 31 | AMapCoordinateTypeGPS, // GPS 32 | }; 33 | 34 | /** 35 | * 转换目标经纬度为高德坐标系 36 | * 37 | * @param coordinate 待转换的经纬度 38 | * @param type 坐标系类型 39 | * 40 | * @return 高德坐标系经纬度 41 | */ 42 | FOUNDATION_EXTERN CLLocationCoordinate2D AMapCoordinateConvert(CLLocationCoordinate2D coordinate, AMapCoordinateType type); 43 | 44 | /** 45 | * 判断目标经纬度是否在大陆以及港、澳地区。输入参数为高德坐标系。 46 | * 47 | * @param coordinate 待判断的目标经纬度 48 | * @return 是否在大陆以及港、澳地区 49 | */ 50 | FOUNDATION_EXTERN BOOL AMapDataAvailableForCoordinate(CLLocationCoordinate2D coordinate); 51 | 52 | 53 | -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAAnimatedAnnotation.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAAnimatedAnnotation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAAnnotation.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAAnnotation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAAnnotationMoveAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAAnnotationMoveAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAAnnotationView.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAAnnotationView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MACircle.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MACircle.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MACircleRenderer.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MACircleRenderer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAConfig.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAConfig.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAGeodesicPolyline.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAGeodesicPolyline.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAGeometry.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAGeometry.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAGroundOverlay.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAGroundOverlay.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAGroundOverlayRenderer.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAGroundOverlayRenderer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAHeatMapTileOverlay.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAHeatMapTileOverlay.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAIndoorInfo.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAIndoorInfo.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MALineDrawType.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MALineDrawType.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAMapKit.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAMapKit.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAMapStatus.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAMapStatus.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAMapVersion.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAMapVersion.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAMapView.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAMapView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAMultiColoredPolylineRenderer.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAMultiColoredPolylineRenderer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAMultiPoint.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAMultiPoint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAMultiPolyline.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAMultiPolyline.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAMultiTexturePolylineRenderer.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAMultiTexturePolylineRenderer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAOfflineCity.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAOfflineCity.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAOfflineItem.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAOfflineItem.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAOfflineItemCommonCity.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAOfflineItemCommonCity.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAOfflineItemMunicipality.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAOfflineItemMunicipality.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAOfflineItemNationWide.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAOfflineItemNationWide.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAOfflineMap.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAOfflineMap.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAOfflineProvince.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAOfflineProvince.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAOverlay.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAOverlay.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAOverlayPathRenderer.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAOverlayPathRenderer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAOverlayRenderer.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAOverlayRenderer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAPinAnnotationView.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAPinAnnotationView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAPointAnnotation.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAPointAnnotation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAPolygon.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAPolygon.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAPolygonRenderer.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAPolygonRenderer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAPolyline.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAPolyline.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAPolylineRenderer.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAPolylineRenderer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAShape.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAShape.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MATileOverlay.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MATileOverlay.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MATileOverlayRenderer.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MATileOverlayRenderer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MATouchPoi.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MATouchPoi.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MATraceLocation.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MATraceLocation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MATraceManager.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MATraceManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMap3DMap/MAMapKit/MAUserLocation.h: -------------------------------------------------------------------------------- 1 | ../../../../AMap3DMap/MAMapKit.framework/Headers/MAUserLocation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMapFoundation/AMapFoundationKit/AMapFoundationKit.h: -------------------------------------------------------------------------------- 1 | ../../../../AMapFoundation/AMapFoundationKit.framework/Headers/AMapFoundationKit.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMapFoundation/AMapFoundationKit/AMapFoundationVersion.h: -------------------------------------------------------------------------------- 1 | ../../../../AMapFoundation/AMapFoundationKit.framework/Headers/AMapFoundationVersion.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMapFoundation/AMapFoundationKit/AMapServices.h: -------------------------------------------------------------------------------- 1 | ../../../../AMapFoundation/AMapFoundationKit.framework/Headers/AMapServices.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMapFoundation/AMapFoundationKit/AMapURLSearch.h: -------------------------------------------------------------------------------- 1 | ../../../../AMapFoundation/AMapFoundationKit.framework/Headers/AMapURLSearch.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMapFoundation/AMapFoundationKit/AMapURLSearchConfig.h: -------------------------------------------------------------------------------- 1 | ../../../../AMapFoundation/AMapFoundationKit.framework/Headers/AMapURLSearchConfig.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMapFoundation/AMapFoundationKit/AMapURLSearchType.h: -------------------------------------------------------------------------------- 1 | ../../../../AMapFoundation/AMapFoundationKit.framework/Headers/AMapURLSearchType.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AMapFoundation/AMapFoundationKit/AMapUtility.h: -------------------------------------------------------------------------------- 1 | ../../../../AMapFoundation/AMapFoundationKit.framework/Headers/AMapUtility.h -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AMap3DMap (4.6.0): 3 | - AMapFoundation (~> 1.3) 4 | - AMapFoundation (1.3.1) 5 | 6 | DEPENDENCIES: 7 | - AMap3DMap 8 | 9 | SPEC CHECKSUMS: 10 | AMap3DMap: 0b1263f9e58d6f96df145c9d5012987aa13f67d9 11 | AMapFoundation: 636834a27cd003084f56b4232f3031e6a44c7e7e 12 | 13 | PODFILE CHECKSUM: 253b29689f048ea387df49c136fa2c3984e992f4 14 | 15 | COCOAPODS: 1.2.0 16 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-test/Pods-test-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## AMap3DMap 5 | 6 | Copyright © 2014 AutoNavi. All Rights Reserved. 7 | 8 | 9 | ## AMapFoundation 10 | 11 | Copyright © 2014 AutoNavi. All Rights Reserved. 12 | 13 | Generated by CocoaPods - https://cocoapods.org 14 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-test/Pods-test-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Copyright © 2014 AutoNavi. All Rights Reserved. 18 | 19 | License 20 | Copyright 21 | Title 22 | AMap3DMap 23 | Type 24 | PSGroupSpecifier 25 | 26 | 27 | FooterText 28 | Copyright © 2014 AutoNavi. All Rights Reserved. 29 | 30 | License 31 | Copyright 32 | Title 33 | AMapFoundation 34 | Type 35 | PSGroupSpecifier 36 | 37 | 38 | FooterText 39 | Generated by CocoaPods - https://cocoapods.org 40 | Title 41 | 42 | Type 43 | PSGroupSpecifier 44 | 45 | 46 | StringsTable 47 | Acknowledgements 48 | Title 49 | Acknowledgements 50 | 51 | 52 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-test/Pods-test-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_test : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_test 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-test/Pods-test-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" 63 | 64 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 65 | code_sign_cmd="$code_sign_cmd &" 66 | fi 67 | echo "$code_sign_cmd" 68 | eval "$code_sign_cmd" 69 | fi 70 | } 71 | 72 | # Strip invalid architectures 73 | strip_invalid_archs() { 74 | binary="$1" 75 | # Get architectures for current file 76 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 77 | stripped="" 78 | for arch in $archs; do 79 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 80 | # Strip non-valid architectures in-place 81 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 82 | stripped="$stripped $arch" 83 | fi 84 | done 85 | if [[ "$stripped" ]]; then 86 | echo "Stripped $binary of architectures:$stripped" 87 | fi 88 | } 89 | 90 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 91 | wait 92 | fi 93 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-test/Pods-test-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | case "${TARGETED_DEVICE_FAMILY}" in 12 | 1,2) 13 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 14 | ;; 15 | 1) 16 | TARGET_DEVICE_ARGS="--target-device iphone" 17 | ;; 18 | 2) 19 | TARGET_DEVICE_ARGS="--target-device ipad" 20 | ;; 21 | 3) 22 | TARGET_DEVICE_ARGS="--target-device tv" 23 | ;; 24 | *) 25 | TARGET_DEVICE_ARGS="--target-device mac" 26 | ;; 27 | esac 28 | 29 | install_resource() 30 | { 31 | if [[ "$1" = /* ]] ; then 32 | RESOURCE_PATH="$1" 33 | else 34 | RESOURCE_PATH="${PODS_ROOT}/$1" 35 | fi 36 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 37 | cat << EOM 38 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 39 | EOM 40 | exit 1 41 | fi 42 | case $RESOURCE_PATH in 43 | *.storyboard) 44 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 45 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 46 | ;; 47 | *.xib) 48 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 49 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 50 | ;; 51 | *.framework) 52 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 53 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 54 | echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 55 | rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 56 | ;; 57 | *.xcdatamodel) 58 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" 59 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 60 | ;; 61 | *.xcdatamodeld) 62 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" 63 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 64 | ;; 65 | *.xcmappingmodel) 66 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" 67 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 68 | ;; 69 | *.xcassets) 70 | ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" 71 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 72 | ;; 73 | *) 74 | echo "$RESOURCE_PATH" 75 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 76 | ;; 77 | esac 78 | } 79 | if [[ "$CONFIGURATION" == "Debug" ]]; then 80 | install_resource "AMap3DMap/MAMapKit.framework/AMap.bundle" 81 | fi 82 | if [[ "$CONFIGURATION" == "Release" ]]; then 83 | install_resource "AMap3DMap/MAMapKit.framework/AMap.bundle" 84 | fi 85 | 86 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 87 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 88 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 89 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 90 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 91 | fi 92 | rm -f "$RESOURCES_TO_COPY" 93 | 94 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 95 | then 96 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 97 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 98 | while read line; do 99 | if [[ $line != "${PODS_ROOT}*" ]]; then 100 | XCASSET_FILES+=("$line") 101 | fi 102 | done <<<"$OTHER_XCASSETS" 103 | 104 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 105 | fi 106 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-test/Pods-test.debug.xcconfig: -------------------------------------------------------------------------------- 1 | ARCHS = $(ARCHS_STANDARD) 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AMap3DMap" "${PODS_ROOT}/AMapFoundation" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AMap3DMap" "${PODS_ROOT}/Headers/Public/AMapFoundation" 5 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AMap3DMap" -isystem "${PODS_ROOT}/Headers/Public/AMapFoundation" 6 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"stdc++.6.0.9" -l"z" -framework "AMapFoundationKit" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "JavaScriptCore" -framework "MAMapKit" -framework "OpenGLES" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" 7 | PODS_BUILD_DIR = $BUILD_DIR 8 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-test/Pods-test.release.xcconfig: -------------------------------------------------------------------------------- 1 | ARCHS = $(ARCHS_STANDARD) 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AMap3DMap" "${PODS_ROOT}/AMapFoundation" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AMap3DMap" "${PODS_ROOT}/Headers/Public/AMapFoundation" 5 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AMap3DMap" -isystem "${PODS_ROOT}/Headers/Public/AMapFoundation" 6 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"stdc++.6.0.9" -l"z" -framework "AMapFoundationKit" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "JavaScriptCore" -framework "MAMapKit" -framework "OpenGLES" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" 7 | PODS_BUILD_DIR = $BUILD_DIR 8 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # iOS_MovingAnnotation_Demo 2 | annotation移动及转向动画 3 | -查看Demo请打开test.xcworkspace文件 4 | 5 | ### 使用教程 6 | 7 | - 添加MovingAnnotationSource文件夹内代码 8 | - 使用接口 9 | ``` 10 | /*! 11 | @brief 添加动画 12 | @param points 轨迹点串,每个轨迹点为TracingPoint类型 13 | @param duration 动画时长,包括从上一个动画的终止点过渡到新增动画起始点的时间 14 | */ 15 | - (void)addTrackingAnimationForPoints:(NSArray *)points duration:(CFTimeInterval)duration; 16 | ``` 17 | 其中,轨迹点类型为: 18 | ``` 19 | @interface TracingPoint : NSObject 20 | /*! 21 | @brief 轨迹经纬度 22 | */ 23 | @property (nonatomic) CLLocationCoordinate2D coordinate; 24 | /*! 25 | @brief 方向,有效范围0~359.9度 26 | */ 27 | @property (nonatomic) CLLocationDirection course; 28 | @end 29 | ``` 30 | 31 | 注:多次调用添加动画接口,会按调用顺序依次执行添加的动画。 32 | 详见工程test文件夹。 33 | 34 | 35 | ### 截图效果 36 | 37 | ![result](https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/master/ios_movingAnnotation_demo_gif.gif) 38 | -------------------------------------------------------------------------------- /ios_movingAnnotation_demo_gif.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/ios_movingAnnotation_demo_gif.gif -------------------------------------------------------------------------------- /test.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /test.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // test 4 | // 5 | // Created by yi chen on 14-8-20. 6 | // Copyright (c) 2014年 yi chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /test/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // test 4 | // 5 | // Created by yi chen on 14-8-20. 6 | // Copyright (c) 2014年 yi chen. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | #import 11 | #import 12 | #import "ViewController.h" 13 | 14 | @implementation AppDelegate 15 | 16 | 17 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 18 | { 19 | // Override point for customization after application launch. 20 | [[AMapServices sharedServices] setApiKey:@"440dc1033175fa310a34d3a752697890"]; 21 | self.window.rootViewController = [[ViewController alloc] init]; 22 | [self.window makeKeyAndVisible]; 23 | 24 | return YES; 25 | } 26 | 27 | - (void)applicationWillResignActive:(UIApplication *)application 28 | { 29 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 30 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 31 | } 32 | 33 | - (void)applicationDidEnterBackground:(UIApplication *)application 34 | { 35 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 36 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 37 | } 38 | 39 | - (void)applicationWillEnterForeground:(UIApplication *)application 40 | { 41 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 42 | } 43 | 44 | - (void)applicationDidBecomeActive:(UIApplication *)application 45 | { 46 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 47 | } 48 | 49 | - (void)applicationWillTerminate:(UIApplication *)application 50 | { 51 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 52 | } 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /test/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "60x60", 21 | "scale" : "3x" 22 | } 23 | ], 24 | "info" : { 25 | "version" : 1, 26 | "author" : "xcode" 27 | } 28 | } -------------------------------------------------------------------------------- /test/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /test/MovingAnnotationSource/CACoordLayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // CACoordLayer.h 3 | // test 4 | // 5 | // Created by yi chen on 14-9-3. 6 | // Copyright (c) 2014年 yi chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CACoordLayer : CALayer 12 | 13 | @property (nonatomic, assign) MAMapView * mapView; 14 | 15 | @property (nonatomic) double mapx; 16 | 17 | @property (nonatomic) double mapy; 18 | 19 | @property (nonatomic) CGPoint centerOffset; 20 | 21 | @end 22 | 23 | 24 | @interface MAMapView(Additional) 25 | 26 | - (CGPoint)pointForMapPoint:(MAMapPoint)mapPoint; 27 | 28 | @end -------------------------------------------------------------------------------- /test/MovingAnnotationSource/CACoordLayer.m: -------------------------------------------------------------------------------- 1 | // 2 | // CACoordLayer.m 3 | // test 4 | // 5 | // Created by yi chen on 14-9-3. 6 | // Copyright (c) 2014年 yi chen. All rights reserved. 7 | // 8 | 9 | #import "CACoordLayer.h" 10 | 11 | @implementation CACoordLayer 12 | 13 | @dynamic mapx; 14 | @dynamic mapy; 15 | 16 | - (id)initWithLayer:(id)layer 17 | { 18 | if ((self = [super initWithLayer:layer])) 19 | { 20 | if ([layer isKindOfClass:[CACoordLayer class]]) 21 | { 22 | CACoordLayer * input = layer; 23 | self.mapx = input.mapx; 24 | self.mapy = input.mapy; 25 | [self setNeedsDisplay]; 26 | } 27 | } 28 | return self; 29 | } 30 | 31 | + (BOOL)needsDisplayForKey:(NSString *)key 32 | { 33 | if ([@"mapx" isEqualToString:key]) 34 | { 35 | return YES; 36 | } 37 | if ([@"mapy" isEqualToString:key]) 38 | { 39 | return YES; 40 | } 41 | 42 | return [super needsDisplayForKey:key]; 43 | } 44 | 45 | - (void)display 46 | { 47 | CACoordLayer * layer = [self presentationLayer]; 48 | MAMapPoint mappoint = MAMapPointMake(layer.mapx, layer.mapy); 49 | 50 | CGPoint center = [self.mapView pointForMapPoint:mappoint]; 51 | center.x += self.centerOffset.x; 52 | center.y += self.centerOffset.y; 53 | 54 | self.position = center; 55 | } 56 | 57 | @end 58 | 59 | -------------------------------------------------------------------------------- /test/MovingAnnotationSource/MovingAnnotationView.h: -------------------------------------------------------------------------------- 1 | // 2 | // MovingAnnotationView.h 3 | // test 4 | // 5 | // Created by yi chen on 14-9-3. 6 | // Copyright (c) 2014年 yi chen. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "TracingPoint.h" 11 | 12 | @interface MovingAnnotationView : MAPinAnnotationView 13 | 14 | /*! 15 | @brief 添加动画 16 | @param points 轨迹点串,每个轨迹点为TracingPoint类型 17 | @param duration 动画时长,包括从上一个动画的终止点过渡到新增动画起始点的时间 18 | */ 19 | - (void)addTrackingAnimationForPoints:(NSArray *)points duration:(CFTimeInterval)duration; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /test/MovingAnnotationSource/MovingAnnotationView.m: -------------------------------------------------------------------------------- 1 | 2 | // 3 | // MovingAnnotationView.m 4 | // test 5 | // 6 | // Created by yi chen on 14-9-3. 7 | // Copyright (c) 2014年 yi chen. All rights reserved. 8 | // 9 | 10 | #import "MovingAnnotationView.h" 11 | #import "CACoordLayer.h" 12 | #import "Util.h" 13 | 14 | #define TurnAnimationDuration 0.1 15 | 16 | #define MapXAnimationKey @"mapx" 17 | #define MapYAnimationKey @"mapy" 18 | #define RotationAnimationKey @"transform.rotation.z" 19 | 20 | @interface MovingAnnotationView() 21 | 22 | @property (nonatomic, strong) NSMutableArray * animationList; 23 | 24 | @end 25 | 26 | @implementation MovingAnnotationView 27 | { 28 | MAMapPoint currDestination; 29 | MAMapPoint lastDestination; 30 | 31 | CLLocationDirection lastDirection; 32 | 33 | BOOL isAnimatingX, isAnimatingY; 34 | } 35 | 36 | #pragma mark - Animation 37 | + (Class)layerClass 38 | { 39 | return [CACoordLayer class]; 40 | } 41 | 42 | - (void)addTrackingAnimationForPoints:(NSArray *)points duration:(CFTimeInterval)duration 43 | { 44 | if (![points count]) 45 | { 46 | return; 47 | } 48 | 49 | CACoordLayer * mylayer = ((CACoordLayer *)self.layer); 50 | 51 | //preparing 52 | NSUInteger num = 2*[points count] + 1; 53 | NSMutableArray * xvalues = [NSMutableArray arrayWithCapacity:num]; 54 | NSMutableArray *yvalues = [NSMutableArray arrayWithCapacity:num]; 55 | NSMutableArray *rvalues = [NSMutableArray arrayWithCapacity:num]; 56 | 57 | NSMutableArray * times = [NSMutableArray arrayWithCapacity:num]; 58 | NSMutableArray * rtimes = [NSMutableArray arrayWithCapacity:num]; 59 | 60 | double sumOfDistance = 0.f; 61 | double * dis = malloc(([points count]) * sizeof(double)); 62 | 63 | //the first point is set by the destination of last animation. 64 | MAMapPoint preLoc; 65 | CLLocationDirection preDir; 66 | if (!([self.animationList count] > 0 || isAnimatingX || isAnimatingY)) 67 | { 68 | lastDestination = MAMapPointMake(mylayer.mapx, mylayer.mapy); 69 | } 70 | preLoc = lastDestination; 71 | 72 | MAMapPoint firstPoint = MAMapPointForCoordinate(((TracingPoint *)[points firstObject]).coordinate); 73 | double transitDir = [Util calculateCourseFromMapPoint:preLoc to:firstPoint]; 74 | preDir = [Util fixNewDirection:transitDir basedOnOldDirection:lastDirection]; 75 | 76 | [xvalues addObject:@(preLoc.x)]; 77 | [yvalues addObject:@(preLoc.y)]; 78 | [times addObject:@(0.f)]; 79 | 80 | [rvalues addObject:@(preDir * DegToRad)]; 81 | [rtimes addObject:@(0.f)]; 82 | 83 | //set the animation points. 84 | for (int i = 0; i<[points count]; i++) 85 | { 86 | TracingPoint * tp = points[i]; 87 | 88 | //position 89 | MAMapPoint p = MAMapPointForCoordinate(tp.coordinate); 90 | [xvalues addObjectsFromArray:@[@(p.x), @(p.x)]];//stop for turn 91 | [yvalues addObjectsFromArray:@[@(p.y), @(p.y)]]; 92 | 93 | //angle 94 | double currDir = [Util fixNewDirection:tp.course basedOnOldDirection:preDir]; 95 | [rvalues addObjectsFromArray:@[@(preDir * DegToRad), @(currDir * DegToRad)]]; 96 | 97 | //distance 98 | dis[i] = MAMetersBetweenMapPoints(p, preLoc); 99 | sumOfDistance = sumOfDistance + dis[i]; 100 | dis[i] = sumOfDistance; 101 | 102 | //record pre 103 | preLoc = p; 104 | preDir = currDir; 105 | } 106 | 107 | //set the animation times. 108 | double preTime = 0.f; 109 | double turnDuration = TurnAnimationDuration/duration; 110 | for (int i = 0; i<[points count]; i++) 111 | { 112 | double turnEnd = dis[i]/sumOfDistance; 113 | double turnStart = (preTime > turnEnd - turnDuration) ? (turnEnd + preTime) * 0.5 : turnEnd - turnDuration; 114 | 115 | [times addObjectsFromArray:@[@(turnStart), @(turnEnd)]]; 116 | [rtimes addObjectsFromArray:@[@(turnStart), @(turnEnd)]]; 117 | 118 | preTime = turnEnd; 119 | } 120 | 121 | //record the destination. 122 | TracingPoint * last = [points lastObject]; 123 | lastDestination = MAMapPointForCoordinate(last.coordinate); 124 | lastDirection = last.course; 125 | 126 | free(dis); 127 | 128 | // add animation. 129 | CAKeyframeAnimation *xanimation = [CAKeyframeAnimation animationWithKeyPath:MapXAnimationKey]; 130 | xanimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 131 | xanimation.values = xvalues; 132 | xanimation.keyTimes = times; 133 | xanimation.duration = duration; 134 | xanimation.delegate = self; 135 | xanimation.fillMode = kCAFillModeForwards; 136 | 137 | CAKeyframeAnimation *yanimation = [CAKeyframeAnimation animationWithKeyPath:MapYAnimationKey]; 138 | yanimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 139 | yanimation.values = yvalues; 140 | yanimation.keyTimes = times; 141 | yanimation.duration = duration; 142 | yanimation.delegate = self; 143 | yanimation.fillMode = kCAFillModeForwards; 144 | 145 | CAKeyframeAnimation *ranimation = [CAKeyframeAnimation animationWithKeyPath:RotationAnimationKey]; 146 | ranimation.values = rvalues; 147 | ranimation.keyTimes = rtimes; 148 | ranimation.duration = duration; 149 | ranimation.delegate = self; 150 | ranimation.fillMode = kCAFillModeForwards; 151 | 152 | [self pushBackAnimation:xanimation]; 153 | [self pushBackAnimation:yanimation]; 154 | [self pushBackAnimation:ranimation]; 155 | 156 | mylayer.mapView = [self mapView]; 157 | 158 | } 159 | 160 | - (void)pushBackAnimation:(CAPropertyAnimation *)anim 161 | { 162 | [self.animationList addObject:anim]; 163 | 164 | if ([self.layer animationForKey:anim.keyPath] == nil) 165 | { 166 | [self popFrontAnimationForKey:anim.keyPath]; 167 | } 168 | } 169 | 170 | - (void)popFrontAnimationForKey:(NSString *)key 171 | { 172 | [self.animationList enumerateObjectsUsingBlock:^(CAKeyframeAnimation * obj, NSUInteger idx, BOOL *stop) 173 | { 174 | if ([obj.keyPath isEqualToString:key]) 175 | { 176 | [self.layer addAnimation:obj forKey:obj.keyPath]; 177 | [self.animationList removeObject:obj]; 178 | 179 | if ([key isEqualToString:MapXAnimationKey]) 180 | { 181 | isAnimatingX = YES; 182 | } 183 | else if([key isEqualToString:MapYAnimationKey]) 184 | { 185 | isAnimatingY = YES; 186 | } 187 | else if([key isEqualToString:RotationAnimationKey]) 188 | { 189 | double endDir = ((NSNumber *)[obj.values lastObject]).doubleValue; 190 | 191 | self.layer.transform = CATransform3DMakeRotation(endDir, 0, 0, 1); 192 | //动画结束时状态不会恢复到起始状态。 193 | } 194 | *stop = YES; 195 | } 196 | }]; 197 | } 198 | 199 | 200 | #pragma mark - Animation Delegate 201 | 202 | - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag 203 | { 204 | if ([anim isKindOfClass:[CAKeyframeAnimation class]]) 205 | { 206 | CAKeyframeAnimation * keyAnim = ((CAKeyframeAnimation *)anim); 207 | if ([keyAnim.keyPath isEqualToString:MapXAnimationKey]) 208 | { 209 | isAnimatingX = NO; 210 | 211 | CACoordLayer * mylayer = ((CACoordLayer *)self.layer); 212 | mylayer.mapx = ((NSNumber *)[keyAnim.values lastObject]).doubleValue; 213 | currDestination.x = mylayer.mapx; 214 | 215 | [self updateAnnotationCoordinate]; 216 | 217 | [self popFrontAnimationForKey:MapXAnimationKey]; 218 | } 219 | else if ([keyAnim.keyPath isEqualToString:MapYAnimationKey]) 220 | { 221 | isAnimatingY = NO; 222 | 223 | CACoordLayer * mylayer = ((CACoordLayer *)self.layer); 224 | mylayer.mapy = ((NSNumber *)[keyAnim.values lastObject]).doubleValue; 225 | currDestination.y = mylayer.mapy; 226 | [self updateAnnotationCoordinate]; 227 | 228 | [self popFrontAnimationForKey:MapYAnimationKey]; 229 | } 230 | else if([keyAnim.keyPath isEqualToString:RotationAnimationKey]) 231 | { 232 | [self popFrontAnimationForKey:RotationAnimationKey]; 233 | } 234 | 235 | } 236 | } 237 | 238 | - (void)updateAnnotationCoordinate 239 | { 240 | if (! (isAnimatingX || isAnimatingY) ) 241 | { 242 | self.annotation.coordinate = MACoordinateForMapPoint(currDestination); 243 | } 244 | } 245 | 246 | #pragma mark - Property 247 | 248 | - (NSMutableArray *)animationList 249 | { 250 | if (_animationList == nil) 251 | { 252 | _animationList = [NSMutableArray array]; 253 | } 254 | return _animationList; 255 | } 256 | 257 | - (MAMapView *)mapView 258 | { 259 | return (MAMapView*)(self.superview.superview); 260 | } 261 | 262 | #pragma mark - Override 263 | 264 | - (void)setCenterOffset:(CGPoint)centerOffset 265 | { 266 | CACoordLayer * mylayer = ((CACoordLayer *)self.layer); 267 | mylayer.centerOffset = centerOffset; 268 | [super setCenterOffset:centerOffset]; 269 | } 270 | 271 | #pragma mark - Life Cycle 272 | 273 | - (id)initWithAnnotation:(id)annotation reuseIdentifier:(NSString *)reuseIdentifier 274 | { 275 | self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier]; 276 | if (self) 277 | { 278 | CACoordLayer * mylayer = ((CACoordLayer *)self.layer); 279 | MAMapPoint mapPoint = MAMapPointForCoordinate(annotation.coordinate); 280 | mylayer.mapx = mapPoint.x; 281 | mylayer.mapy = mapPoint.y; 282 | 283 | mylayer.centerOffset = self.centerOffset; 284 | 285 | isAnimatingX = NO; 286 | isAnimatingY = NO; 287 | } 288 | return self; 289 | } 290 | 291 | 292 | @end 293 | -------------------------------------------------------------------------------- /test/MovingAnnotationSource/TracingPoint.h: -------------------------------------------------------------------------------- 1 | // 2 | // TracingPoint.h 3 | // test 4 | // 5 | // Created by yi chen on 3/19/15. 6 | // Copyright (c) 2015 yi chen. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface TracingPoint : NSObject 13 | 14 | /*! 15 | @brief 轨迹经纬度 16 | */ 17 | @property (nonatomic) CLLocationCoordinate2D coordinate; 18 | 19 | /*! 20 | @brief 方向,有效范围0~359.9度 21 | */ 22 | @property (nonatomic) CLLocationDirection course; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /test/MovingAnnotationSource/TracingPoint.m: -------------------------------------------------------------------------------- 1 | // 2 | // TracingPoint.m 3 | // test 4 | // 5 | // Created by yi chen on 3/19/15. 6 | // Copyright (c) 2015 yi chen. All rights reserved. 7 | // 8 | 9 | #import "TracingPoint.h" 10 | 11 | @implementation TracingPoint 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /test/MovingAnnotationSource/Util.h: -------------------------------------------------------------------------------- 1 | // 2 | // Util.h 3 | // test 4 | // 5 | // Created by yi chen on 3/24/15. 6 | // Copyright (c) 2015 yi chen. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | #define RadToDeg 57.2957795130823228646477218717336654663086 //180.f / M_PI 13 | #define DegToRad 0.0174532925199432954743716805978692718782 // M_PI / 180.f 14 | 15 | @interface Util : NSObject 16 | 17 | + (CLLocationDirection)calculateCourseFromMapPoint:(MAMapPoint)point1 to:(MAMapPoint)point2; 18 | 19 | + (CLLocationDirection)calculateCourseFromCoordinate:(CLLocationCoordinate2D)coord1 to:(CLLocationCoordinate2D)coord2; 20 | + (CLLocationDirection)fixNewDirection:(CLLocationDirection)newDir basedOnOldDirection:(CLLocationDirection)oldDir; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /test/MovingAnnotationSource/Util.m: -------------------------------------------------------------------------------- 1 | // 2 | // Util.m 3 | // test 4 | // 5 | // Created by yi chen on 3/24/15. 6 | // Copyright (c) 2015 yi chen. All rights reserved. 7 | // 8 | 9 | #import "Util.h" 10 | 11 | @implementation Util 12 | 13 | + (CLLocationDirection)calculateCourseFromMapPoint:(MAMapPoint)p1 to:(MAMapPoint)p2 14 | { 15 | //20级坐标y轴向下,需要反过来。 16 | MAMapPoint dp = MAMapPointMake(p2.x - p1.x, p1.y - p2.y); 17 | 18 | if (dp.y == 0) 19 | { 20 | return dp.x < 0? 270.f:0.f; 21 | } 22 | 23 | double dir = atan(dp.x/dp.y) * 180.f / M_PI; 24 | 25 | if (dp.y > 0) 26 | { 27 | if (dp.x < 0) 28 | { 29 | dir = dir + 360.f; 30 | } 31 | 32 | }else 33 | { 34 | dir = dir + 180.f; 35 | } 36 | 37 | return dir; 38 | } 39 | 40 | + (CLLocationDirection)calculateCourseFromCoordinate:(CLLocationCoordinate2D)coord1 to:(CLLocationCoordinate2D)coord2 41 | { 42 | MAMapPoint p1 = MAMapPointForCoordinate(coord1); 43 | MAMapPoint p2 = MAMapPointForCoordinate(coord2); 44 | 45 | return [self calculateCourseFromMapPoint:p1 to:p2]; 46 | } 47 | 48 | + (CLLocationDirection)fixNewDirection:(CLLocationDirection)newDir basedOnOldDirection:(CLLocationDirection)oldDir 49 | { 50 | //the gap between newDir and oldDir would not exceed 180.f degrees 51 | CLLocationDirection turn = newDir - oldDir; 52 | if(turn > 180.f) 53 | { 54 | return newDir - 360.f; 55 | } 56 | else if (turn < -180.f) 57 | { 58 | return newDir + 360.f; 59 | } 60 | else 61 | { 62 | return newDir; 63 | } 64 | 65 | } 66 | 67 | @end 68 | -------------------------------------------------------------------------------- /test/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // test 4 | // 5 | // Created by yi chen on 14-8-20. 6 | // Copyright (c) 2014年 yi chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /test/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // test 4 | // 5 | // Created by yi chen on 14-8-20. 6 | // Copyright (c) 2014年 yi chen. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import 11 | #import "MovingAnnotationView.h" 12 | #import "TracingPoint.h" 13 | #import "Util.h" 14 | 15 | @interface ViewController () 16 | 17 | @property (nonatomic, strong) MAMapView * map; 18 | 19 | @property (nonatomic, strong) MAPointAnnotation * car; 20 | 21 | @end 22 | 23 | @implementation ViewController 24 | { 25 | NSMutableArray * _tracking; 26 | CFTimeInterval _duration; 27 | } 28 | 29 | #pragma mark - trackings 30 | 31 | - (void)initRoute 32 | { 33 | _duration = 8.0; 34 | 35 | NSUInteger count = 14; 36 | CLLocationCoordinate2D * coords = malloc(count * sizeof(CLLocationCoordinate2D)); 37 | 38 | coords[0] = CLLocationCoordinate2DMake(39.93563, 116.387358); 39 | coords[1] = CLLocationCoordinate2DMake(39.935564, 116.386414); 40 | coords[2] = CLLocationCoordinate2DMake(39.935646, 116.386038); 41 | coords[3] = CLLocationCoordinate2DMake(39.93586, 116.385791); 42 | coords[4] = CLLocationCoordinate2DMake(39.93586, 116.385791); 43 | coords[5] = CLLocationCoordinate2DMake(39.937983, 116.38474); 44 | coords[6] = CLLocationCoordinate2DMake(39.938616, 116.3846); 45 | coords[7] = CLLocationCoordinate2DMake(39.938888, 116.386971); 46 | coords[8] = CLLocationCoordinate2DMake(39.938855, 116.387047); 47 | coords[9] = CLLocationCoordinate2DMake(39.938172, 116.387132); 48 | coords[10] = CLLocationCoordinate2DMake(39.937604, 116.387218); 49 | coords[11] = CLLocationCoordinate2DMake(39.937489, 116.387132); 50 | coords[12] = CLLocationCoordinate2DMake(39.93614, 116.387283); 51 | coords[13] = CLLocationCoordinate2DMake(39.935622, 116.387347); 52 | 53 | [self showRouteForCoords:coords count:count]; 54 | [self initTrackingWithCoords:coords count:count]; 55 | 56 | if (coords) { 57 | free(coords); 58 | } 59 | 60 | } 61 | 62 | - (void)showRouteForCoords:(CLLocationCoordinate2D *)coords count:(NSUInteger)count 63 | { 64 | //show route 65 | MAPolyline *route = [MAPolyline polylineWithCoordinates:coords count:count]; 66 | [self.map addOverlay:route]; 67 | 68 | NSMutableArray * routeAnno = [NSMutableArray array]; 69 | for (int i = 0 ; i < count; i++) 70 | { 71 | MAPointAnnotation * a = [[MAPointAnnotation alloc] init]; 72 | a.coordinate = coords[i]; 73 | a.title = @"route"; 74 | [routeAnno addObject:a]; 75 | } 76 | [self.map addAnnotations:routeAnno]; 77 | [self.map addAnnotation:routeAnno[0]]; 78 | [self.map showAnnotations:routeAnno animated:YES]; 79 | 80 | } 81 | 82 | - (void)initTrackingWithCoords:(CLLocationCoordinate2D *)coords count:(NSUInteger)count 83 | { 84 | _tracking = [NSMutableArray array]; 85 | for (int i = 0; i)annotation 130 | { 131 | /* Step 2. */ 132 | if ([annotation isKindOfClass:[MAPointAnnotation class]]) 133 | { 134 | static NSString *pointReuseIndetifier = @"pointReuseIndetifier"; 135 | MovingAnnotationView *annotationView = (MovingAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:pointReuseIndetifier]; 136 | if (annotationView == nil) 137 | { 138 | annotationView = [[MovingAnnotationView alloc] initWithAnnotation:annotation 139 | reuseIdentifier:pointReuseIndetifier]; 140 | } 141 | 142 | if ([annotation.title isEqualToString:@"Car"]) 143 | { 144 | UIImage *imge = [UIImage imageNamed:@"userPosition"]; 145 | annotationView.image = imge; 146 | CGPoint centerPoint=CGPointZero; 147 | [annotationView setCenterOffset:centerPoint]; 148 | } 149 | else if ([annotation.title isEqualToString:@"route"]) 150 | { 151 | annotationView.image = [UIImage imageNamed:@"trackingPoints.png"]; 152 | } 153 | 154 | return annotationView; 155 | } 156 | 157 | return nil; 158 | } 159 | 160 | - (MAPolylineRenderer *)mapView:(MAMapView *)mapView rendererForOverlay:(id)overlay 161 | { 162 | if ([overlay isKindOfClass:[MAPolyline class]]) 163 | { 164 | MAPolylineRenderer *polylineRenderer = [[MAPolylineRenderer alloc] initWithPolyline:overlay]; 165 | 166 | polylineRenderer.lineWidth = 3.f; 167 | polylineRenderer.strokeColor = [UIColor colorWithRed:0 green:0.47 blue:1.0 alpha:0.9]; 168 | 169 | return polylineRenderer; 170 | } 171 | 172 | return nil; 173 | } 174 | 175 | #pragma mark - Initialization 176 | 177 | - (void)initAnnotation 178 | { 179 | [self initRoute]; 180 | 181 | /* Step 1. */ 182 | //show car 183 | self.car = [[MAPointAnnotation alloc] init]; 184 | TracingPoint * start = [_tracking firstObject]; 185 | self.car.coordinate = start.coordinate; 186 | self.car.title = @"Car"; 187 | [self.map addAnnotation:self.car]; 188 | 189 | } 190 | 191 | - (MAMapView *)map 192 | { 193 | if (!_map) 194 | { 195 | _map = [[MAMapView alloc] initWithFrame:self.view.frame]; 196 | [_map setDelegate:self]; 197 | 198 | //加入annotation旋转动画后,暂未考虑地图旋转的情况。 199 | _map.rotateCameraEnabled = NO; 200 | _map.rotateEnabled = NO; 201 | } 202 | return _map; 203 | } 204 | 205 | #pragma mark life cycle 206 | 207 | - (void)viewDidLoad 208 | { 209 | [super viewDidLoad]; 210 | // Do any additional setup after loading the view, typically from a nib. 211 | [self initBtn]; 212 | [self.view addSubview:self.map]; 213 | 214 | } 215 | 216 | - (void)viewDidAppear:(BOOL)animated 217 | { 218 | [super viewDidAppear:animated]; 219 | 220 | [self initAnnotation]; 221 | } 222 | 223 | 224 | @end 225 | -------------------------------------------------------------------------------- /test/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /test/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // test 4 | // 5 | // Created by yi chen on 14-8-20. 6 | // Copyright (c) 2014年 yi chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "AppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /test/test-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSAppTransportSecurity 6 | 7 | NSAllowsArbitraryLoads 8 | 9 | 10 | CFBundleDevelopmentRegion 11 | en 12 | CFBundleDisplayName 13 | ${PRODUCT_NAME} 14 | CFBundleExecutable 15 | ${EXECUTABLE_NAME} 16 | CFBundleIdentifier 17 | autonavi.${PRODUCT_NAME:rfc1034identifier} 18 | CFBundleInfoDictionaryVersion 19 | 6.0 20 | CFBundleName 21 | ${PRODUCT_NAME} 22 | CFBundlePackageType 23 | APPL 24 | CFBundleShortVersionString 25 | 1.0 26 | CFBundleSignature 27 | ???? 28 | CFBundleVersion 29 | 1.0 30 | LSRequiresIPhoneOS 31 | 32 | UIMainStoryboardFile 33 | Main 34 | UIRequiredDeviceCapabilities 35 | 36 | armv7 37 | 38 | UISupportedInterfaceOrientations 39 | 40 | UIInterfaceOrientationPortrait 41 | UIInterfaceOrientationLandscapeLeft 42 | UIInterfaceOrientationLandscapeRight 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /test/test-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /test/trackingPoints.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/test/trackingPoints.png -------------------------------------------------------------------------------- /test/userPosition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/test/userPosition.png -------------------------------------------------------------------------------- /test/userPosition@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cysgit/iOS_MovingAnnotation_Demo/cd08e97c536440fe1135e9fbb121600a132a2b21/test/userPosition@2x.png -------------------------------------------------------------------------------- /testTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /testTests/testTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | autonavi.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /testTests/testTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // testTests.m 3 | // testTests 4 | // 5 | // Created by yi chen on 14-8-20. 6 | // Copyright (c) 2014年 yi chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface testTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation testTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | --------------------------------------------------------------------------------