├── .gitignore
├── IMG_0038.PNG
├── IMG_0039.PNG
├── Podfile
├── Podfile.lock
├── README.md
├── iOS-path-smooth-swift
├── AppDelegate.swift
├── Assets.xcassets
│ └── AppIcon.appiconset
│ │ └── Contents.json
├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
├── Info.plist
├── Swift-Bridging-Header.h
└── ViewController.swift
├── iOS-path-smooth.xcodeproj
├── project.pbxproj
├── project.xcworkspace
│ └── contents.xcworkspacedata
└── xcshareddata
│ └── xcschemes
│ ├── iOS-path-smooth-swift.xcscheme
│ ├── iOS-path-smooth.xcscheme
│ └── iOS-path-smoothUITests.xcscheme
├── iOS-path-smooth.xcworkspace
└── contents.xcworkspacedata
├── iOS-path-smooth
├── AMapTrace2.txt
├── AppDelegate.h
├── AppDelegate.m
├── Assets.xcassets
│ └── AppIcon.appiconset
│ │ └── Contents.json
├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
├── Info.plist
├── MASmoothPathTool.h
├── MASmoothPathTool.m
├── ViewController.h
├── ViewController.m
└── main.m
└── iOS-path-smoothUITests
├── Info.plist
└── iOS_path_smoothUITests.m
/.gitignore:
--------------------------------------------------------------------------------
1 | # Xcode
2 | #
3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
4 |
5 | ## Build generated
6 | build/
7 | DerivedData/
8 |
9 | ## Various settings
10 | *.pbxuser
11 | !default.pbxuser
12 | *.mode1v3
13 | !default.mode1v3
14 | *.mode2v3
15 | !default.mode2v3
16 | *.perspectivev3
17 | !default.perspectivev3
18 | xcuserdata/
19 |
20 | ## Other
21 | *.moved-aside
22 | *.xccheckout
23 | *.xcscmblueprint
24 |
25 | ## Obj-C/Swift specific
26 | *.hmap
27 | *.ipa
28 | *.dSYM.zip
29 | *.dSYM
30 |
31 | # CocoaPods
32 | #
33 | # We recommend against adding the Pods directory to your .gitignore. However
34 | # you should judge for yourself, the pros and cons are mentioned at:
35 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
36 | #
37 | Pods/
38 | Result/
39 | output/
40 |
41 | # Carthage
42 | #
43 | # Add this line if you want to avoid checking in source code from Carthage dependencies.
44 | # Carthage/Checkouts
45 |
46 | Carthage/Build
47 |
48 | # fastlane
49 | #
50 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
51 | # screenshots whenever they are needed.
52 | # For more information about the recommended setup visit:
53 | # https://docs.fastlane.tools/best-practices/source-control/#source-control
54 |
55 | fastlane/report.xml
56 | fastlane/Preview.html
57 | fastlane/screenshots
58 | fastlane/test_output
59 |
60 | # Code Injection
61 | #
62 | # After new code Injection tools there's a generated folder /iOSInjectionProject
63 | # https://github.com/johnno1962/injectionforxcode
64 |
65 | iOSInjectionProject/
66 |
--------------------------------------------------------------------------------
/IMG_0038.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amap-demo/iOS-path-smooth/89ea127de53921879b786f301aa2b5ba7fcd42b0/IMG_0038.PNG
--------------------------------------------------------------------------------
/IMG_0039.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amap-demo/iOS-path-smooth/89ea127de53921879b786f301aa2b5ba7fcd42b0/IMG_0039.PNG
--------------------------------------------------------------------------------
/Podfile:
--------------------------------------------------------------------------------
1 | # Uncomment the next line to define a global platform for your project
2 | platform :ios, '8.0'
3 |
4 | target 'iOS-path-smooth' do
5 |
6 | pod 'AMap3DMap'
7 |
8 | end
9 |
10 |
11 | target 'iOS-path-smooth-swift' do
12 |
13 | pod 'AMap3DMap'
14 |
15 | end
--------------------------------------------------------------------------------
/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - AMap3DMap (6.8.1):
3 | - AMapFoundation (~> 1.5)
4 | - AMapFoundation (1.5.6)
5 |
6 | DEPENDENCIES:
7 | - AMap3DMap
8 |
9 | SPEC REPOS:
10 | https://github.com/cocoapods/specs.git:
11 | - AMap3DMap
12 | - AMapFoundation
13 |
14 | SPEC CHECKSUMS:
15 | AMap3DMap: 9fa4ec6ab230bfbd3f0c0834f757fbd7038efe53
16 | AMapFoundation: 20fce2a12cd152e1092afdd04379cdac21932185
17 |
18 | PODFILE CHECKSUM: a01dee832ae84263e5ea8ed85c1f953af570667c
19 |
20 | COCOAPODS: 1.6.1
21 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # iOS-path-smooth
2 | iOS轨迹平滑处理示例
3 |
4 | 本工程为基于高德地图iOS SDK进行封装,实现了定位轨迹的平滑优化处理。
5 | ## 前述 ##
6 | - [高德官网申请Key](http://lbs.amap.com/dev/#/).
7 | - 阅读[参考手册](http://a.amap.com/lbs/static/unzip/iOS_Map_Doc/AMap_iOS_API_Doc_3D/index.html).
8 | - 工程基于iOS 3D地图SDK实现
9 |
10 | ## 功能描述 ##
11 | 基于3D地图SDK,对真实轨迹进行处理,实现去噪、平滑和抽稀。
12 |
13 | ## 效果展示 ##
14 | 
15 | 
16 |
17 | 原始轨迹和处理后轨迹
18 |
19 | ## 使用方法 ##
20 | ### 1:配置工程 ###
21 | - pod install
22 |
23 | ### 2:实现方法 ###
24 |
25 | `Objective-C`
26 | ```
27 | - (void)initSmoothedTrace {
28 | MASmoothPathTool *tool = [[MASmoothPathTool alloc] init];
29 | tool.intensity = 3;
30 | tool.threshHold = 0.3;
31 | tool.noiseThreshhold = 10;
32 | self.smoothedTracePoints = [tool pathOptimize:self.origTracePoints];
33 |
34 | ...
35 | }
36 |
37 | ```
38 |
39 | `swift`
40 | ```
41 | func initSmoothedTrace() {
42 |
43 | let tool = MASmoothPathTool()
44 | tool.intensity = 3
45 | tool.threshHold = 0.3
46 | tool.noiseThreshhold = 10
47 |
48 | self.smoothedTracePoints = tool.pathOptimize(self.origTracePoints)
49 |
50 | ...
51 | }
52 | ```
53 |
--------------------------------------------------------------------------------
/iOS-path-smooth-swift/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.swift
3 | // iOS-patch-smooth-swift
4 | //
5 | // Created by hanxiaoming on 2017/10/18.
6 | // Copyright © 2017年 autonavi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | @UIApplicationMain
12 | class AppDelegate: UIResponder, UIApplicationDelegate {
13 |
14 | var window: UIWindow?
15 |
16 |
17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
18 | // Override point for customization after application launch.
19 | return true
20 | }
21 |
22 | func applicationWillResignActive(_ application: UIApplication) {
23 | // 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.
24 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
25 | }
26 |
27 | func applicationDidEnterBackground(_ application: UIApplication) {
28 | // 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.
29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
30 | }
31 |
32 | func applicationWillEnterForeground(_ application: UIApplication) {
33 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
34 | }
35 |
36 | func applicationDidBecomeActive(_ application: UIApplication) {
37 | // 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.
38 | }
39 |
40 | func applicationWillTerminate(_ application: UIApplication) {
41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
42 | }
43 |
44 |
45 | }
46 |
47 |
--------------------------------------------------------------------------------
/iOS-path-smooth-swift/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "20x20",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "20x20",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "29x29",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "29x29",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "40x40",
66 | "scale" : "1x"
67 | },
68 | {
69 | "idiom" : "ipad",
70 | "size" : "40x40",
71 | "scale" : "2x"
72 | },
73 | {
74 | "idiom" : "ipad",
75 | "size" : "76x76",
76 | "scale" : "1x"
77 | },
78 | {
79 | "idiom" : "ipad",
80 | "size" : "76x76",
81 | "scale" : "2x"
82 | },
83 | {
84 | "idiom" : "ipad",
85 | "size" : "83.5x83.5",
86 | "scale" : "2x"
87 | }
88 | ],
89 | "info" : {
90 | "version" : 1,
91 | "author" : "xcode"
92 | }
93 | }
--------------------------------------------------------------------------------
/iOS-path-smooth-swift/Base.lproj/LaunchScreen.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 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/iOS-path-smooth-swift/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 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/iOS-path-smooth-swift/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | UILaunchStoryboardName
24 | LaunchScreen
25 | UIMainStoryboardFile
26 | Main
27 | UIRequiredDeviceCapabilities
28 |
29 | armv7
30 |
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 | UISupportedInterfaceOrientations~ipad
38 |
39 | UIInterfaceOrientationPortrait
40 | UIInterfaceOrientationPortraitUpsideDown
41 | UIInterfaceOrientationLandscapeLeft
42 | UIInterfaceOrientationLandscapeRight
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/iOS-path-smooth-swift/Swift-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // Swift-Bridging-Header.h
3 | // MAMapKit_2D_Demo
4 | //
5 | // Created by xiaoming han on 16/9/23.
6 | // Copyright © 2016年 Autonavi. All rights reserved.
7 | //
8 |
9 | #ifndef Swift_Bridging_Header_h
10 | #define Swift_Bridging_Header_h
11 |
12 | #import "MASmoothPathTool.h"
13 | #import
14 | #import
15 |
16 | #endif /* Swift_Bridging_Header_h */
17 |
--------------------------------------------------------------------------------
/iOS-path-smooth-swift/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // iOS-patch-smooth-swift
4 | //
5 | // Created by hanxiaoming on 2017/10/18.
6 | // Copyright © 2017年 autonavi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class ViewController: UIViewController, MAMapViewDelegate {
12 |
13 | var origTracePoints: Array = Array()
14 | var smoothedTracePoints: Array = Array()
15 |
16 | var mapView: MAMapView!
17 | var origTrace: MAPolyline?
18 | var smoothedTrace: MAPolyline?
19 |
20 | override func viewDidLoad() {
21 | super.viewDidLoad()
22 | // Do any additional setup after loading the view, typically from a nib.
23 | initPolylines()
24 |
25 | self.mapView = MAMapView(frame: self.view.bounds)
26 | self.mapView.delegate = self
27 | self.view.addSubview(self.mapView)
28 |
29 |
30 | let origSwitch = UISwitch()
31 | let smoothSwitch = UISwitch()
32 | origSwitch.center = CGPoint(x: 15 + origSwitch.bounds.width / 2.0, y: self.view.bounds.height - 90)
33 |
34 | smoothSwitch.center = CGPoint(x: origSwitch.center.x, y: origSwitch.center.y + origSwitch.bounds.height + 5)
35 |
36 | let label1 = UILabel()
37 | label1.text = "原始轨迹"
38 | label1.sizeToFit()
39 | label1.center = CGPoint(x: origSwitch.frame.maxX + label1.bounds.width / 2.0 + 5, y: origSwitch.center.y)
40 |
41 | let label2 = UILabel()
42 | label2.text = "平滑轨迹"
43 | label2.sizeToFit()
44 | label2.center = CGPoint(x: smoothSwitch.frame.maxX + label2.bounds.width / 2.0 + 5, y: smoothSwitch.center.y)
45 |
46 | self.view.addSubview(origSwitch)
47 | self.view.addSubview(smoothSwitch)
48 | self.view.addSubview(label1)
49 | self.view.addSubview(label2)
50 |
51 | //
52 | origSwitch.addTarget(self, action: #selector(self.onOrig(sender:)), for: UIControlEvents.valueChanged)
53 | smoothSwitch.addTarget(self, action: #selector(self.onSmoothed(sender:)), for: UIControlEvents.valueChanged)
54 |
55 | origSwitch.isOn = true
56 |
57 | self.mapView.add(self.origTrace)
58 | self.mapView.showOverlays([self.origTrace!], animated: true)
59 | }
60 |
61 | override func didReceiveMemoryWarning() {
62 | super.didReceiveMemoryWarning()
63 | // Dispose of any resources that can be recreated.
64 | }
65 |
66 | func loadTracePoints() {
67 |
68 | let filePath = Bundle.main.path(forResource: "AMapTrace2", ofType: "txt")
69 | let fileStr = try! String.init(contentsOf: URL.init(fileURLWithPath: filePath!))
70 | let arr = fileStr.components(separatedBy: "\n")
71 | self.origTracePoints.removeAll()
72 |
73 | for oneLine in arr {
74 | let items = oneLine .components(separatedBy: ",")
75 | if items.count == 3 {
76 | let point = MALonLatPoint()
77 | point.lat = Double(items[1]) ?? 0
78 | point.lon = Double(items[2]) ?? 0
79 |
80 | self.origTracePoints.append(point)
81 | }
82 | }
83 | }
84 |
85 | func initPolylines() {
86 | loadTracePoints()
87 |
88 | initOriginalTrace()
89 | initSmoothedTrace()
90 | }
91 |
92 | func initOriginalTrace() {
93 | var pCoords:[CLLocationCoordinate2D] = Array()
94 | for onePoint in self.origTracePoints {
95 | let cor = CLLocationCoordinate2D(latitude: onePoint.lat, longitude: onePoint.lon)
96 | pCoords.append(cor)
97 | }
98 | self.origTrace = MAPolyline.init(coordinates: &pCoords, count: UInt(pCoords.count))
99 | }
100 |
101 | func initSmoothedTrace() {
102 |
103 | let tool = MASmoothPathTool()
104 | tool.intensity = 3
105 | tool.threshHold = 0.3
106 | tool.noiseThreshhold = 10
107 |
108 | self.smoothedTracePoints = tool.pathOptimize(self.origTracePoints)
109 |
110 | var pCoords:[CLLocationCoordinate2D] = Array()
111 | for onePoint in self.smoothedTracePoints {
112 | let cor = CLLocationCoordinate2D(latitude: onePoint.lat, longitude: onePoint.lon)
113 | pCoords.append(cor)
114 | }
115 | self.smoothedTrace = MAPolyline.init(coordinates: &pCoords, count: UInt(pCoords.count))
116 | }
117 |
118 | @objc func onOrig(sender: UISwitch) {
119 | if sender.isOn {
120 |
121 | let hasSmoothedTrace = self.mapView.overlays.contains(where: { (overlay) -> Bool in
122 | if overlay as! MAOverlay === self.smoothedTrace! as MAOverlay {
123 | return true
124 | }
125 | else {
126 | return false
127 | }
128 | })
129 |
130 | if hasSmoothedTrace {
131 | self.mapView.insert(self.origTrace, below: self.smoothedTrace)
132 | }
133 | else {
134 | self.mapView.add(self.origTrace)
135 | }
136 | }
137 | else {
138 | self.mapView.remove(self.origTrace)
139 | }
140 | }
141 |
142 | @objc func onSmoothed(sender: UISwitch) {
143 | if sender.isOn {
144 | self.mapView.add(self.smoothedTrace)
145 | }
146 | else {
147 | self.mapView.remove(self.smoothedTrace)
148 | }
149 | }
150 |
151 | //MARK: map delegate
152 | func mapView(_ mapView: MAMapView!, rendererFor overlay: MAOverlay!) -> MAOverlayRenderer! {
153 | if overlay === self.origTrace {
154 | let renderer = MAPolylineRenderer.init(polyline: overlay as! MAPolyline!)
155 | renderer!.lineWidth = 4
156 | renderer!.strokeColor = UIColor.green
157 |
158 | return renderer
159 | }
160 | else if overlay === self.smoothedTrace {
161 | let renderer = MAPolylineRenderer.init(polyline: overlay as! MAPolyline!)
162 | renderer!.lineWidth = 4
163 | renderer!.strokeColor = UIColor.red
164 |
165 | return renderer
166 | }
167 | return nil
168 | }
169 |
170 | // - (MAOverlayRenderer *)mapView:(MAMapView *)mapView rendererForOverlay:(id )overlay
171 | // {
172 | // if (overlay == self.origTrace)
173 | // {
174 | // MAPolylineRenderer * polylineRenderer = [[MAPolylineRenderer alloc] initWithPolyline:self.origTrace];
175 | //
176 | // polylineRenderer.lineWidth = 4.f;
177 | // polylineRenderer.strokeColor = [UIColor greenColor];
178 | //
179 | // return polylineRenderer;
180 | //
181 | // } else if (overlay == self.smoothedTrace) {
182 | // MAPolylineRenderer * polylineRenderer = [[MAPolylineRenderer alloc] initWithPolyline:self.smoothedTrace];
183 | //
184 | // polylineRenderer.lineWidth = 4.f;
185 | // polylineRenderer.strokeColor = [UIColor colorWithRed:1.0 green:(int)0xc1/255.0 blue:0x25/255.0 alpha:1.0];
186 | //
187 | // return polylineRenderer;
188 | //
189 | // }
190 | //
191 | // return nil;
192 | // }
193 |
194 | }
195 |
196 |
197 |
198 |
--------------------------------------------------------------------------------
/iOS-path-smooth.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 124DE5F77DB8958401CC6999 /* libPods-iOS-path-smooth-swift.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 98395D749A76220D7967B15A /* libPods-iOS-path-smooth-swift.a */; };
11 | 6A5393D21F96FC7100DC8AE8 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A5393D11F96FC7100DC8AE8 /* AppDelegate.swift */; };
12 | 6A5393D41F96FC7100DC8AE8 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A5393D31F96FC7100DC8AE8 /* ViewController.swift */; };
13 | 6A5393D71F96FC7100DC8AE8 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6A5393D51F96FC7100DC8AE8 /* Main.storyboard */; };
14 | 6A5393D91F96FC7100DC8AE8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6A5393D81F96FC7100DC8AE8 /* Assets.xcassets */; };
15 | 6A5393DC1F96FC7100DC8AE8 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6A5393DA1F96FC7100DC8AE8 /* LaunchScreen.storyboard */; };
16 | 6A5393E51F96FEC600DC8AE8 /* MASmoothPathTool.m in Sources */ = {isa = PBXBuildFile; fileRef = B6687D101F8F3A8B0062185A /* MASmoothPathTool.m */; };
17 | 6A5393ED1F9701D700DC8AE8 /* iOS_path_smoothUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A5393EC1F9701D700DC8AE8 /* iOS_path_smoothUITests.m */; };
18 | 6A5393F41F9739C900DC8AE8 /* MASmoothPathTool.m in Sources */ = {isa = PBXBuildFile; fileRef = B6687D101F8F3A8B0062185A /* MASmoothPathTool.m */; };
19 | 6A5393F51F9739CC00DC8AE8 /* AMapTrace2.txt in Resources */ = {isa = PBXBuildFile; fileRef = B6687D0A1F8F23DF0062185A /* AMapTrace2.txt */; };
20 | 6A5393F61F973AA500DC8AE8 /* AMapTrace2.txt in Sources */ = {isa = PBXBuildFile; fileRef = B6687D0A1F8F23DF0062185A /* AMapTrace2.txt */; };
21 | 6A5393F71F973AA800DC8AE8 /* AMapTrace2.txt in Sources */ = {isa = PBXBuildFile; fileRef = B6687D0A1F8F23DF0062185A /* AMapTrace2.txt */; };
22 | B6687CF51F8F1DED0062185A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B6687CF41F8F1DED0062185A /* main.m */; };
23 | B6687CF81F8F1DED0062185A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B6687CF71F8F1DED0062185A /* AppDelegate.m */; };
24 | B6687CFB1F8F1DED0062185A /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B6687CFA1F8F1DED0062185A /* ViewController.m */; };
25 | B6687CFE1F8F1DED0062185A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B6687CFC1F8F1DED0062185A /* Main.storyboard */; };
26 | B6687D001F8F1DED0062185A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B6687CFF1F8F1DED0062185A /* Assets.xcassets */; };
27 | B6687D031F8F1DED0062185A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B6687D011F8F1DED0062185A /* LaunchScreen.storyboard */; };
28 | B6687D0B1F8F23DF0062185A /* AMapTrace2.txt in Resources */ = {isa = PBXBuildFile; fileRef = B6687D0A1F8F23DF0062185A /* AMapTrace2.txt */; };
29 | F0DFB83144703927896B72FE /* libPods-iOS-path-smooth.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 37EBB056FCE1B6992CBE0046 /* libPods-iOS-path-smooth.a */; };
30 | /* End PBXBuildFile section */
31 |
32 | /* Begin PBXContainerItemProxy section */
33 | 6A5393EF1F9701D700DC8AE8 /* PBXContainerItemProxy */ = {
34 | isa = PBXContainerItemProxy;
35 | containerPortal = B6687CE81F8F1DED0062185A /* Project object */;
36 | proxyType = 1;
37 | remoteGlobalIDString = B6687CEF1F8F1DED0062185A;
38 | remoteInfo = "iOS-path-smooth";
39 | };
40 | /* End PBXContainerItemProxy section */
41 |
42 | /* Begin PBXFileReference section */
43 | 0BD3063DD5C0D30997F68CAA /* Pods-iOS-path-smooth.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-path-smooth.release.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-path-smooth/Pods-iOS-path-smooth.release.xcconfig"; sourceTree = ""; };
44 | 37EBB056FCE1B6992CBE0046 /* libPods-iOS-path-smooth.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-iOS-path-smooth.a"; sourceTree = BUILT_PRODUCTS_DIR; };
45 | 5D2AC10F7C95D76530059182 /* Pods-iOS-path-smooth-swift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-path-smooth-swift.release.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-path-smooth-swift/Pods-iOS-path-smooth-swift.release.xcconfig"; sourceTree = ""; };
46 | 62AC124C289062E02B0A9C7C /* Pods-iOS-path-smooth.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-path-smooth.debug.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-path-smooth/Pods-iOS-path-smooth.debug.xcconfig"; sourceTree = ""; };
47 | 6A5393CF1F96FC7100DC8AE8 /* iOS-path-smooth-swift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "iOS-path-smooth-swift.app"; sourceTree = BUILT_PRODUCTS_DIR; };
48 | 6A5393D11F96FC7100DC8AE8 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
49 | 6A5393D31F96FC7100DC8AE8 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; };
50 | 6A5393D61F96FC7100DC8AE8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
51 | 6A5393D81F96FC7100DC8AE8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
52 | 6A5393DB1F96FC7100DC8AE8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
53 | 6A5393DD1F96FC7100DC8AE8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
54 | 6A5393E31F96FCA600DC8AE8 /* Swift-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Swift-Bridging-Header.h"; sourceTree = ""; };
55 | 6A5393EA1F9701D700DC8AE8 /* iOS-path-smoothUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "iOS-path-smoothUITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
56 | 6A5393EC1F9701D700DC8AE8 /* iOS_path_smoothUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iOS_path_smoothUITests.m; sourceTree = ""; };
57 | 6A5393EE1F9701D700DC8AE8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
58 | 98395D749A76220D7967B15A /* libPods-iOS-path-smooth-swift.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-iOS-path-smooth-swift.a"; sourceTree = BUILT_PRODUCTS_DIR; };
59 | B6687CF01F8F1DED0062185A /* iOS-path-smooth.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "iOS-path-smooth.app"; sourceTree = BUILT_PRODUCTS_DIR; };
60 | B6687CF41F8F1DED0062185A /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
61 | B6687CF61F8F1DED0062185A /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
62 | B6687CF71F8F1DED0062185A /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
63 | B6687CF91F8F1DED0062185A /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; };
64 | B6687CFA1F8F1DED0062185A /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; };
65 | B6687CFD1F8F1DED0062185A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
66 | B6687CFF1F8F1DED0062185A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
67 | B6687D021F8F1DED0062185A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
68 | B6687D041F8F1DED0062185A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
69 | B6687D0A1F8F23DF0062185A /* AMapTrace2.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AMapTrace2.txt; sourceTree = ""; };
70 | B6687D0F1F8F3A8B0062185A /* MASmoothPathTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MASmoothPathTool.h; sourceTree = ""; };
71 | B6687D101F8F3A8B0062185A /* MASmoothPathTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MASmoothPathTool.m; sourceTree = ""; };
72 | D3003738B3F53E2015AC98AC /* Pods-iOS-path-smooth-swift.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-path-smooth-swift.debug.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-path-smooth-swift/Pods-iOS-path-smooth-swift.debug.xcconfig"; sourceTree = ""; };
73 | /* End PBXFileReference section */
74 |
75 | /* Begin PBXFrameworksBuildPhase section */
76 | 6A5393CC1F96FC7100DC8AE8 /* Frameworks */ = {
77 | isa = PBXFrameworksBuildPhase;
78 | buildActionMask = 2147483647;
79 | files = (
80 | 124DE5F77DB8958401CC6999 /* libPods-iOS-path-smooth-swift.a in Frameworks */,
81 | );
82 | runOnlyForDeploymentPostprocessing = 0;
83 | };
84 | 6A5393E71F9701D700DC8AE8 /* Frameworks */ = {
85 | isa = PBXFrameworksBuildPhase;
86 | buildActionMask = 2147483647;
87 | files = (
88 | );
89 | runOnlyForDeploymentPostprocessing = 0;
90 | };
91 | B6687CED1F8F1DED0062185A /* Frameworks */ = {
92 | isa = PBXFrameworksBuildPhase;
93 | buildActionMask = 2147483647;
94 | files = (
95 | F0DFB83144703927896B72FE /* libPods-iOS-path-smooth.a in Frameworks */,
96 | );
97 | runOnlyForDeploymentPostprocessing = 0;
98 | };
99 | /* End PBXFrameworksBuildPhase section */
100 |
101 | /* Begin PBXGroup section */
102 | 01813C3BB1A01A9A19E15B88 /* Pods */ = {
103 | isa = PBXGroup;
104 | children = (
105 | 62AC124C289062E02B0A9C7C /* Pods-iOS-path-smooth.debug.xcconfig */,
106 | 0BD3063DD5C0D30997F68CAA /* Pods-iOS-path-smooth.release.xcconfig */,
107 | D3003738B3F53E2015AC98AC /* Pods-iOS-path-smooth-swift.debug.xcconfig */,
108 | 5D2AC10F7C95D76530059182 /* Pods-iOS-path-smooth-swift.release.xcconfig */,
109 | );
110 | name = Pods;
111 | sourceTree = "";
112 | };
113 | 6A5393D01F96FC7100DC8AE8 /* iOS-path-smooth-swift */ = {
114 | isa = PBXGroup;
115 | children = (
116 | 6A5393D11F96FC7100DC8AE8 /* AppDelegate.swift */,
117 | 6A5393D31F96FC7100DC8AE8 /* ViewController.swift */,
118 | 6A5393E31F96FCA600DC8AE8 /* Swift-Bridging-Header.h */,
119 | 6A5393D51F96FC7100DC8AE8 /* Main.storyboard */,
120 | 6A5393D81F96FC7100DC8AE8 /* Assets.xcassets */,
121 | 6A5393DA1F96FC7100DC8AE8 /* LaunchScreen.storyboard */,
122 | 6A5393DD1F96FC7100DC8AE8 /* Info.plist */,
123 | );
124 | path = "iOS-path-smooth-swift";
125 | sourceTree = "";
126 | };
127 | 6A5393EB1F9701D700DC8AE8 /* iOS-path-smoothUITests */ = {
128 | isa = PBXGroup;
129 | children = (
130 | 6A5393EC1F9701D700DC8AE8 /* iOS_path_smoothUITests.m */,
131 | 6A5393EE1F9701D700DC8AE8 /* Info.plist */,
132 | );
133 | path = "iOS-path-smoothUITests";
134 | sourceTree = "";
135 | };
136 | B6687CE71F8F1DED0062185A = {
137 | isa = PBXGroup;
138 | children = (
139 | B6687CF21F8F1DED0062185A /* iOS-path-smooth */,
140 | 6A5393D01F96FC7100DC8AE8 /* iOS-path-smooth-swift */,
141 | 6A5393EB1F9701D700DC8AE8 /* iOS-path-smoothUITests */,
142 | B6687CF11F8F1DED0062185A /* Products */,
143 | 01813C3BB1A01A9A19E15B88 /* Pods */,
144 | E04209B21D0F7250A64A40BE /* Frameworks */,
145 | );
146 | sourceTree = "";
147 | };
148 | B6687CF11F8F1DED0062185A /* Products */ = {
149 | isa = PBXGroup;
150 | children = (
151 | B6687CF01F8F1DED0062185A /* iOS-path-smooth.app */,
152 | 6A5393CF1F96FC7100DC8AE8 /* iOS-path-smooth-swift.app */,
153 | 6A5393EA1F9701D700DC8AE8 /* iOS-path-smoothUITests.xctest */,
154 | );
155 | name = Products;
156 | sourceTree = "";
157 | };
158 | B6687CF21F8F1DED0062185A /* iOS-path-smooth */ = {
159 | isa = PBXGroup;
160 | children = (
161 | B6687D0F1F8F3A8B0062185A /* MASmoothPathTool.h */,
162 | B6687D101F8F3A8B0062185A /* MASmoothPathTool.m */,
163 | B6687D0A1F8F23DF0062185A /* AMapTrace2.txt */,
164 | B6687CF61F8F1DED0062185A /* AppDelegate.h */,
165 | B6687CF71F8F1DED0062185A /* AppDelegate.m */,
166 | B6687CF91F8F1DED0062185A /* ViewController.h */,
167 | B6687CFA1F8F1DED0062185A /* ViewController.m */,
168 | B6687CFC1F8F1DED0062185A /* Main.storyboard */,
169 | B6687CFF1F8F1DED0062185A /* Assets.xcassets */,
170 | B6687D011F8F1DED0062185A /* LaunchScreen.storyboard */,
171 | B6687D041F8F1DED0062185A /* Info.plist */,
172 | B6687CF31F8F1DED0062185A /* Supporting Files */,
173 | );
174 | path = "iOS-path-smooth";
175 | sourceTree = "";
176 | };
177 | B6687CF31F8F1DED0062185A /* Supporting Files */ = {
178 | isa = PBXGroup;
179 | children = (
180 | B6687CF41F8F1DED0062185A /* main.m */,
181 | );
182 | name = "Supporting Files";
183 | sourceTree = "";
184 | };
185 | E04209B21D0F7250A64A40BE /* Frameworks */ = {
186 | isa = PBXGroup;
187 | children = (
188 | 37EBB056FCE1B6992CBE0046 /* libPods-iOS-path-smooth.a */,
189 | 98395D749A76220D7967B15A /* libPods-iOS-path-smooth-swift.a */,
190 | );
191 | name = Frameworks;
192 | sourceTree = "";
193 | };
194 | /* End PBXGroup section */
195 |
196 | /* Begin PBXNativeTarget section */
197 | 6A5393CE1F96FC7100DC8AE8 /* iOS-path-smooth-swift */ = {
198 | isa = PBXNativeTarget;
199 | buildConfigurationList = 6A5393DE1F96FC7100DC8AE8 /* Build configuration list for PBXNativeTarget "iOS-path-smooth-swift" */;
200 | buildPhases = (
201 | 2A49C8ACF34E98EE0B3EA93E /* [CP] Check Pods Manifest.lock */,
202 | 6A5393CB1F96FC7100DC8AE8 /* Sources */,
203 | 6A5393CC1F96FC7100DC8AE8 /* Frameworks */,
204 | 6A5393CD1F96FC7100DC8AE8 /* Resources */,
205 | 0A52469BE3F914E48E1F207C /* [CP] Copy Pods Resources */,
206 | );
207 | buildRules = (
208 | );
209 | dependencies = (
210 | );
211 | name = "iOS-path-smooth-swift";
212 | productName = "iOS-patch-smooth-swift";
213 | productReference = 6A5393CF1F96FC7100DC8AE8 /* iOS-path-smooth-swift.app */;
214 | productType = "com.apple.product-type.application";
215 | };
216 | 6A5393E91F9701D700DC8AE8 /* iOS-path-smoothUITests */ = {
217 | isa = PBXNativeTarget;
218 | buildConfigurationList = 6A5393F11F9701D700DC8AE8 /* Build configuration list for PBXNativeTarget "iOS-path-smoothUITests" */;
219 | buildPhases = (
220 | 6A5393E61F9701D700DC8AE8 /* Sources */,
221 | 6A5393E71F9701D700DC8AE8 /* Frameworks */,
222 | 6A5393E81F9701D700DC8AE8 /* Resources */,
223 | );
224 | buildRules = (
225 | );
226 | dependencies = (
227 | 6A5393F01F9701D700DC8AE8 /* PBXTargetDependency */,
228 | );
229 | name = "iOS-path-smoothUITests";
230 | productName = "iOS-path-smoothUITests";
231 | productReference = 6A5393EA1F9701D700DC8AE8 /* iOS-path-smoothUITests.xctest */;
232 | productType = "com.apple.product-type.bundle.ui-testing";
233 | };
234 | B6687CEF1F8F1DED0062185A /* iOS-path-smooth */ = {
235 | isa = PBXNativeTarget;
236 | buildConfigurationList = B6687D071F8F1DED0062185A /* Build configuration list for PBXNativeTarget "iOS-path-smooth" */;
237 | buildPhases = (
238 | 4D3B85B4928BBB16EC691681 /* [CP] Check Pods Manifest.lock */,
239 | B6687CEC1F8F1DED0062185A /* Sources */,
240 | B6687CED1F8F1DED0062185A /* Frameworks */,
241 | B6687CEE1F8F1DED0062185A /* Resources */,
242 | 7A79318079AC1FD502AB5DB0 /* [CP] Copy Pods Resources */,
243 | );
244 | buildRules = (
245 | );
246 | dependencies = (
247 | );
248 | name = "iOS-path-smooth";
249 | productName = "iOS-path-smooth";
250 | productReference = B6687CF01F8F1DED0062185A /* iOS-path-smooth.app */;
251 | productType = "com.apple.product-type.application";
252 | };
253 | /* End PBXNativeTarget section */
254 |
255 | /* Begin PBXProject section */
256 | B6687CE81F8F1DED0062185A /* Project object */ = {
257 | isa = PBXProject;
258 | attributes = {
259 | LastSwiftUpdateCheck = 0900;
260 | LastUpgradeCheck = 0900;
261 | ORGANIZATIONNAME = autonavi;
262 | TargetAttributes = {
263 | 6A5393CE1F96FC7100DC8AE8 = {
264 | CreatedOnToolsVersion = 9.0;
265 | DevelopmentTeam = YMJ372W38W;
266 | ProvisioningStyle = Manual;
267 | };
268 | 6A5393E91F9701D700DC8AE8 = {
269 | CreatedOnToolsVersion = 9.0;
270 | DevelopmentTeam = YMJ372W38W;
271 | ProvisioningStyle = Manual;
272 | TestTargetID = B6687CEF1F8F1DED0062185A;
273 | };
274 | B6687CEF1F8F1DED0062185A = {
275 | CreatedOnToolsVersion = 8.3.1;
276 | DevelopmentTeam = YMJ372W38W;
277 | ProvisioningStyle = Manual;
278 | };
279 | };
280 | };
281 | buildConfigurationList = B6687CEB1F8F1DED0062185A /* Build configuration list for PBXProject "iOS-path-smooth" */;
282 | compatibilityVersion = "Xcode 3.2";
283 | developmentRegion = English;
284 | hasScannedForEncodings = 0;
285 | knownRegions = (
286 | en,
287 | Base,
288 | );
289 | mainGroup = B6687CE71F8F1DED0062185A;
290 | productRefGroup = B6687CF11F8F1DED0062185A /* Products */;
291 | projectDirPath = "";
292 | projectRoot = "";
293 | targets = (
294 | B6687CEF1F8F1DED0062185A /* iOS-path-smooth */,
295 | 6A5393CE1F96FC7100DC8AE8 /* iOS-path-smooth-swift */,
296 | 6A5393E91F9701D700DC8AE8 /* iOS-path-smoothUITests */,
297 | );
298 | };
299 | /* End PBXProject section */
300 |
301 | /* Begin PBXResourcesBuildPhase section */
302 | 6A5393CD1F96FC7100DC8AE8 /* Resources */ = {
303 | isa = PBXResourcesBuildPhase;
304 | buildActionMask = 2147483647;
305 | files = (
306 | 6A5393F51F9739CC00DC8AE8 /* AMapTrace2.txt in Resources */,
307 | 6A5393DC1F96FC7100DC8AE8 /* LaunchScreen.storyboard in Resources */,
308 | 6A5393D91F96FC7100DC8AE8 /* Assets.xcassets in Resources */,
309 | 6A5393D71F96FC7100DC8AE8 /* Main.storyboard in Resources */,
310 | );
311 | runOnlyForDeploymentPostprocessing = 0;
312 | };
313 | 6A5393E81F9701D700DC8AE8 /* Resources */ = {
314 | isa = PBXResourcesBuildPhase;
315 | buildActionMask = 2147483647;
316 | files = (
317 | );
318 | runOnlyForDeploymentPostprocessing = 0;
319 | };
320 | B6687CEE1F8F1DED0062185A /* Resources */ = {
321 | isa = PBXResourcesBuildPhase;
322 | buildActionMask = 2147483647;
323 | files = (
324 | B6687D0B1F8F23DF0062185A /* AMapTrace2.txt in Resources */,
325 | B6687D031F8F1DED0062185A /* LaunchScreen.storyboard in Resources */,
326 | B6687D001F8F1DED0062185A /* Assets.xcassets in Resources */,
327 | B6687CFE1F8F1DED0062185A /* Main.storyboard in Resources */,
328 | );
329 | runOnlyForDeploymentPostprocessing = 0;
330 | };
331 | /* End PBXResourcesBuildPhase section */
332 |
333 | /* Begin PBXShellScriptBuildPhase section */
334 | 0A52469BE3F914E48E1F207C /* [CP] Copy Pods Resources */ = {
335 | isa = PBXShellScriptBuildPhase;
336 | buildActionMask = 2147483647;
337 | files = (
338 | );
339 | inputPaths = (
340 | "${PODS_ROOT}/Target Support Files/Pods-iOS-path-smooth-swift/Pods-iOS-path-smooth-swift-resources.sh",
341 | "${PODS_ROOT}/AMap3DMap/MAMapKit.framework/AMap.bundle",
342 | );
343 | name = "[CP] Copy Pods Resources";
344 | outputPaths = (
345 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AMap.bundle",
346 | );
347 | runOnlyForDeploymentPostprocessing = 0;
348 | shellPath = /bin/sh;
349 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iOS-path-smooth-swift/Pods-iOS-path-smooth-swift-resources.sh\"\n";
350 | showEnvVarsInLog = 0;
351 | };
352 | 2A49C8ACF34E98EE0B3EA93E /* [CP] Check Pods Manifest.lock */ = {
353 | isa = PBXShellScriptBuildPhase;
354 | buildActionMask = 2147483647;
355 | files = (
356 | );
357 | inputPaths = (
358 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
359 | "${PODS_ROOT}/Manifest.lock",
360 | );
361 | name = "[CP] Check Pods Manifest.lock";
362 | outputPaths = (
363 | "$(DERIVED_FILE_DIR)/Pods-iOS-path-smooth-swift-checkManifestLockResult.txt",
364 | );
365 | runOnlyForDeploymentPostprocessing = 0;
366 | shellPath = /bin/sh;
367 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
368 | showEnvVarsInLog = 0;
369 | };
370 | 4D3B85B4928BBB16EC691681 /* [CP] Check Pods Manifest.lock */ = {
371 | isa = PBXShellScriptBuildPhase;
372 | buildActionMask = 2147483647;
373 | files = (
374 | );
375 | inputPaths = (
376 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
377 | "${PODS_ROOT}/Manifest.lock",
378 | );
379 | name = "[CP] Check Pods Manifest.lock";
380 | outputPaths = (
381 | "$(DERIVED_FILE_DIR)/Pods-iOS-path-smooth-checkManifestLockResult.txt",
382 | );
383 | runOnlyForDeploymentPostprocessing = 0;
384 | shellPath = /bin/sh;
385 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
386 | showEnvVarsInLog = 0;
387 | };
388 | 7A79318079AC1FD502AB5DB0 /* [CP] Copy Pods Resources */ = {
389 | isa = PBXShellScriptBuildPhase;
390 | buildActionMask = 2147483647;
391 | files = (
392 | );
393 | inputPaths = (
394 | "${PODS_ROOT}/Target Support Files/Pods-iOS-path-smooth/Pods-iOS-path-smooth-resources.sh",
395 | "${PODS_ROOT}/AMap3DMap/MAMapKit.framework/AMap.bundle",
396 | );
397 | name = "[CP] Copy Pods Resources";
398 | outputPaths = (
399 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AMap.bundle",
400 | );
401 | runOnlyForDeploymentPostprocessing = 0;
402 | shellPath = /bin/sh;
403 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iOS-path-smooth/Pods-iOS-path-smooth-resources.sh\"\n";
404 | showEnvVarsInLog = 0;
405 | };
406 | /* End PBXShellScriptBuildPhase section */
407 |
408 | /* Begin PBXSourcesBuildPhase section */
409 | 6A5393CB1F96FC7100DC8AE8 /* Sources */ = {
410 | isa = PBXSourcesBuildPhase;
411 | buildActionMask = 2147483647;
412 | files = (
413 | 6A5393F41F9739C900DC8AE8 /* MASmoothPathTool.m in Sources */,
414 | 6A5393F71F973AA800DC8AE8 /* AMapTrace2.txt in Sources */,
415 | 6A5393D41F96FC7100DC8AE8 /* ViewController.swift in Sources */,
416 | 6A5393D21F96FC7100DC8AE8 /* AppDelegate.swift in Sources */,
417 | );
418 | runOnlyForDeploymentPostprocessing = 0;
419 | };
420 | 6A5393E61F9701D700DC8AE8 /* Sources */ = {
421 | isa = PBXSourcesBuildPhase;
422 | buildActionMask = 2147483647;
423 | files = (
424 | 6A5393ED1F9701D700DC8AE8 /* iOS_path_smoothUITests.m in Sources */,
425 | );
426 | runOnlyForDeploymentPostprocessing = 0;
427 | };
428 | B6687CEC1F8F1DED0062185A /* Sources */ = {
429 | isa = PBXSourcesBuildPhase;
430 | buildActionMask = 2147483647;
431 | files = (
432 | 6A5393E51F96FEC600DC8AE8 /* MASmoothPathTool.m in Sources */,
433 | 6A5393F61F973AA500DC8AE8 /* AMapTrace2.txt in Sources */,
434 | B6687CFB1F8F1DED0062185A /* ViewController.m in Sources */,
435 | B6687CF81F8F1DED0062185A /* AppDelegate.m in Sources */,
436 | B6687CF51F8F1DED0062185A /* main.m in Sources */,
437 | );
438 | runOnlyForDeploymentPostprocessing = 0;
439 | };
440 | /* End PBXSourcesBuildPhase section */
441 |
442 | /* Begin PBXTargetDependency section */
443 | 6A5393F01F9701D700DC8AE8 /* PBXTargetDependency */ = {
444 | isa = PBXTargetDependency;
445 | target = B6687CEF1F8F1DED0062185A /* iOS-path-smooth */;
446 | targetProxy = 6A5393EF1F9701D700DC8AE8 /* PBXContainerItemProxy */;
447 | };
448 | /* End PBXTargetDependency section */
449 |
450 | /* Begin PBXVariantGroup section */
451 | 6A5393D51F96FC7100DC8AE8 /* Main.storyboard */ = {
452 | isa = PBXVariantGroup;
453 | children = (
454 | 6A5393D61F96FC7100DC8AE8 /* Base */,
455 | );
456 | name = Main.storyboard;
457 | sourceTree = "";
458 | };
459 | 6A5393DA1F96FC7100DC8AE8 /* LaunchScreen.storyboard */ = {
460 | isa = PBXVariantGroup;
461 | children = (
462 | 6A5393DB1F96FC7100DC8AE8 /* Base */,
463 | );
464 | name = LaunchScreen.storyboard;
465 | sourceTree = "";
466 | };
467 | B6687CFC1F8F1DED0062185A /* Main.storyboard */ = {
468 | isa = PBXVariantGroup;
469 | children = (
470 | B6687CFD1F8F1DED0062185A /* Base */,
471 | );
472 | name = Main.storyboard;
473 | sourceTree = "";
474 | };
475 | B6687D011F8F1DED0062185A /* LaunchScreen.storyboard */ = {
476 | isa = PBXVariantGroup;
477 | children = (
478 | B6687D021F8F1DED0062185A /* Base */,
479 | );
480 | name = LaunchScreen.storyboard;
481 | sourceTree = "";
482 | };
483 | /* End PBXVariantGroup section */
484 |
485 | /* Begin XCBuildConfiguration section */
486 | 6A5393DF1F96FC7100DC8AE8 /* Debug */ = {
487 | isa = XCBuildConfiguration;
488 | baseConfigurationReference = D3003738B3F53E2015AC98AC /* Pods-iOS-path-smooth-swift.debug.xcconfig */;
489 | buildSettings = {
490 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
491 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
492 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
493 | CLANG_WARN_COMMA = YES;
494 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
495 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
496 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
497 | CLANG_WARN_STRICT_PROTOTYPES = YES;
498 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
499 | CODE_SIGN_IDENTITY = "iPhone Developer";
500 | CODE_SIGN_STYLE = Manual;
501 | DEVELOPMENT_TEAM = YMJ372W38W;
502 | GCC_C_LANGUAGE_STANDARD = gnu11;
503 | INFOPLIST_FILE = "iOS-path-smooth-swift/Info.plist";
504 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
505 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
506 | PRODUCT_BUNDLE_IDENTIFIER = "com.autonavi.iOS-path-smooth-swift";
507 | PRODUCT_NAME = "$(TARGET_NAME)";
508 | PROVISIONING_PROFILE = "4592e5f2-e62a-411c-a394-94b6f5f6148e";
509 | PROVISIONING_PROFILE_SPECIFIER = openPlatform_development;
510 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
511 | SWIFT_OBJC_BRIDGING_HEADER = "./iOS-path-smooth-swift/Swift-Bridging-Header.h";
512 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
513 | SWIFT_VERSION = 4.0;
514 | TARGETED_DEVICE_FAMILY = "1,2";
515 | };
516 | name = Debug;
517 | };
518 | 6A5393E01F96FC7100DC8AE8 /* Release */ = {
519 | isa = XCBuildConfiguration;
520 | baseConfigurationReference = 5D2AC10F7C95D76530059182 /* Pods-iOS-path-smooth-swift.release.xcconfig */;
521 | buildSettings = {
522 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
523 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
524 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
525 | CLANG_WARN_COMMA = YES;
526 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
527 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
528 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
529 | CLANG_WARN_STRICT_PROTOTYPES = YES;
530 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
531 | CODE_SIGN_IDENTITY = "iPhone Developer";
532 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
533 | CODE_SIGN_STYLE = Manual;
534 | DEVELOPMENT_TEAM = YMJ372W38W;
535 | GCC_C_LANGUAGE_STANDARD = gnu11;
536 | INFOPLIST_FILE = "iOS-path-smooth-swift/Info.plist";
537 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
538 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
539 | PRODUCT_BUNDLE_IDENTIFIER = "com.autonavi.iOS-path-smooth-swift";
540 | PRODUCT_NAME = "$(TARGET_NAME)";
541 | PROVISIONING_PROFILE = "a892512d-fe94-4702-b716-0b66880b936d";
542 | PROVISIONING_PROFILE_SPECIFIER = openPlatformInhouse;
543 | SWIFT_OBJC_BRIDGING_HEADER = "./iOS-path-smooth-swift/Swift-Bridging-Header.h";
544 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
545 | SWIFT_VERSION = 4.0;
546 | TARGETED_DEVICE_FAMILY = "1,2";
547 | };
548 | name = Release;
549 | };
550 | 6A5393F21F9701D700DC8AE8 /* Debug */ = {
551 | isa = XCBuildConfiguration;
552 | buildSettings = {
553 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
554 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
555 | CLANG_WARN_COMMA = YES;
556 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
557 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
558 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
559 | CLANG_WARN_STRICT_PROTOTYPES = YES;
560 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
561 | CODE_SIGN_IDENTITY = "iPhone Developer";
562 | CODE_SIGN_STYLE = Manual;
563 | DEVELOPMENT_TEAM = YMJ372W38W;
564 | GCC_C_LANGUAGE_STANDARD = gnu11;
565 | INFOPLIST_FILE = "iOS-path-smoothUITests/Info.plist";
566 | IPHONEOS_DEPLOYMENT_TARGET = 11.0;
567 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
568 | PRODUCT_BUNDLE_IDENTIFIER = "com.autonavi.iOS-path-smoothUITests";
569 | PRODUCT_NAME = "$(TARGET_NAME)";
570 | PROVISIONING_PROFILE = "4592e5f2-e62a-411c-a394-94b6f5f6148e";
571 | PROVISIONING_PROFILE_SPECIFIER = openPlatform_development;
572 | TARGETED_DEVICE_FAMILY = "1,2";
573 | TEST_TARGET_NAME = "iOS-path-smooth";
574 | };
575 | name = Debug;
576 | };
577 | 6A5393F31F9701D700DC8AE8 /* Release */ = {
578 | isa = XCBuildConfiguration;
579 | buildSettings = {
580 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
581 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
582 | CLANG_WARN_COMMA = YES;
583 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
584 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
585 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
586 | CLANG_WARN_STRICT_PROTOTYPES = YES;
587 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
588 | CODE_SIGN_IDENTITY = "iPhone Developer";
589 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
590 | CODE_SIGN_STYLE = Manual;
591 | DEVELOPMENT_TEAM = YMJ372W38W;
592 | GCC_C_LANGUAGE_STANDARD = gnu11;
593 | INFOPLIST_FILE = "iOS-path-smoothUITests/Info.plist";
594 | IPHONEOS_DEPLOYMENT_TARGET = 11.0;
595 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
596 | PRODUCT_BUNDLE_IDENTIFIER = "com.autonavi.iOS-path-smoothUITests";
597 | PRODUCT_NAME = "$(TARGET_NAME)";
598 | PROVISIONING_PROFILE = "4592e5f2-e62a-411c-a394-94b6f5f6148e";
599 | PROVISIONING_PROFILE_SPECIFIER = openPlatform_development;
600 | TARGETED_DEVICE_FAMILY = "1,2";
601 | TEST_TARGET_NAME = "iOS-path-smooth";
602 | };
603 | name = Release;
604 | };
605 | B6687D051F8F1DED0062185A /* Debug */ = {
606 | isa = XCBuildConfiguration;
607 | buildSettings = {
608 | ALWAYS_SEARCH_USER_PATHS = NO;
609 | CLANG_ANALYZER_NONNULL = YES;
610 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
611 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
612 | CLANG_CXX_LIBRARY = "libc++";
613 | CLANG_ENABLE_MODULES = YES;
614 | CLANG_ENABLE_OBJC_ARC = YES;
615 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
616 | CLANG_WARN_BOOL_CONVERSION = YES;
617 | CLANG_WARN_COMMA = YES;
618 | CLANG_WARN_CONSTANT_CONVERSION = YES;
619 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
620 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
621 | CLANG_WARN_EMPTY_BODY = YES;
622 | CLANG_WARN_ENUM_CONVERSION = YES;
623 | CLANG_WARN_INFINITE_RECURSION = YES;
624 | CLANG_WARN_INT_CONVERSION = YES;
625 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
626 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
627 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
628 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
629 | CLANG_WARN_STRICT_PROTOTYPES = YES;
630 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
631 | CLANG_WARN_UNREACHABLE_CODE = YES;
632 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
633 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
634 | COPY_PHASE_STRIP = NO;
635 | DEBUG_INFORMATION_FORMAT = dwarf;
636 | ENABLE_STRICT_OBJC_MSGSEND = YES;
637 | ENABLE_TESTABILITY = YES;
638 | GCC_C_LANGUAGE_STANDARD = gnu99;
639 | GCC_DYNAMIC_NO_PIC = NO;
640 | GCC_NO_COMMON_BLOCKS = YES;
641 | GCC_OPTIMIZATION_LEVEL = 0;
642 | GCC_PREPROCESSOR_DEFINITIONS = (
643 | "DEBUG=1",
644 | "$(inherited)",
645 | );
646 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
647 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
648 | GCC_WARN_UNDECLARED_SELECTOR = YES;
649 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
650 | GCC_WARN_UNUSED_FUNCTION = YES;
651 | GCC_WARN_UNUSED_VARIABLE = YES;
652 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
653 | MTL_ENABLE_DEBUG_INFO = YES;
654 | ONLY_ACTIVE_ARCH = YES;
655 | SDKROOT = iphoneos;
656 | TARGETED_DEVICE_FAMILY = "1,2";
657 | VALID_ARCHS = "arm64 armv7 armv7s";
658 | };
659 | name = Debug;
660 | };
661 | B6687D061F8F1DED0062185A /* Release */ = {
662 | isa = XCBuildConfiguration;
663 | buildSettings = {
664 | ALWAYS_SEARCH_USER_PATHS = NO;
665 | CLANG_ANALYZER_NONNULL = YES;
666 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
667 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
668 | CLANG_CXX_LIBRARY = "libc++";
669 | CLANG_ENABLE_MODULES = YES;
670 | CLANG_ENABLE_OBJC_ARC = YES;
671 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
672 | CLANG_WARN_BOOL_CONVERSION = YES;
673 | CLANG_WARN_COMMA = YES;
674 | CLANG_WARN_CONSTANT_CONVERSION = YES;
675 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
676 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
677 | CLANG_WARN_EMPTY_BODY = YES;
678 | CLANG_WARN_ENUM_CONVERSION = YES;
679 | CLANG_WARN_INFINITE_RECURSION = YES;
680 | CLANG_WARN_INT_CONVERSION = YES;
681 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
682 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
683 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
684 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
685 | CLANG_WARN_STRICT_PROTOTYPES = YES;
686 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
687 | CLANG_WARN_UNREACHABLE_CODE = YES;
688 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
689 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
690 | COPY_PHASE_STRIP = NO;
691 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
692 | ENABLE_NS_ASSERTIONS = NO;
693 | ENABLE_STRICT_OBJC_MSGSEND = YES;
694 | GCC_C_LANGUAGE_STANDARD = gnu99;
695 | GCC_NO_COMMON_BLOCKS = YES;
696 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
697 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
698 | GCC_WARN_UNDECLARED_SELECTOR = YES;
699 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
700 | GCC_WARN_UNUSED_FUNCTION = YES;
701 | GCC_WARN_UNUSED_VARIABLE = YES;
702 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
703 | MTL_ENABLE_DEBUG_INFO = NO;
704 | ONLY_ACTIVE_ARCH = YES;
705 | SDKROOT = iphoneos;
706 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
707 | TARGETED_DEVICE_FAMILY = "1,2";
708 | VALIDATE_PRODUCT = YES;
709 | VALID_ARCHS = "arm64 armv7 armv7s";
710 | };
711 | name = Release;
712 | };
713 | B6687D081F8F1DED0062185A /* Debug */ = {
714 | isa = XCBuildConfiguration;
715 | baseConfigurationReference = 62AC124C289062E02B0A9C7C /* Pods-iOS-path-smooth.debug.xcconfig */;
716 | buildSettings = {
717 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
718 | DEVELOPMENT_TEAM = YMJ372W38W;
719 | INFOPLIST_FILE = "iOS-path-smooth/Info.plist";
720 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
721 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
722 | PRODUCT_BUNDLE_IDENTIFIER = "com.autonavi.iOS-path-smooth";
723 | PRODUCT_NAME = "$(TARGET_NAME)";
724 | PROVISIONING_PROFILE = "4592e5f2-e62a-411c-a394-94b6f5f6148e";
725 | PROVISIONING_PROFILE_SPECIFIER = openPlatform_development;
726 | };
727 | name = Debug;
728 | };
729 | B6687D091F8F1DED0062185A /* Release */ = {
730 | isa = XCBuildConfiguration;
731 | baseConfigurationReference = 0BD3063DD5C0D30997F68CAA /* Pods-iOS-path-smooth.release.xcconfig */;
732 | buildSettings = {
733 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
734 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
735 | DEVELOPMENT_TEAM = YMJ372W38W;
736 | INFOPLIST_FILE = "iOS-path-smooth/Info.plist";
737 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
738 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
739 | PRODUCT_BUNDLE_IDENTIFIER = "com.autonavi.iOS-path-smooth";
740 | PRODUCT_NAME = "$(TARGET_NAME)";
741 | PROVISIONING_PROFILE = "a892512d-fe94-4702-b716-0b66880b936d";
742 | PROVISIONING_PROFILE_SPECIFIER = openPlatformInhouse;
743 | };
744 | name = Release;
745 | };
746 | /* End XCBuildConfiguration section */
747 |
748 | /* Begin XCConfigurationList section */
749 | 6A5393DE1F96FC7100DC8AE8 /* Build configuration list for PBXNativeTarget "iOS-path-smooth-swift" */ = {
750 | isa = XCConfigurationList;
751 | buildConfigurations = (
752 | 6A5393DF1F96FC7100DC8AE8 /* Debug */,
753 | 6A5393E01F96FC7100DC8AE8 /* Release */,
754 | );
755 | defaultConfigurationIsVisible = 0;
756 | defaultConfigurationName = Release;
757 | };
758 | 6A5393F11F9701D700DC8AE8 /* Build configuration list for PBXNativeTarget "iOS-path-smoothUITests" */ = {
759 | isa = XCConfigurationList;
760 | buildConfigurations = (
761 | 6A5393F21F9701D700DC8AE8 /* Debug */,
762 | 6A5393F31F9701D700DC8AE8 /* Release */,
763 | );
764 | defaultConfigurationIsVisible = 0;
765 | defaultConfigurationName = Release;
766 | };
767 | B6687CEB1F8F1DED0062185A /* Build configuration list for PBXProject "iOS-path-smooth" */ = {
768 | isa = XCConfigurationList;
769 | buildConfigurations = (
770 | B6687D051F8F1DED0062185A /* Debug */,
771 | B6687D061F8F1DED0062185A /* Release */,
772 | );
773 | defaultConfigurationIsVisible = 0;
774 | defaultConfigurationName = Release;
775 | };
776 | B6687D071F8F1DED0062185A /* Build configuration list for PBXNativeTarget "iOS-path-smooth" */ = {
777 | isa = XCConfigurationList;
778 | buildConfigurations = (
779 | B6687D081F8F1DED0062185A /* Debug */,
780 | B6687D091F8F1DED0062185A /* Release */,
781 | );
782 | defaultConfigurationIsVisible = 0;
783 | defaultConfigurationName = Release;
784 | };
785 | /* End XCConfigurationList section */
786 | };
787 | rootObject = B6687CE81F8F1DED0062185A /* Project object */;
788 | }
789 |
--------------------------------------------------------------------------------
/iOS-path-smooth.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/iOS-path-smooth.xcodeproj/xcshareddata/xcschemes/iOS-path-smooth-swift.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
31 |
32 |
33 |
34 |
40 |
41 |
42 |
43 |
44 |
45 |
56 |
58 |
64 |
65 |
66 |
67 |
68 |
69 |
75 |
77 |
83 |
84 |
85 |
86 |
88 |
89 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/iOS-path-smooth.xcodeproj/xcshareddata/xcschemes/iOS-path-smooth.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
31 |
32 |
34 |
40 |
41 |
42 |
43 |
44 |
50 |
51 |
52 |
53 |
54 |
55 |
66 |
68 |
74 |
75 |
76 |
77 |
78 |
79 |
85 |
87 |
93 |
94 |
95 |
96 |
98 |
99 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/iOS-path-smooth.xcodeproj/xcshareddata/xcschemes/iOS-path-smoothUITests.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
16 |
18 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
41 |
42 |
43 |
44 |
50 |
51 |
53 |
54 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/iOS-path-smooth.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/iOS-path-smooth/AMapTrace2.txt:
--------------------------------------------------------------------------------
1 | 2017-03-05 06:35:44,22.495428331163193,113.92424750434027
2 | 2017-03-05 06:35:47,22.49547607421875,113.92426161024305
3 | 2017-03-05 06:35:50,22.49552273220486,113.92428141276042
4 | 2017-03-05 06:35:53,22.49557834201389,113.92429497612848
5 | 2017-03-05 06:35:56,22.49567165798611,113.92429443359374
6 | 2017-03-05 06:35:59,22.49570095486111,113.92432779947917
7 | 2017-03-05 06:36:02,22.495764973958334,113.92430989583333
8 | 2017-03-05 06:36:05,22.495799153645834,113.9243248155382
9 | 2017-03-05 06:36:08,22.495887586805555,113.9242835828993
10 | 2017-03-05 06:36:11,22.495897894965278,113.92424696180555
11 | 2017-03-05 06:36:14,22.495962185329862,113.92421603732639
12 | 2017-03-05 06:36:17,22.496023220486112,113.92417100694445
13 | 2017-03-05 06:36:20,22.49604058159722,113.924140625
14 | 2017-03-05 06:36:23,22.49609429253472,113.92408745659722
15 | 2017-03-05 06:36:26,22.496124403211805,113.92401638454861
16 | 2017-03-05 06:36:29,22.496152072482637,113.92396728515625
17 | 2017-03-05 06:36:32,22.496171061197916,113.92391954210069
18 | 2017-03-05 06:36:35,22.496178927951387,113.9238525390625
19 | 2017-03-05 06:36:38,22.496171332465277,113.9237890625
20 | 2017-03-05 06:36:41,22.496165635850694,113.9237242296007
21 | 2017-03-05 06:36:44,22.4961279296875,113.92368218315973
22 | 2017-03-05 06:36:47,22.496079915364582,113.92359076605902
23 | 2017-03-05 06:36:50,22.49604736328125,113.92356879340278
24 | 2017-03-05 06:36:53,22.496000434027778,113.92352186414931
25 | 2017-03-05 06:36:56,22.49595160590278,113.92348470052083
26 | 2017-03-05 06:36:59,22.49589572482639,113.92344048394098
27 | 2017-03-05 06:37:02,22.495831434461806,113.92341118706597
28 | 2017-03-05 06:37:05,22.495760091145833,113.92339165581598
29 | 2017-03-05 06:37:08,22.495709635416667,113.9233865017361
30 | 2017-03-05 06:37:11,22.495643446180555,113.92338053385417
31 | 2017-03-05 06:37:14,22.4955419921875,113.92336018880208
32 | 2017-03-05 06:37:17,22.495495062934026,113.92335991753473
33 | 2017-03-05 06:37:20,22.495438639322916,113.92334988064236
34 | 2017-03-05 06:37:23,22.495364583333334,113.92333197699652
35 | 2017-03-05 06:37:26,22.495309787326388,113.92332763671875
36 | 2017-03-05 06:37:29,22.49523871527778,113.92329996744792
37 | 2017-03-05 06:37:32,22.49517822265625,113.92328043619791
38 | 2017-03-05 06:37:35,22.495130750868057,113.92326416015625
39 | 2017-03-05 06:37:38,22.49506591796875,113.92325439453126
40 | 2017-03-05 06:37:41,22.49501003689236,113.92323486328125
41 | 2017-03-05 06:37:44,22.49495388454861,113.92322916666667
42 | 2017-03-05 06:37:47,22.49491889105903,113.92323404947916
43 | 2017-03-05 06:37:50,22.4948681640625,113.92324408637153
44 | 2017-03-05 06:37:53,22.49481689453125,113.92326416015625
45 | 2017-03-05 06:37:56,22.494768880208333,113.92329616970486
46 | 2017-03-05 06:37:59,22.49471164279514,113.92334554036458
47 | 2017-03-05 06:38:02,22.494660101996526,113.92340006510416
48 | 2017-03-05 06:38:05,22.494612630208334,113.92344753689235
49 | 2017-03-05 06:38:08,22.494577365451388,113.923505859375
50 | 2017-03-05 06:38:11,22.49455322265625,113.92358452690972
51 | 2017-03-05 06:38:14,22.494535047743057,113.92364339192709
52 | 2017-03-05 06:38:17,22.49454128689236,113.92371283637152
53 | 2017-03-05 06:38:20,22.49452907986111,113.92378526475694
54 | 2017-03-05 06:38:23,22.494547254774307,113.92386420355903
55 | 2017-03-05 06:38:26,22.49454779730903,113.9239181857639
56 | 2017-03-05 06:38:29,22.49458034939236,113.9239675564236
57 | 2017-03-05 06:38:32,22.494617784288195,113.9240025499132
58 | 2017-03-05 06:38:35,22.494679361979166,113.92406087239583
59 | 2017-03-05 06:38:38,22.49473659939236,113.9240869140625
60 | 2017-03-05 06:38:41,22.494790581597222,113.92410834418403
61 | 2017-03-05 06:38:44,22.494871690538194,113.92415690104167
62 | 2017-03-05 06:38:47,22.49494086371528,113.92417371961805
63 | 2017-03-05 06:38:50,22.495005154079863,113.92420925564237
64 | 2017-03-05 06:38:53,22.495053168402777,113.924228515625
65 | 2017-03-05 06:38:56,22.495108506944444,113.92422471788194
66 | 2017-03-05 06:38:59,22.495174424913195,113.92421820746527
67 | 2017-03-05 06:39:02,22.495242241753473,113.92422878689236
68 | 2017-03-05 06:39:05,22.495303819444445,113.92422905815972
69 | 2017-03-05 06:39:08,22.4953515625,113.92424533420139
70 | 2017-03-05 06:39:11,22.49540744357639,113.92426540798611
71 | 2017-03-05 06:39:14,22.49547878689236,113.92428683810763
72 | 2017-03-05 06:39:17,22.495531141493057,113.92431315104167
73 | 2017-03-05 06:39:20,22.495601671006945,113.92432400173611
74 | 2017-03-05 06:39:23,22.49566569010417,113.92432942708334
75 | 2017-03-05 06:39:26,22.495725368923612,113.92431260850694
76 | 2017-03-05 06:39:29,22.49580105251736,113.92429443359374
77 | 2017-03-05 06:39:32,22.49586941189236,113.92426486545139
78 | 2017-03-05 06:39:35,22.4959375,113.92420952690972
79 | 2017-03-05 06:39:38,22.49602077907986,113.92412950303819
80 | 2017-03-05 06:39:41,22.49606635199653,113.92408257378472
81 | 2017-03-05 06:39:44,22.49611328125,113.9240003797743
82 | 2017-03-05 06:39:47,22.496153157552083,113.9239328342014
83 | 2017-03-05 06:39:50,22.496160210503472,113.92386311848958
84 | 2017-03-05 06:39:53,22.496166178385415,113.92380452473958
85 | 2017-03-05 06:39:56,22.49616889105903,113.92374484592014
86 | 2017-03-05 06:39:59,22.496144205729166,113.92368191189236
87 | 2017-03-05 06:40:02,22.496118977864583,113.9236195203993
88 | 2017-03-05 06:40:05,22.496083984375,113.92356174045139
89 | 2017-03-05 06:40:08,22.496041937934027,113.9235107421875
90 | 2017-03-05 06:40:11,22.49598388671875,113.9234703233507
91 | 2017-03-05 06:40:14,22.495875108506944,113.92342746310764
92 | 2017-03-05 06:40:17,22.495819227430555,113.92340142144097
93 | 2017-03-05 06:40:20,22.49574761284722,113.92338216145833
94 | 2017-03-05 06:40:23,22.49569254557292,113.92336724175347
95 | 2017-03-05 06:40:26,22.495615505642363,113.9233509657118
96 | 2017-03-05 06:40:29,22.495531412760418,113.9233363172743
97 | 2017-03-05 06:40:32,22.49546820746528,113.92332112630208
98 | 2017-03-05 06:40:35,22.495415852864582,113.92331976996527
99 | 2017-03-05 06:40:38,22.49536159939236,113.92330810546875
100 | 2017-03-05 06:40:41,22.495289984809027,113.92329264322916
101 | 2017-03-05 06:40:44,22.495218098958333,113.92327446831597
102 | 2017-03-05 06:40:47,22.49515652126736,113.92324842664931
103 | 2017-03-05 06:40:50,22.49508327907986,113.92323784722223
104 | 2017-03-05 06:40:53,22.49502468532986,113.92322645399305
105 | 2017-03-05 06:40:56,22.49497287326389,113.92322645399305
106 | 2017-03-05 06:40:59,22.49489529079861,113.92324137369792
107 | 2017-03-05 06:41:02,22.494810655381944,113.92326877170139
108 | 2017-03-05 06:41:05,22.494737684461807,113.92333930121528
109 | 2017-03-05 06:41:08,22.494700249565973,113.9233740234375
110 | 2017-03-05 06:41:11,22.494674207899305,113.92336235894098
111 | 2017-03-05 06:41:14,22.4946435546875,113.92340874565973
112 | 2017-03-05 06:41:17,22.49459391276042,113.9234974500868
113 | 2017-03-05 06:41:20,22.49457763671875,113.92356391059027
114 | 2017-03-05 06:41:23,22.49455078125,113.92363444010417
115 | 2017-03-05 06:41:26,22.494551323784723,113.92371175130208
116 | 2017-03-05 06:41:29,22.49455810546875,113.92377631293402
117 | 2017-03-05 06:41:32,22.494557020399306,113.92381564670139
118 | 2017-03-05 06:41:35,22.494581434461807,113.92387044270833
119 | 2017-03-05 06:41:38,22.494615614149307,113.92392035590278
120 | 2017-03-05 06:41:41,22.494669053819443,113.92400227864583
121 | 2017-03-05 06:41:44,22.494759928385417,113.92408555772569
122 | 2017-03-05 06:41:47,22.494829644097223,113.9241162109375
123 | 2017-03-05 06:41:50,22.494910481770834,113.9241392686632
124 | 2017-03-05 06:41:53,22.494988606770832,113.92414794921875
125 | 2017-03-05 06:41:56,22.495064290364585,113.92416205512153
126 | 2017-03-05 06:41:59,22.495145670572917,113.92417670355903
127 | 2017-03-05 06:42:02,22.495201822916666,113.92418565538195
128 | 2017-03-05 06:42:05,22.495274522569446,113.9241978624132
129 | 2017-03-05 06:42:08,22.495349934895835,113.92419460720487
130 | 2017-03-05 06:42:11,22.495413682725694,113.92419921875
131 | 2017-03-05 06:42:14,22.49547878689236,113.92421440972223
132 | 2017-03-05 06:42:17,22.495553114149306,113.9242320421007
133 | 2017-03-05 06:42:20,22.495622287326388,113.92424072265625
134 | 2017-03-05 06:42:23,22.49570149739583,113.92424777560764
135 | 2017-03-05 06:42:26,22.495751681857637,113.92427110460069
136 | 2017-03-05 06:42:29,22.495808919270832,113.92426567925347
137 | 2017-03-05 06:42:32,22.495879720052084,113.92425265842014
138 | 2017-03-05 06:42:35,22.495940483940974,113.92421847873264
139 | 2017-03-05 06:42:38,22.495999348958332,113.92417399088542
140 | 2017-03-05 06:42:41,22.496053602430557,113.92411024305555
141 | 2017-03-05 06:42:44,22.49609836154514,113.92404052734375
142 | 2017-03-05 06:42:47,22.49612765842014,113.92397162543402
143 | 2017-03-05 06:42:50,22.49615559895833,113.92389946831597
144 | 2017-03-05 06:42:53,22.496157769097223,113.92383816189236
145 | 2017-03-05 06:42:56,22.496153428819444,113.92374972873264
146 | 2017-03-05 06:42:59,22.49612087673611,113.92367133246528
147 | 2017-03-05 06:43:02,22.496080186631943,113.92359456380208
148 | 2017-03-05 06:43:05,22.496036512586805,113.92353515625
149 | 2017-03-05 06:43:08,22.495982530381944,113.92348225911458
150 | 2017-03-05 06:43:11,22.49592963324653,113.92343939887152
151 | 2017-03-05 06:43:14,22.4958740234375,113.92339870876737
152 | 2017-03-05 06:43:17,22.49579562717014,113.92337727864583
153 | 2017-03-05 06:43:20,22.495735948350696,113.92336724175347
154 | 2017-03-05 06:43:23,22.495679524739582,113.92335883246528
155 | 2017-03-05 06:43:26,22.495613606770835,113.92334445529514
156 | 2017-03-05 06:43:29,22.495546875,113.92333821614584
157 | 2017-03-05 06:43:32,22.49546875,113.92332411024306
158 | 2017-03-05 06:43:35,22.49540256076389,113.92331271701389
159 | 2017-03-05 06:43:38,22.495323621961806,113.92330322265624
160 | 2017-03-05 06:43:41,22.495260145399307,113.92329237196181
161 | 2017-03-05 06:43:44,22.495187717013888,113.92329779730903
162 | 2017-03-05 06:43:47,22.49510959201389,113.92328504774305
163 | 2017-03-05 06:43:50,22.495054524739583,113.92327094184027
164 | 2017-03-05 06:43:53,22.49499050564236,113.92326687282986
165 | 2017-03-05 06:43:56,22.494921875,113.92325981987847
166 | 2017-03-05 06:43:59,22.494860026041668,113.92326877170139
167 | 2017-03-05 06:44:02,22.494790852864583,113.92328803168402
168 | 2017-03-05 06:44:05,22.494749348958333,113.9233279079861
169 | 2017-03-05 06:44:08,22.494698893229167,113.92337212456597
170 | 2017-03-05 06:44:11,22.494654405381944,113.92342556423611
171 | 2017-03-05 06:44:14,22.494604220920138,113.92349772135417
172 | 2017-03-05 06:44:17,22.49458224826389,113.92354573567708
173 | 2017-03-05 06:44:20,22.494561631944446,113.92361273871528
174 | 2017-03-05 06:44:23,22.49455593532986,113.92367268880209
175 | 2017-03-05 06:44:26,22.49451877170139,113.92371609157986
176 | 2017-03-05 06:44:29,22.494539388020833,113.9238015407986
177 | 2017-03-05 06:44:32,22.494600151909722,113.9238831922743
178 | 2017-03-05 06:44:35,22.494626193576387,113.92395073784722
179 | 2017-03-05 06:44:38,22.494659288194445,113.92405246310764
180 | 2017-03-05 06:44:41,22.494726019965277,113.92412353515626
181 | 2017-03-05 06:44:44,22.494768880208333,113.92414496527778
182 | 2017-03-05 06:44:47,22.494810384114583,113.92418402777778
183 | 2017-03-05 06:44:50,22.49486843532986,113.92416558159722
184 | 2017-03-05 06:44:53,22.494971245659723,113.92419921875
185 | 2017-03-05 06:44:56,22.495039333767362,113.92420572916667
186 | 2017-03-05 06:44:59,22.495104166666668,113.92422797309028
187 | 2017-03-05 06:45:02,22.49517306857639,113.92424072265625
188 | 2017-03-05 06:45:05,22.495202365451387,113.92423095703126
189 | 2017-03-05 06:45:08,22.495269911024305,113.92424018012153
190 | 2017-03-05 06:45:11,22.49534722222222,113.92419813368056
191 | 2017-03-05 06:45:14,22.495406629774305,113.92424207899306
192 | 2017-03-05 06:45:17,22.49549533420139,113.92427327473958
193 | 2017-03-05 06:45:20,22.495584852430557,113.92427354600694
194 | 2017-03-05 06:45:23,22.495648328993056,113.92427734375
195 | 2017-03-05 06:45:26,22.495714246961807,113.92430962456598
196 | 2017-03-05 06:45:29,22.49573540581597,113.92431532118056
197 | 2017-03-05 06:45:32,22.495808919270832,113.9242835828993
198 | 2017-03-05 06:45:35,22.49589057074653,113.92426378038195
199 | 2017-03-05 06:45:38,22.49595947265625,113.92422661675347
200 | 2017-03-05 06:45:41,22.496015896267362,113.9241761610243
201 | 2017-03-05 06:45:44,22.496066080729168,113.92409830729167
202 | 2017-03-05 06:45:47,22.496097276475695,113.92400689019097
203 | 2017-03-05 06:45:50,22.496117621527777,113.92394368489583
204 | 2017-03-05 06:45:53,22.496142035590278,113.92388427734375
205 | 2017-03-05 06:45:56,22.496142035590278,113.92379421657986
206 | 2017-03-05 06:45:59,22.496139051649305,113.92371392144098
207 | 2017-03-05 06:46:02,22.49612114800347,113.92365152994792
208 | 2017-03-05 06:46:05,22.496090766059027,113.92358479817709
209 | 2017-03-05 06:46:08,22.496048177083335,113.92351833767361
210 | 2017-03-05 06:46:11,22.496014268663195,113.92347683376737
211 | 2017-03-05 06:46:14,22.495970052083333,113.92344156901042
212 | 2017-03-05 06:46:17,22.4958984375,113.92340359157986
213 | 2017-03-05 06:46:20,22.49582275390625,113.92338161892361
214 | 2017-03-05 06:46:23,22.49576171875,113.92337348090278
215 | 2017-03-05 06:46:26,22.495702311197917,113.92335991753473
216 | 2017-03-05 06:46:29,22.495638834635418,113.92334581163195
217 | 2017-03-05 06:46:32,22.495569118923612,113.92333441840277
218 | 2017-03-05 06:46:35,22.4954931640625,113.92332194010417
219 | 2017-03-05 06:46:38,22.495428873697918,113.92331271701389
220 | 2017-03-05 06:46:41,22.495363498263888,113.92330349392361
221 | 2017-03-05 06:46:44,22.495288899739585,113.92329074435764
222 | 2017-03-05 06:46:47,22.495215657552084,113.92327501085069
223 | 2017-03-05 06:46:50,22.495148383246526,113.92326877170139
224 | 2017-03-05 06:46:53,22.49509087456597,113.92326307508681
225 | 2017-03-05 06:46:56,22.495018446180556,113.92324896918403
226 | 2017-03-05 06:46:59,22.494971788194444,113.92323323567709
227 | 2017-03-05 06:47:02,22.49489203559028,113.92324462890625
228 | 2017-03-05 06:47:05,22.49481987847222,113.92328369140625
229 | 2017-03-05 06:47:08,22.494748263888887,113.9233154296875
230 | 2017-03-05 06:47:11,22.494684516059028,113.92337076822916
231 | 2017-03-05 06:47:14,22.494622667100696,113.9234361436632
232 | 2017-03-05 06:47:17,22.494591742621527,113.92349826388889
233 | 2017-03-05 06:47:20,22.494571397569445,113.923564453125
234 | 2017-03-05 06:47:23,22.494556749131945,113.92364556206597
235 | 2017-03-05 06:47:26,22.494551323784723,113.92370442708334
236 | 2017-03-05 06:47:29,22.49455268012153,113.92379448784722
237 | 2017-03-05 06:47:32,22.494564344618055,113.92386121961806
238 | 2017-03-05 06:47:35,22.494577365451388,113.92394151475695
239 | 2017-03-05 06:47:38,22.49462212456597,113.92401665581598
240 | 2017-03-05 06:47:41,22.494674479166665,113.92406629774305
241 | 2017-03-05 06:47:44,22.49473388671875,113.92410698784722
242 | 2017-03-05 06:47:47,22.49478542751736,113.92413736979167
243 | 2017-03-05 06:47:50,22.49485785590278,113.92417643229167
244 | 2017-03-05 06:47:53,22.494931098090277,113.9241880967882
245 | 2017-03-05 06:47:56,22.495016276041667,113.92420572916667
246 | 2017-03-05 06:47:59,22.495078938802084,113.9242209201389
247 | 2017-03-05 06:48:02,22.49514458550347,113.92423638237847
248 | 2017-03-05 06:48:05,22.495199652777778,113.9242578125
249 | 2017-03-05 06:48:08,22.495274793836806,113.92425021701389
250 | 2017-03-05 06:48:11,22.495345865885415,113.92426079644098
251 | 2017-03-05 06:48:14,22.495421006944444,113.9242662217882
252 | 2017-03-05 06:48:17,22.495498860677085,113.92426920572916
253 | 2017-03-05 06:48:20,22.495562608506944,113.92427761501736
254 | 2017-03-05 06:48:23,22.495630967881944,113.92428846571181
255 | 2017-03-05 06:48:26,22.495704481336805,113.92429578993055
256 | 2017-03-05 06:48:29,22.495766059027776,113.92428385416666
257 | 2017-03-05 06:48:32,22.495845269097224,113.92425564236112
258 | 2017-03-05 06:48:35,22.495916341145833,113.92419379340278
259 | 2017-03-05 06:48:38,22.495973578559028,113.92414876302084
260 | 2017-03-05 06:48:41,22.496021592881945,113.92409912109375
261 | 2017-03-05 06:48:44,22.49606635199653,113.92401150173612
262 | 2017-03-05 06:48:47,22.4961083984375,113.92396565755209
263 | 2017-03-05 06:48:50,22.49612738715278,113.92387885199653
264 | 2017-03-05 06:48:53,22.496137424045138,113.92380832248264
265 | 2017-03-05 06:48:56,22.496117892795137,113.92370496961806
266 | 2017-03-05 06:48:59,22.496097547743055,113.92363199869791
267 | 2017-03-05 06:49:02,22.49607150607639,113.92355061848959
268 | 2017-03-05 06:49:05,22.496041666666667,113.92350314670139
269 | 2017-03-05 06:49:08,22.49601047092014,113.92346950954861
270 | 2017-03-05 06:49:11,22.495952962239585,113.92342963324653
271 | 2017-03-05 06:49:14,22.49589545355903,113.92338406032987
272 | 2017-03-05 06:49:17,22.495825466579863,113.92337049696181
273 | 2017-03-05 06:49:20,22.495771213107638,113.92336778428819
274 | 2017-03-05 06:49:23,22.495710177951388,113.92335774739583
275 | 2017-03-05 06:49:26,22.49563449435764,113.92334526909723
276 | 2017-03-05 06:49:29,22.495537923177082,113.9233224826389
277 | 2017-03-05 06:49:32,22.49545708550347,113.92330810546875
278 | 2017-03-05 06:49:35,22.495372992621526,113.92329888237848
279 | 2017-03-05 06:49:38,22.49531277126736,113.92329671223958
280 | 2017-03-05 06:49:41,22.495199381510417,113.92329996744792
281 | 2017-03-05 06:49:44,22.49514377170139,113.92328694661458
282 | 2017-03-05 06:49:47,22.495069715711807,113.92326605902778
283 | 2017-03-05 06:49:50,22.495001085069443,113.9232701280382
284 | 2017-03-05 06:49:53,22.494959581163194,113.92325927734375
285 | 2017-03-05 06:49:56,22.494896104600695,113.92326388888888
286 | 2017-03-05 06:49:59,22.494832899305557,113.9232931857639
287 | 2017-03-05 06:50:02,22.494736328125,113.9233517795139
288 | 2017-03-05 06:50:05,22.494666069878473,113.9233837890625
289 | 2017-03-05 06:50:08,22.49463406032986,113.92343180338541
290 | 2017-03-05 06:50:11,22.494578721788194,113.92352511935763
291 | 2017-03-05 06:50:14,22.494558376736112,113.92360460069445
292 | 2017-03-05 06:50:17,22.494549153645835,113.92367540147569
293 | 2017-03-05 06:50:20,22.494550509982638,113.92375461154514
294 | 2017-03-05 06:50:23,22.494550509982638,113.92383897569445
295 | 2017-03-05 06:50:26,22.494585774739583,113.92390842013889
296 | 2017-03-05 06:50:29,22.494610188802085,113.92394911024306
297 | 2017-03-05 06:50:32,22.49464789496528,113.92399197048611
298 | 2017-03-05 06:50:35,22.494683973524307,113.92405571831597
299 | 2017-03-05 06:50:38,22.49476318359375,113.92411214192708
300 | 2017-03-05 06:50:41,22.49481119791667,113.92413818359375
301 | 2017-03-05 06:50:44,22.49487982855903,113.92416476779513
302 | 2017-03-05 06:50:47,22.49496066623264,113.92416476779513
303 | 2017-03-05 06:50:50,22.495028211805554,113.92419189453125
304 | 2017-03-05 06:50:53,22.495113661024305,113.92420681423611
305 | 2017-03-05 06:50:56,22.49518337673611,113.92421413845486
306 | 2017-03-05 06:50:59,22.4952392578125,113.92423366970486
307 | 2017-03-05 06:51:02,22.49532660590278,113.92424153645834
308 | 2017-03-05 06:51:05,22.49540066189236,113.92423583984375
309 | 2017-03-05 06:51:08,22.495480685763887,113.92426052517361
310 | 2017-03-05 06:51:11,22.495577528211804,113.92428331163194
311 | 2017-03-05 06:51:14,22.495641004774306,113.92428466796875
312 | 2017-03-05 06:51:17,22.495715874565974,113.92429009331597
313 | 2017-03-05 06:51:20,22.495798611111113,113.92428059895833
314 | 2017-03-05 06:51:23,22.49588894314236,113.92424479166667
315 | 2017-03-05 06:51:26,22.495974392361113,113.92419569227431
316 | 2017-03-05 06:51:29,22.49604031032986,113.92413791232639
317 | 2017-03-05 06:51:32,22.496091037326387,113.9240576171875
318 | 2017-03-05 06:51:35,22.496122504340278,113.92397705078125
319 | 2017-03-05 06:51:38,22.4961474609375,113.92389431423611
320 | 2017-03-05 06:51:41,22.49614040798611,113.92379692925347
321 | 2017-03-05 06:51:44,22.496131727430555,113.92369683159723
322 | 2017-03-05 06:51:47,22.49608669704861,113.92360026041666
323 | 2017-03-05 06:51:50,22.496026746961807,113.92350721571181
324 | 2017-03-05 06:51:53,22.495951063368057,113.92344211154514
325 | 2017-03-05 06:51:56,22.495891927083335,113.9234033203125
326 | 2017-03-05 06:51:59,22.49584201388889,113.92339029947917
327 | 2017-03-05 06:52:02,22.495763346354167,113.92338080512152
328 | 2017-03-05 06:52:05,22.495638292100693,113.92337429470486
329 | 2017-03-05 06:52:08,22.495528700086805,113.92336046006945
330 | 2017-03-05 06:52:11,22.495398491753473,113.92331949869792
331 | 2017-03-05 06:52:14,22.495313585069443,113.92331841362848
332 | 2017-03-05 06:52:17,22.495208604600695,113.92330485026042
333 | 2017-03-05 06:52:20,22.495104437934028,113.92328640407986
334 | 2017-03-05 06:52:23,22.49502251519097,113.92326416015625
335 | 2017-03-05 06:52:26,22.494918348524305,113.923251953125
336 | 2017-03-05 06:52:29,22.494818522135418,113.92328097873263
337 | 2017-03-05 06:52:32,22.494716796875,113.92333848741319
338 | 2017-03-05 06:52:35,22.49465576171875,113.92334581163195
339 | 2017-03-05 06:52:38,22.494623480902778,113.92338243272569
340 | 2017-03-05 06:52:41,22.4945751953125,113.92347601996528
341 | 2017-03-05 06:52:44,22.494550509982638,113.92355224609375
342 | 2017-03-05 06:52:47,22.494524739583333,113.92365451388889
343 | 2017-03-05 06:52:50,22.49450439453125,113.92374077690972
344 | 2017-03-05 06:52:53,22.494532335069444,113.9238037109375
345 | 2017-03-05 06:52:56,22.4945458984375,113.92388726128472
346 | 2017-03-05 06:52:59,22.494585232204862,113.92393147786458
347 | 2017-03-05 06:53:02,22.49462646484375,113.92396538628472
348 | 2017-03-05 06:53:05,22.49465115017361,113.92402072482639
349 | 2017-03-05 06:53:08,22.494729817708333,113.92410590277778
350 | 2017-03-05 06:53:11,22.494774848090277,113.92412950303819
351 | 2017-03-05 06:53:14,22.494814181857638,113.92418104383681
352 | 2017-03-05 06:53:17,22.494835611979166,113.92417588975694
353 | 2017-03-05 06:53:20,22.494890679253473,113.92419677734375
354 | 2017-03-05 06:53:23,22.49492621527778,113.92420518663195
355 | 2017-03-05 06:53:26,22.494942762586806,113.92420952690972
356 | 2017-03-05 06:53:29,22.494992404513887,113.92420817057291
357 | 2017-03-05 06:53:32,22.49503173828125,113.92422688802084
358 | 2017-03-05 06:53:35,22.495069715711807,113.9242271592882
359 | 2017-03-05 06:53:38,22.495130750868057,113.92421902126736
360 | 2017-03-05 06:53:41,22.495180392795138,113.92421359592014
361 | 2017-03-05 06:53:44,22.495232747395832,113.92421875
362 | 2017-03-05 06:53:47,22.495262858072916,113.92421305338542
363 | 2017-03-05 06:53:50,22.49531928168403,113.9242173936632
364 | 2017-03-05 06:53:53,22.49536838107639,113.9242333984375
365 | 2017-03-05 06:53:56,22.495405002170138,113.9242494032118
366 | 2017-03-05 06:53:59,22.49544921875,113.92425401475694
367 | 2017-03-05 06:54:02,22.49550537109375,113.92427571614583
368 | 2017-03-05 06:54:05,22.495533040364585,113.92429443359374
369 | 2017-03-05 06:54:08,22.495550130208333,113.92427707248264
370 | 2017-03-05 06:54:11,22.4955810546875,113.92428629557291
371 | 2017-03-05 06:54:14,22.495621744791666,113.92429226345486
372 | 2017-03-05 06:54:17,22.495661078559028,113.92427924262152
373 | 2017-03-05 06:54:20,22.495712890625,113.92428900824653
374 | 2017-03-05 06:54:23,22.49571967230903,113.92430419921875
375 | 2017-03-05 06:54:26,22.495758463541666,113.92431450737847
376 | 2017-03-05 06:54:29,22.495784233940974,113.92430040147569
377 | 2017-03-05 06:54:32,22.495828721788193,113.92428304036459
378 | 2017-03-05 06:54:35,22.495867784288194,113.92426025390625
379 | 2017-03-05 06:54:38,22.495920138888888,113.92423556857639
380 | 2017-03-05 06:54:41,22.495984429253472,113.92418484157986
381 | 2017-03-05 06:54:44,22.496017252604165,113.92413492838541
382 | 2017-03-05 06:54:47,22.496036783854166,113.9241126844618
383 | 2017-03-05 06:54:50,22.49607367621528,113.92407307942709
384 | 2017-03-05 06:54:53,22.496100260416668,113.92402859157986
385 | 2017-03-05 06:54:56,22.496126302083333,113.92398356119791
386 | 2017-03-05 06:54:59,22.496146104600694,113.92395263671875
387 | 2017-03-05 06:55:02,22.496156141493056,113.92391764322916
388 | 2017-03-05 06:55:05,22.496156141493056,113.92387234157987
389 | 2017-03-05 06:55:08,22.49615397135417,113.92383816189236
390 | 2017-03-05 06:55:11,22.496148817274307,113.92377332899305
391 | 2017-03-05 06:55:14,22.496137966579862,113.92374565972223
392 | 2017-03-05 06:55:17,22.496130913628473,113.92369791666667
393 | 2017-03-05 06:55:20,22.496118706597223,113.92365532769097
394 | 2017-03-05 06:55:23,22.49607883029514,113.92361518012153
395 | 2017-03-05 06:55:26,22.496055501302084,113.9235666232639
396 | 2017-03-05 06:55:29,22.496041666666667,113.92353569878472
397 | 2017-03-05 06:55:32,22.496026204427082,113.92352159288194
398 | 2017-03-05 06:55:35,22.496009114583334,113.92350287543402
399 | 2017-03-05 06:55:38,22.49597900390625,113.92346082899306
400 | 2017-03-05 06:55:41,22.49588840060764,113.9234130859375
401 | 2017-03-05 06:55:44,22.49590549045139,113.92340711805555
402 | 2017-03-05 06:55:47,22.495880262586805,113.92340115017362
403 | 2017-03-05 06:55:50,22.495811089409724,113.92338514539931
404 | 2017-03-05 06:55:53,22.495775010850693,113.92337375217014
405 | 2017-03-05 06:55:56,22.495745171440973,113.92335964626736
406 | 2017-03-05 06:55:59,22.495709364149306,113.92335883246528
407 | 2017-03-05 06:56:02,22.49567165798611,113.92335340711806
408 | 2017-03-05 06:56:05,22.495626085069443,113.92336941189237
409 | 2017-03-05 06:56:08,22.495560438368056,113.9233580186632
410 | 2017-03-05 06:56:11,22.495514594184026,113.923349609375
411 | 2017-03-05 06:56:14,22.495457899305556,113.9233203125
412 | 2017-03-05 06:56:17,22.49543728298611,113.92331434461805
413 | 2017-03-05 06:56:20,22.495423448350696,113.92330647786459
414 | 2017-03-05 06:56:23,22.49536919487847,113.92328070746528
415 | 2017-03-05 06:56:26,22.49532009548611,113.92327528211806
416 | 2017-03-05 06:56:29,22.495272081163193,113.92326958550348
417 | 2017-03-05 06:56:32,22.49522216796875,113.92325276692708
418 | 2017-03-05 06:56:35,22.495189073350694,113.92325792100695
419 | 2017-03-05 06:56:38,22.495157335069443,113.92327039930555
420 | 2017-03-05 06:56:41,22.49513129340278,113.92326253255209
421 | 2017-03-05 06:56:44,22.495060492621526,113.92325385199653
422 | 2017-03-05 06:56:47,22.495038519965277,113.92324001736111
423 | 2017-03-05 06:56:50,22.495020616319444,113.92318305121528
424 | 2017-03-05 06:56:53,22.495013834635415,113.92318413628472
425 | 2017-03-05 06:56:56,22.494957953559027,113.92321207682292
426 | 2017-03-05 06:56:59,22.494924858940973,113.9232150607639
427 | 2017-03-05 06:57:02,22.494867078993057,113.92322157118056
428 | 2017-03-05 06:57:05,22.494828830295138,113.92325927734375
429 | 2017-03-05 06:57:08,22.494775933159723,113.9232847764757
430 | 2017-03-05 06:57:11,22.494749891493054,113.92328559027777
431 | 2017-03-05 06:57:14,22.494705674913195,113.92334038628472
432 | 2017-03-05 06:57:17,22.494672580295138,113.92337727864583
433 | 2017-03-05 06:57:20,22.494640299479165,113.92340467664931
434 | 2017-03-05 06:57:23,22.494615614149307,113.92343397352431
435 | 2017-03-05 06:57:26,22.494610188802085,113.92345947265625
436 | 2017-03-05 06:57:29,22.494584418402777,113.92351589626736
437 | 2017-03-05 06:57:32,22.494584418402777,113.92354600694445
438 | 2017-03-05 06:57:35,22.494578450520834,113.92355495876735
439 | 2017-03-05 06:57:38,22.494568956163196,113.92363389756945
440 | 2017-03-05 06:57:41,22.494549424913195,113.92362331814236
441 | 2017-03-05 06:57:44,22.494537760416666,113.92370768229166
442 | 2017-03-05 06:57:47,22.49453369140625,113.92375515407986
443 | 2017-03-05 06:57:50,22.494531792534723,113.92376763237847
444 | 2017-03-05 06:57:53,22.494544270833334,113.92379937065972
445 | 2017-03-05 06:57:56,22.494531792534723,113.92385064019098
446 | 2017-03-05 06:57:59,22.494551866319444,113.92390190972222
447 | 2017-03-05 06:58:02,22.494598795572916,113.92399739583334
448 | 2017-03-05 06:58:05,22.494640028211805,113.92403374565973
449 | 2017-03-05 06:58:08,22.49468234592014,113.92405463324653
450 | 2017-03-05 06:58:11,22.49471625434028,113.92407416449653
451 | 2017-03-05 06:58:14,22.494739312065974,113.92410617404514
452 | 2017-03-05 06:58:17,22.494759385850696,113.92411349826389
453 | 2017-03-05 06:58:20,22.49480685763889,113.92415147569444
454 | 2017-03-05 06:58:23,22.494835340711806,113.92417100694445
455 | 2017-03-05 06:58:26,22.494867350260417,113.92418294270833
456 | 2017-03-05 06:58:29,22.49490966796875,113.92419135199653
457 | 2017-03-05 06:58:32,22.49492621527778,113.92418972439236
458 | 2017-03-05 06:58:35,22.494954427083332,113.92419840494792
459 | 2017-03-05 06:58:38,22.494978298611112,113.92418999565972
460 | 2017-03-05 06:58:41,22.495008138020832,113.92420166015626
461 | 2017-03-05 06:58:44,22.49505099826389,113.92420301649305
462 | 2017-03-05 06:58:47,22.495116102430554,113.92422119140625
463 | 2017-03-05 06:58:50,22.495177137586804,113.92423421223958
464 | 2017-03-05 06:58:53,22.495214572482638,113.92423394097223
465 | 2017-03-05 06:58:56,22.49526557074653,113.92422824435764
466 | 2017-03-05 06:58:59,22.495286729600693,113.92423095703126
467 | 2017-03-05 06:59:02,22.495311957465276,113.92424696180555
468 | 2017-03-05 06:59:05,22.49535888671875,113.92426106770833
469 | 2017-03-05 06:59:08,22.49542182074653,113.9242808702257
470 | 2017-03-05 06:59:11,22.495452473958334,113.92428385416666
471 | 2017-03-05 06:59:14,22.495494791666665,113.92429578993055
472 | 2017-03-05 06:59:17,22.49554470486111,113.92428493923612
473 | 2017-03-05 06:59:20,22.495608181423613,113.92428412543403
474 | 2017-03-05 06:59:23,22.49564480251736,113.92429172092014
475 | 2017-03-05 06:59:26,22.49567138671875,113.92428249782986
476 | 2017-03-05 06:59:29,22.495736490885417,113.92428276909722
477 | 2017-03-05 06:59:32,22.49577338324653,113.92428548177084
478 | 2017-03-05 06:59:35,22.495799153645834,113.92429253472223
479 | 2017-03-05 06:59:38,22.495819498697916,113.92428900824653
480 | 2017-03-05 06:59:41,22.495836317274307,113.92428955078125
481 | 2017-03-05 06:59:44,22.49588433159722,113.92427571614583
482 | 2017-03-05 06:59:47,22.495922037760415,113.92425944010417
483 | 2017-03-05 06:59:50,22.49595703125,113.92422281901041
484 | 2017-03-05 06:59:53,22.495983072916665,113.92420979817709
485 | 2017-03-05 06:59:56,22.49600531684028,113.92419135199653
486 | 2017-03-05 06:59:59,22.49606743706597,113.92410861545139
487 | 2017-03-05 07:00:02,22.496092664930554,113.9240513780382
488 | 2017-03-05 07:00:05,22.49611545138889,113.92401584201389
489 | 2017-03-05 07:00:08,22.496130099826388,113.92397759331597
490 | 2017-03-05 07:00:11,22.496146104600694,113.92390842013889
491 | 2017-03-05 07:00:14,22.496146375868054,113.9238804796007
492 | 2017-03-05 07:00:17,22.496143391927085,113.92382921006944
493 | 2017-03-05 07:00:20,22.4961376953125,113.92378228081597
494 | 2017-03-05 07:00:23,22.496138780381944,113.92376519097222
495 | 2017-03-05 07:00:26,22.496136067708335,113.92373019748264
496 | 2017-03-05 07:00:29,22.49612087673611,113.9236949327257
497 | 2017-03-05 07:00:32,22.49608913845486,113.92363226996528
498 | 2017-03-05 07:00:35,22.496063910590276,113.92357584635417
499 | 2017-03-05 07:00:38,22.49603298611111,113.92351915147569
500 | 2017-03-05 07:00:41,22.49601345486111,113.92349555121528
501 | 2017-03-05 07:00:44,22.4959814453125,113.92349636501736
502 | 2017-03-05 07:00:47,22.495982259114584,113.9234765625
503 | 2017-03-05 07:00:50,22.495909288194444,113.9234375
504 | 2017-03-05 07:00:53,22.495874565972223,113.92340928819445
505 | 2017-03-05 07:00:56,22.49580756293403,113.92338460286459
506 | 2017-03-05 07:00:59,22.49578070746528,113.92336697048611
507 | 2017-03-05 07:01:02,22.495752495659723,113.92336615668403
508 | 2017-03-05 07:01:05,22.495737847222223,113.92336507161458
509 | 2017-03-05 07:01:08,22.495702039930556,113.92335611979166
510 | 2017-03-05 07:01:11,22.495660536024307,113.9233482530382
511 | 2017-03-05 07:01:14,22.49561984592014,113.92333251953124
512 | 2017-03-05 07:01:17,22.49559841579861,113.92332302517362
513 | 2017-03-05 07:01:20,22.495542534722222,113.92330539279514
514 | 2017-03-05 07:01:23,22.4955029296875,113.92330919053819
515 | 2017-03-05 07:01:26,22.49545654296875,113.92330729166666
516 | 2017-03-05 07:01:29,22.49537326388889,113.9233167860243
517 | 2017-03-05 07:01:32,22.49533935546875,113.92329264322916
518 | 2017-03-05 07:01:35,22.495306532118054,113.92328694661458
519 | 2017-03-05 07:01:38,22.49527804904514,113.92327935112847
520 | 2017-03-05 07:01:41,22.49526638454861,113.92328450520833
521 | 2017-03-05 07:01:44,22.495236545138887,113.92327473958333
522 | 2017-03-05 07:01:47,22.49518527560764,113.92326958550348
523 | 2017-03-05 07:01:50,22.495135904947915,113.92326334635416
524 | 2017-03-05 07:01:53,22.495072970920138,113.92325629340277
525 | 2017-03-05 07:01:56,22.495023328993057,113.92325032552084
526 | 2017-03-05 07:01:59,22.49496826171875,113.92324517144097
527 | 2017-03-05 07:02:02,22.494909396701388,113.92324164496527
528 | 2017-03-05 07:02:05,22.494861924913195,113.92324137369792
529 | 2017-03-05 07:02:08,22.4948681640625,113.92325303819445
530 | 2017-03-05 07:02:11,22.49485107421875,113.92325900607639
531 | 2017-03-05 07:02:14,22.494808485243055,113.92328667534723
532 | 2017-03-05 07:02:17,22.494788953993055,113.92329237196181
533 | 2017-03-05 07:02:20,22.494723307291668,113.92332329644097
534 | 2017-03-05 07:02:23,22.494679090711806,113.92335150824653
535 | 2017-03-05 07:02:26,22.494625379774305,113.92339518229167
536 | 2017-03-05 07:02:29,22.494618326822916,113.92342393663195
537 | 2017-03-05 07:02:32,22.49460286458333,113.923466796875
538 | 2017-03-05 07:02:35,22.494573567708333,113.92350396050347
539 | 2017-03-05 07:02:38,22.494563530815974,113.92352322048612
540 | 2017-03-05 07:02:41,22.494566243489583,113.92355224609375
541 | 2017-03-05 07:02:44,22.49453396267361,113.92359673394097
542 | 2017-03-05 07:02:47,22.494557291666666,113.92366048177084
543 | 2017-03-05 07:02:50,22.49454074435764,113.9236865234375
544 | 2017-03-05 07:02:53,22.49453396267361,113.9237242296007
545 | 2017-03-05 07:02:56,22.494532606336804,113.92376681857638
546 | 2017-03-05 07:02:59,22.49453369140625,113.92381591796875
547 | 2017-03-05 07:03:02,22.494534776475696,113.92384819878473
548 | 2017-03-05 07:03:05,22.49454182942708,113.92387586805556
549 | 2017-03-05 07:03:08,22.494543999565973,113.92390950520833
550 | 2017-03-05 07:03:11,22.494556477864585,113.92393663194444
551 | 2017-03-05 07:03:14,22.494577907986113,113.92399034288195
552 | 2017-03-05 07:03:17,22.49458794487847,113.92402153862847
553 | 2017-03-05 07:03:20,22.494603678385417,113.92405815972222
554 | 2017-03-05 07:03:23,22.49461697048611,113.92407986111111
555 | 2017-03-05 07:03:26,22.494661729600693,113.92412136501736
556 | 2017-03-05 07:03:29,22.49473198784722,113.92418267144097
557 | 2017-03-05 07:03:32,22.49478461371528,113.9241623263889
558 | 2017-03-05 07:03:35,22.49484157986111,113.9241761610243
559 | 2017-03-05 07:03:38,22.494895833333334,113.92419650607638
560 | 2017-03-05 07:03:41,22.4949365234375,113.92420600043403
561 | 2017-03-05 07:03:44,22.49499430338542,113.9242152235243
562 | 2017-03-05 07:03:47,22.495064290364585,113.92420979817709
563 | 2017-03-05 07:03:50,22.495092230902777,113.9242125108507
564 | 2017-03-05 07:03:53,22.495128851996526,113.92421549479167
565 | 2017-03-05 07:03:56,22.495165201822918,113.9242138671875
566 | 2017-03-05 07:03:59,22.49520263671875,113.9242173936632
567 | 2017-03-05 07:04:02,22.4952490234375,113.92422281901041
568 | 2017-03-05 07:04:05,22.49525390625,113.9242209201389
569 | 2017-03-05 07:04:08,22.495299207899304,113.92422200520834
570 | 2017-03-05 07:04:11,22.49534939236111,113.92423041449653
571 | 2017-03-05 07:04:14,22.495378689236112,113.924228515625
572 | 2017-03-05 07:04:17,22.49542290581597,113.92424886067708
573 | 2017-03-05 07:04:20,22.495440266927083,113.9242640516493
574 | 2017-03-05 07:04:23,22.495465223524306,113.92425889756944
575 | 2017-03-05 07:04:26,22.495547417534723,113.92426567925347
576 | 2017-03-05 07:04:29,22.495538465711807,113.92429714626736
577 | 2017-03-05 07:04:32,22.495565863715278,113.92431070963542
578 | 2017-03-05 07:04:35,22.495624186197915,113.92432590060764
579 | 2017-03-05 07:04:38,22.495683051215277,113.92432074652778
580 | 2017-03-05 07:04:41,22.495704752604166,113.92432291666667
581 | 2017-03-05 07:04:44,22.49572781032986,113.92432590060764
582 | 2017-03-05 07:04:47,22.49574951171875,113.92431315104167
583 | 2017-03-05 07:04:50,22.495785590277777,113.92431423611112
584 | 2017-03-05 07:04:53,22.495833875868055,113.92429768880208
585 | 2017-03-05 07:04:56,22.49587619357639,113.92427490234375
586 | 2017-03-05 07:04:59,22.49592583550347,113.92425130208333
587 | 2017-03-05 07:05:02,22.495966796875,113.92421875
588 | 2017-03-05 07:05:05,22.49599609375,113.92420166015626
589 | 2017-03-05 07:05:08,22.496043023003473,113.92416042751736
590 | 2017-03-05 07:05:11,22.496057400173612,113.92412136501736
591 | 2017-03-05 07:05:14,22.496088324652778,113.92408447265625
592 | 2017-03-05 07:05:17,22.49610866970486,113.92404215494791
593 | 2017-03-05 07:05:20,22.496114908854167,113.92399848090278
594 | 2017-03-05 07:05:23,22.49614284939236,113.92398193359375
595 | 2017-03-05 07:05:26,22.496151801215277,113.92391086154514
596 | 2017-03-05 07:05:29,22.49616156684028,113.92387017144097
597 | 2017-03-05 07:05:32,22.49616970486111,113.92381863064236
598 | 2017-03-05 07:05:35,22.496157769097223,113.92378689236111
599 | 2017-03-05 07:05:38,22.4961572265625,113.92373101128472
600 | 2017-03-05 07:05:41,22.49614040798611,113.9237109375
601 | 2017-03-05 07:05:44,22.49614013671875,113.92368326822917
602 | 2017-03-05 07:05:47,22.496123046875,113.92364963107639
603 | 2017-03-05 07:05:50,22.4961083984375,113.92361138237847
604 | 2017-03-05 07:05:53,22.496060384114582,113.92354193793403
605 | 2017-03-05 07:05:56,22.496057942708333,113.92351019965278
606 | 2017-03-05 07:05:59,22.496015353732638,113.92350016276042
607 | 2017-03-05 07:06:02,22.495981174045138,113.92346028645834
608 | 2017-03-05 07:06:05,22.49594536675347,113.92344021267361
609 | 2017-03-05 07:06:08,22.495919053819446,113.923388671875
610 | 2017-03-05 07:06:11,22.495867784288194,113.92335584852431
611 | 2017-03-05 07:06:14,22.495816786024307,113.92335205078125
612 | 2017-03-05 07:06:17,22.495767415364583,113.92336208767361
613 | 2017-03-05 07:06:20,22.495752224392362,113.92334662543402
614 | 2017-03-05 07:06:23,22.49571343315972,113.9233425564236
615 | 2017-03-05 07:06:26,22.495676540798613,113.92334065755209
616 | 2017-03-05 07:06:29,22.49562717013889,113.92333062065973
617 | 2017-03-05 07:06:32,22.49557834201389,113.92332492404513
618 | 2017-03-05 07:06:35,22.495545789930556,113.92335856119792
619 | 2017-03-05 07:06:38,22.49549750434028,113.9233865017361
620 | 2017-03-05 07:06:41,22.49544162326389,113.92338297526042
621 | 2017-03-05 07:06:44,22.495406629774305,113.92336941189237
622 | 2017-03-05 07:06:47,22.495345865885415,113.92334852430555
623 | 2017-03-05 07:06:50,22.49530056423611,113.92332682291666
624 | 2017-03-05 07:06:53,22.495260145399307,113.92332899305555
625 | 2017-03-05 07:06:56,22.49520751953125,113.92332194010417
626 | 2017-03-05 07:06:59,22.495174967447916,113.92331271701389
627 | 2017-03-05 07:07:02,22.495128580729165,113.9233349609375
628 | 2017-03-05 07:07:05,22.495096842447918,113.9233314344618
629 | 2017-03-05 07:07:08,22.495059407552084,113.92329806857639
630 | 2017-03-05 07:07:11,22.495011121961806,113.92327419704861
631 | 2017-03-05 07:07:14,22.49497585720486,113.9232568359375
632 | 2017-03-05 07:07:17,22.494908311631946,113.92326144748264
633 | 2017-03-05 07:07:20,22.494854871961806,113.92326361762153
634 | 2017-03-05 07:07:23,22.494820421006946,113.92326958550348
635 | 2017-03-05 07:07:26,22.494790852864583,113.92329047309028
636 | 2017-03-05 07:07:29,22.494740397135416,113.92332112630208
637 | 2017-03-05 07:07:32,22.494695366753472,113.92336995442709
638 | 2017-03-05 07:07:35,22.494686686197916,113.92338324652778
639 | 2017-03-05 07:07:38,22.494649522569443,113.9234228515625
640 | 2017-03-05 07:07:41,22.494637586805556,113.92344970703125
641 | 2017-03-05 07:07:44,22.494603407118056,113.92350260416667
642 | 2017-03-05 07:07:47,22.49459988064236,113.92353949652778
643 | 2017-03-05 07:07:50,22.49458767361111,113.9235804578993
644 | 2017-03-05 07:07:53,22.494586046006944,113.92363118489584
645 | 2017-03-05 07:07:56,22.49458279079861,113.92366075303819
646 | 2017-03-05 07:07:59,22.494591200086806,113.92371310763889
647 | 2017-03-05 07:08:02,22.49459716796875,113.92374728732639
648 | 2017-03-05 07:08:05,22.49460910373264,113.92380045572916
649 | 2017-03-05 07:08:08,22.49459988064236,113.92383707682292
650 | 2017-03-05 07:08:11,22.494654134114583,113.9239564344618
651 | 2017-03-05 07:08:14,22.49469672309028,113.9239759657118
652 | 2017-03-05 07:08:17,22.49469699435764,113.92401611328125
653 | 2017-03-05 07:08:20,22.49471706814236,113.9240283203125
654 | 2017-03-05 07:08:23,22.4947412109375,113.92406412760417
655 | 2017-03-05 07:08:26,22.49477322048611,113.92408610026041
656 | 2017-03-05 07:08:29,22.494827745225695,113.92410970052083
657 | 2017-03-05 07:08:32,22.494882269965277,113.92412516276042
658 | 2017-03-05 07:08:35,22.4949365234375,113.92415337456598
659 | 2017-03-05 07:08:38,22.494991048177084,113.92417833116319
660 | 2017-03-05 07:08:41,22.495060492621526,113.9241685655382
661 | 2017-03-05 07:08:44,22.495113932291666,113.92416829427083
662 | 2017-03-05 07:08:47,22.49515218098958,113.92417534722222
663 | 2017-03-05 07:08:50,22.49518283420139,113.92417860243056
664 | 2017-03-05 07:08:53,22.49521321614583,113.92418429904514
665 | 2017-03-05 07:08:56,22.495277506510416,113.92419216579862
666 | 2017-03-05 07:08:59,22.495321180555557,113.92418185763889
667 | 2017-03-05 07:09:02,22.49536838107639,113.92420383029514
668 | 2017-03-05 07:09:05,22.49538357204861,113.92420572916667
669 | 2017-03-05 07:09:08,22.495421006944444,113.92421793619792
670 | 2017-03-05 07:09:11,22.495465494791667,113.924228515625
671 | 2017-03-05 07:09:14,22.49549533420139,113.92423258463542
672 | 2017-03-05 07:09:17,22.49552951388889,113.92423529730902
673 | 2017-03-05 07:09:20,22.495558268229168,113.92423692491319
674 | 2017-03-05 07:09:23,22.495601128472224,113.9242529296875
675 | 2017-03-05 07:09:26,22.495642632378473,113.92425564236112
676 | 2017-03-05 07:09:29,22.495657823350694,113.92425754123263
677 | 2017-03-05 07:09:32,22.495729709201388,113.92426839192709
678 | 2017-03-05 07:09:35,22.49578152126736,113.92427544487848
679 | 2017-03-05 07:09:38,22.49583441840278,113.92426595052083
680 | 2017-03-05 07:09:41,22.495882432725693,113.92426161024305
681 | 2017-03-05 07:09:44,22.495906575520834,113.92425726996528
682 | 2017-03-05 07:09:47,22.495928548177083,113.9242409939236
683 | 2017-03-05 07:09:50,22.495958930121528,113.92421983506945
684 | 2017-03-05 07:09:53,22.49596435546875,113.92417290581598
685 | 2017-03-05 07:09:56,22.496012098524307,113.92412516276042
686 | 2017-03-05 07:09:59,22.49603515625,113.92406222873264
687 | 2017-03-05 07:10:02,22.496061469184028,113.92403347439236
688 | 2017-03-05 07:10:05,22.49608913845486,113.92394558376736
689 | 2017-03-05 07:10:08,22.496096462673613,113.92389811197917
690 | 2017-03-05 07:10:11,22.496107042100693,113.92385226779514
691 | 2017-03-05 07:10:14,22.496116265190974,113.92381456163194
692 | 2017-03-05 07:10:17,22.496118706597223,113.92378038194444
693 | 2017-03-05 07:10:20,22.496114637586807,113.9237464735243
694 | 2017-03-05 07:10:23,22.496103515625,113.92371826171875
695 | 2017-03-05 07:10:26,22.496080186631943,113.92367133246528
696 | 2017-03-05 07:10:29,22.49607150607639,113.92364637586806
697 | 2017-03-05 07:10:32,22.49601806640625,113.92356011284723
698 | 2017-03-05 07:10:35,22.49599392361111,113.92352728949653
699 | 2017-03-05 07:10:38,22.495916883680554,113.92344943576389
700 | 2017-03-05 07:10:41,22.495900336371527,113.92345404730902
701 | 2017-03-05 07:10:44,22.495861273871526,113.92343939887152
702 | 2017-03-05 07:10:47,22.49581759982639,113.92341227213542
703 | 2017-03-05 07:10:50,22.49578369140625,113.92339192708333
704 | 2017-03-05 07:10:53,22.495752766927083,113.92338406032987
705 | 2017-03-05 07:10:56,22.495722113715278,113.92337239583334
706 | 2017-03-05 07:10:59,22.49570014105903,113.92337592230903
707 | 2017-03-05 07:11:02,22.495635579427084,113.92336859809028
708 | 2017-03-05 07:11:05,22.495569390190973,113.92335422092015
709 | 2017-03-05 07:11:08,22.495536024305554,113.92334201388888
710 | 2017-03-05 07:11:11,22.49548583984375,113.92333984375
711 |
--------------------------------------------------------------------------------
/iOS-path-smooth/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // iOS-path-smooth
4 | //
5 | // Created by shaobin on 2017/10/12.
6 | // Copyright © 2017年 autonavi. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/iOS-path-smooth/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // iOS-path-smooth
4 | //
5 | // Created by shaobin on 2017/10/12.
6 | // Copyright © 2017年 autonavi. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 |
11 | @interface AppDelegate ()
12 |
13 | @end
14 |
15 | @implementation AppDelegate
16 |
17 |
18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
19 | // Override point for customization after application launch.
20 | return YES;
21 | }
22 |
23 |
24 | - (void)applicationWillResignActive:(UIApplication *)application {
25 | // 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.
26 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
27 | }
28 |
29 |
30 | - (void)applicationDidEnterBackground:(UIApplication *)application {
31 | // 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.
32 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
33 | }
34 |
35 |
36 | - (void)applicationWillEnterForeground:(UIApplication *)application {
37 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
38 | }
39 |
40 |
41 | - (void)applicationDidBecomeActive:(UIApplication *)application {
42 | // 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.
43 | }
44 |
45 |
46 | - (void)applicationWillTerminate:(UIApplication *)application {
47 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
48 | }
49 |
50 |
51 | @end
52 |
--------------------------------------------------------------------------------
/iOS-path-smooth/Assets.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" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "ipad",
35 | "size" : "29x29",
36 | "scale" : "1x"
37 | },
38 | {
39 | "idiom" : "ipad",
40 | "size" : "29x29",
41 | "scale" : "2x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "40x40",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "40x40",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "76x76",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "76x76",
61 | "scale" : "2x"
62 | }
63 | ],
64 | "info" : {
65 | "version" : 1,
66 | "author" : "xcode"
67 | }
68 | }
--------------------------------------------------------------------------------
/iOS-path-smooth/Base.lproj/LaunchScreen.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 |
28 |
--------------------------------------------------------------------------------
/iOS-path-smooth/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 |
--------------------------------------------------------------------------------
/iOS-path-smooth/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | UILaunchStoryboardName
24 | LaunchScreen
25 | UIMainStoryboardFile
26 | Main
27 | UIRequiredDeviceCapabilities
28 |
29 | armv7
30 |
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 | UISupportedInterfaceOrientations~ipad
38 |
39 | UIInterfaceOrientationPortrait
40 | UIInterfaceOrientationPortraitUpsideDown
41 | UIInterfaceOrientationLandscapeLeft
42 | UIInterfaceOrientationLandscapeRight
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/iOS-path-smooth/MASmoothPathTool.h:
--------------------------------------------------------------------------------
1 | //
2 | // MASmoothPathTool.h
3 | // iOS-path-smooth
4 | //
5 | // Created by shaobin on 2017/10/12.
6 | // Copyright © 2017年 autonavi. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MALonLatPoint : NSObject
12 | @property (nonatomic, assign) double lat;
13 | @property (nonatomic, assign) double lon;
14 | @end
15 |
16 | @interface MASmoothPathTool : NSObject
17 |
18 | @property (nonatomic, assign) int intensity;
19 | @property (nonatomic, assign) float threshHold;
20 | @property (nonatomic, assign) int noiseThreshhold;
21 |
22 | /**
23 | * 轨迹平滑优化
24 | * @param originlist 原始轨迹list,list.size大于2
25 | * @return 优化后轨迹list
26 | */
27 | - (NSArray*)pathOptimize:(NSArray*)originlist;
28 |
29 | /**
30 | * 轨迹线路滤波
31 | * @param originlist 原始轨迹list,list.size大于2
32 | * @return 滤波处理后的轨迹list
33 | */
34 | - (NSArray*)kalmanFilterPath:(NSArray*)originlist;
35 |
36 |
37 | /**
38 | * 轨迹去噪,删除垂距大于20m的点
39 | * @param originlist 原始轨迹list,list.size大于2
40 | * @return 去燥后的list
41 | */
42 | - (NSArray*)removeNoisePoint:(NSArray*)originlist;
43 |
44 | /**
45 | * 单点滤波
46 | * @param lastLoc 上次定位点坐标
47 | * @param curLoc 本次定位点坐标
48 | * @return 滤波后本次定位点坐标值
49 | */
50 | - (MALonLatPoint*)kalmanFilterPoint:(MALonLatPoint*)lastLoc curLoc:(MALonLatPoint*)curLoc;
51 |
52 | /**
53 | * 轨迹抽稀
54 | * @param inPoints 待抽稀的轨迹list,至少包含两个点,删除垂距小于mThreshhold的点
55 | * @return 抽稀后的轨迹list
56 | */
57 | - (NSArray*)reducerVerticalThreshold:(NSArray*)inPoints;
58 |
59 | @end
60 |
--------------------------------------------------------------------------------
/iOS-path-smooth/MASmoothPathTool.m:
--------------------------------------------------------------------------------
1 | //
2 | // MASmoothPathTool.m
3 | // iOS-path-smooth
4 | //
5 | // Created by shaobin on 2017/10/12.
6 | // Copyright © 2017年 autonavi. All rights reserved.
7 | //
8 |
9 | #import "MASmoothPathTool.h"
10 | #import
11 |
12 | @implementation MALonLatPoint
13 | @end
14 |
15 | @implementation MASmoothPathTool
16 | {
17 | double lastLocation_x; //上次位置
18 | double currentLocation_x;//这次位置
19 | double lastLocation_y; //上次位置
20 | double currentLocation_y;//这次位置
21 | double estimate_x; //修正后数据
22 | double estimate_y; //修正后数据
23 | double pdelt_x; //自预估偏差
24 | double pdelt_y; //自预估偏差
25 | double mdelt_x; //上次模型偏差
26 | double mdelt_y; //上次模型偏差
27 | double gauss_x; //高斯噪音偏差
28 | double gauss_y; //高斯噪音偏差
29 | double kalmanGain_x; //卡尔曼增益
30 | double kalmanGain_y; //卡尔曼增益
31 |
32 | double m_R;
33 | double m_Q;
34 | }
35 |
36 | - (id)init {
37 | self = [super init];
38 |
39 | if(self) {
40 | self.intensity = 3;
41 | self.threshHold = 0.3f;
42 | self.noiseThreshhold = 10;
43 | }
44 |
45 | return self;
46 | }
47 | /**
48 | * 轨迹平滑优化
49 | * @param originlist 原始轨迹list,list.size大于2
50 | * @return 优化后轨迹list
51 | */
52 | - (NSArray*)pathOptimize:(NSArray*)originlist {
53 |
54 | NSArray* list = [self removeNoisePoint:originlist];//去噪
55 | NSArray* afterList = [self kalmanFilterPath:list intensity:self.intensity];//滤波
56 | NSArray* pathoptimizeList = [self reducerVerticalThreshold:afterList threshHold:self.threshHold];//抽稀
57 | return pathoptimizeList;
58 | }
59 |
60 | /**
61 | * 轨迹线路滤波
62 | * @param originlist 原始轨迹list,list.size大于2
63 | * @return 滤波处理后的轨迹list
64 | */
65 | - (NSArray*)kalmanFilterPath:(NSArray*)originlist {
66 | return [self kalmanFilterPath:originlist intensity:self.intensity];
67 | }
68 |
69 |
70 | /**
71 | * 轨迹去噪,删除垂距大于20m的点
72 | * @param originlist 原始轨迹list,list.size大于2
73 | * @return 去燥后的list
74 | */
75 | - (NSArray*)removeNoisePoint:(NSArray*)originlist{
76 | return [self reduceNoisePoint:originlist threshHold:self.noiseThreshhold];
77 | }
78 |
79 | /**
80 | * 单点滤波
81 | * @param lastLoc 上次定位点坐标
82 | * @param curLoc 本次定位点坐标
83 | * @return 滤波后本次定位点坐标值
84 | */
85 | - (MALonLatPoint*)kalmanFilterPoint:(MALonLatPoint*)lastLoc curLoc:(MALonLatPoint*)curLoc {
86 | return [self kalmanFilterPoint:lastLoc curLoc:curLoc intensity:self.intensity];
87 | }
88 |
89 | /**
90 | * 轨迹抽稀
91 | * @param inPoints 待抽稀的轨迹list,至少包含两个点,删除垂距小于mThreshhold的点
92 | * @return 抽稀后的轨迹list
93 | */
94 | - (NSArray*)reducerVerticalThreshold:(NSArray*)inPoints {
95 | return [self reducerVerticalThreshold:inPoints threshHold:self.threshHold];
96 | }
97 |
98 | /********************************************************************************************************/
99 | /**
100 | * 轨迹线路滤波
101 | * @param originlist 原始轨迹list,list.size大于2
102 | * @param intensity 滤波强度(1—5)
103 | * @return 滤波后的list
104 | */
105 | - (NSArray*)kalmanFilterPath:(NSArray*)originlist intensity:(int)intensity {
106 | if (!originlist || originlist.count <= 2) {
107 | return nil;
108 | }
109 |
110 | NSMutableArray* kalmanFilterList = [NSMutableArray array];
111 |
112 | [self initial];//初始化滤波参数
113 |
114 | MALonLatPoint* point = nil;
115 | MALonLatPoint* lastLoc = [[MALonLatPoint alloc] init];
116 | lastLoc.lat = [originlist objectAtIndex:0].lat;
117 | lastLoc.lon = [originlist objectAtIndex:0].lon;
118 | [kalmanFilterList addObject:lastLoc];
119 |
120 | for (int i = 1; i < originlist.count; i++) {
121 | MALonLatPoint* curLoc = [originlist objectAtIndex:i];
122 | point = [self kalmanFilterPoint:lastLoc curLoc:curLoc intensity:intensity];
123 | if (point) {
124 | [kalmanFilterList addObject:point];
125 | lastLoc = point;
126 | }
127 | }
128 | return kalmanFilterList;
129 | }
130 |
131 | /**
132 | * 单点滤波
133 | * @param lastLoc 上次定位点坐标
134 | * @param curLoc 本次定位点坐标
135 | * @param intensity 滤波强度(1—5)
136 | * @return 滤波后本次定位点坐标值
137 | */
138 | - (MALonLatPoint*)kalmanFilterPoint:(MALonLatPoint*)lastLoc curLoc:(MALonLatPoint*)curLoc intensity:(int)intensity {
139 | if (!lastLoc || !curLoc){
140 | return nil;
141 | }
142 |
143 | if (pdelt_x == 0 || pdelt_y == 0 ){
144 | [self initial];
145 | }
146 |
147 | MALonLatPoint* point = nil;
148 | if (intensity < 1){
149 | intensity = 1;
150 | } else if (intensity > 5){
151 | intensity = 5;
152 | }
153 | for (int j = 0; j < intensity; j++){
154 | point = [self kalmanFilter:lastLoc.lon value_x:curLoc.lon oldValue_y:lastLoc.lat value_y:curLoc.lat];
155 | curLoc = point;
156 | }
157 | return point;
158 | }
159 |
160 |
161 | /***************************卡尔曼滤波开始********************************/
162 |
163 | //初始模型
164 | - (void)initial {
165 | pdelt_x = 0.001;
166 | pdelt_y = 0.001;
167 | // mdelt_x = 0;
168 | // mdelt_y = 0;
169 | mdelt_x = 5.698402909980532E-4;
170 | mdelt_y = 5.698402909980532E-4;
171 | }
172 |
173 | - (MALonLatPoint*)kalmanFilter:(double)oldValue_x value_x:(double)value_x oldValue_y:(double)oldValue_y value_y:(double)value_y{
174 | lastLocation_x = oldValue_x;
175 | currentLocation_x= value_x;
176 |
177 | gauss_x = sqrt(pdelt_x * pdelt_x + mdelt_x * mdelt_x)+m_Q; //计算高斯噪音偏差
178 | kalmanGain_x = sqrt((gauss_x * gauss_x)/(gauss_x * gauss_x + pdelt_x * pdelt_x)) +m_R; //计算卡尔曼增益
179 | estimate_x = kalmanGain_x * (currentLocation_x - lastLocation_x) + lastLocation_x; //修正定位点
180 | mdelt_x = sqrt((1-kalmanGain_x) * gauss_x *gauss_x); //修正模型偏差
181 |
182 | lastLocation_y = oldValue_y;
183 | currentLocation_y = value_y;
184 | gauss_y = sqrt(pdelt_y * pdelt_y + mdelt_y * mdelt_y)+m_Q; //计算高斯噪音偏差
185 | kalmanGain_y = sqrt((gauss_y * gauss_y)/(gauss_y * gauss_y + pdelt_y * pdelt_y)) +m_R; //计算卡尔曼增益
186 | estimate_y = kalmanGain_y * (currentLocation_y - lastLocation_y) + lastLocation_y; //修正定位点
187 | mdelt_y = sqrt((1-kalmanGain_y) * gauss_y * gauss_y); //修正模型偏差
188 |
189 | MALonLatPoint *point = [[MALonLatPoint alloc] init];
190 | point.lon = estimate_x;
191 | point.lat = estimate_y;
192 |
193 | return point;
194 | }
195 | /***************************卡尔曼滤波结束**********************************/
196 |
197 | /***************************抽稀算法*************************************/
198 | - (NSArray*)reducerVerticalThreshold:(NSArray*)inPoints threshHold:(float)threshHold {
199 | if(inPoints.count < 2) {
200 | return inPoints;
201 | }
202 |
203 | NSMutableArray *ret = [NSMutableArray arrayWithCapacity:inPoints.count];
204 |
205 | for(int i = 0; i < inPoints.count; ++i) {
206 | MALonLatPoint *pre = ret.lastObject;
207 | MALonLatPoint *cur = [inPoints objectAtIndex:i];
208 |
209 |
210 | if (!pre || i == inPoints.count - 1) {
211 | [ret addObject:[inPoints objectAtIndex:i]];
212 | continue;
213 | }
214 |
215 | MALonLatPoint *next = [inPoints objectAtIndex:(i + 1)];
216 |
217 | MAMapPoint curP = MAMapPointForCoordinate(CLLocationCoordinate2DMake(cur.lat, cur.lon));
218 | MAMapPoint prevP = MAMapPointForCoordinate(CLLocationCoordinate2DMake(pre.lat, pre.lon));
219 | MAMapPoint nextP = MAMapPointForCoordinate(CLLocationCoordinate2DMake(next.lat, next.lon));
220 | double distance = [self calculateDistanceFromPoint:curP lineBegin:prevP lineEnd:nextP];
221 | if (distance >= threshHold) {
222 | [ret addObject:cur];
223 | }
224 | }
225 |
226 | return ret;
227 | }
228 |
229 | - (MALonLatPoint*)getLastLocation:(NSArray*)oneGraspList {
230 | if (!oneGraspList || oneGraspList.count == 0) {
231 | return nil;
232 | }
233 | NSInteger locListSize = oneGraspList.count;
234 | MALonLatPoint* lastLocation = [oneGraspList objectAtIndex:(locListSize - 1)];
235 | return lastLocation;
236 | }
237 |
238 | /**
239 | * 计算当前点到线的垂线距离
240 | * @param pt 当前点
241 | * @param begin 线的起点
242 | * @param end 线的终点
243 | *
244 | */
245 | - (double)calculateDistanceFromPoint:(MAMapPoint)pt
246 | lineBegin:(MAMapPoint)begin
247 | lineEnd:(MAMapPoint)end {
248 |
249 | MAMapPoint mappedPoint;
250 | double dx = begin.x - end.x;
251 | double dy = begin.y - end.y;
252 | if(fabs(dx) < 0.00000001 && fabs(dy) < 0.00000001 ) {
253 | mappedPoint = begin;
254 | } else {
255 | double u = (pt.x - begin.x)*(begin.x - end.x) +
256 | (pt.y - begin.y)*(begin.y - end.y);
257 | u = u/((dx*dx)+(dy*dy));
258 |
259 | mappedPoint.x = begin.x + u*dx;
260 | mappedPoint.y = begin.y + u*dy;
261 | }
262 |
263 | return MAMetersBetweenMapPoints(pt, mappedPoint);
264 | }
265 | /***************************抽稀算法结束*********************************/
266 |
267 | - (NSArray*)reduceNoisePoint:(NSArray*)inPoints threshHold:(float)threshHold {
268 | if (!inPoints) {
269 | return nil;
270 | }
271 | if (inPoints.count <= 2) {
272 | return inPoints;
273 | }
274 |
275 | NSMutableArray* ret = [NSMutableArray array];
276 | for (int i = 0; i < inPoints.count; i++) {
277 | MALonLatPoint* pre = [self getLastLocation:ret];
278 | MALonLatPoint* cur = [inPoints objectAtIndex:i];
279 | if (!pre || i == inPoints.count - 1) {
280 | [ret addObject:cur];
281 | continue;
282 | }
283 | MALonLatPoint* next = [inPoints objectAtIndex:(i + 1)];
284 |
285 | MAMapPoint curP = MAMapPointForCoordinate(CLLocationCoordinate2DMake(cur.lat, cur.lon));
286 | MAMapPoint prevP = MAMapPointForCoordinate(CLLocationCoordinate2DMake(pre.lat, pre.lon));
287 | MAMapPoint nextP = MAMapPointForCoordinate(CLLocationCoordinate2DMake(next.lat, next.lon));
288 | double distance = [self calculateDistanceFromPoint:curP lineBegin:prevP lineEnd:nextP];
289 | if (distance < threshHold){
290 | [ret addObject:cur];
291 | }
292 | }
293 | return ret;
294 | }
295 |
296 |
297 | @end
298 |
--------------------------------------------------------------------------------
/iOS-path-smooth/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // iOS-path-smooth
4 | //
5 | // Created by shaobin on 2017/10/12.
6 | // Copyright © 2017年 autonavi. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/iOS-path-smooth/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // iOS-path-smooth
4 | //
5 | // Created by shaobin on 2017/10/12.
6 | // Copyright © 2017年 autonavi. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 | #import
11 | #import "MASmoothPathTool.h"
12 |
13 | @interface ViewController ()
14 |
15 | @property (nonatomic, strong) NSArray *origTracePoints;
16 | @property (nonatomic, strong) NSArray *smoothedTracePoints;
17 |
18 | @property (nonatomic, strong) MAMapView *mapView;
19 | @property (nonatomic, strong) MAPolyline *origTrace;
20 | @property (nonatomic, strong) MAPolyline *smoothedTrace;
21 |
22 | @property (nonatomic, strong) UISwitch *origTraceSwitch;
23 | @property (nonatomic, strong) UISwitch *smoothedTraceSwitch;
24 |
25 | @end
26 |
27 | @implementation ViewController
28 |
29 | - (void)viewDidLoad {
30 | [super viewDidLoad];
31 | // Do any additional setup after loading the view, typically from a nib.
32 |
33 | [self initPolylines];
34 |
35 | self.mapView = [[MAMapView alloc] initWithFrame:self.view.bounds];
36 | self.mapView.delegate = self;
37 | [self.view addSubview:self.mapView];
38 |
39 | self.origTraceSwitch = [[UISwitch alloc] init];
40 | self.origTraceSwitch.accessibilityIdentifier = @"origTraceSwitch";
41 | self.smoothedTraceSwitch = [[UISwitch alloc] init];
42 | self.smoothedTraceSwitch.accessibilityIdentifier = @"smoothedTraceSwitch";
43 |
44 | self.origTraceSwitch.center = CGPointMake(15 + self.origTraceSwitch.bounds.size.width / 2, self.view.bounds.size.height - 90);
45 | self.smoothedTraceSwitch.center = CGPointMake(self.origTraceSwitch.center.x, self.origTraceSwitch.center.y + self.origTraceSwitch.bounds.size.height + 5);
46 |
47 | UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(CGRectGetMaxX(self.origTraceSwitch.frame) + 5, self.origTraceSwitch.frame.origin.y, 100, CGRectGetHeight(self.origTraceSwitch.bounds))];
48 | label1.text = @"原始轨迹";
49 | UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(CGRectGetMaxX(self.smoothedTraceSwitch.frame) + 5, self.smoothedTraceSwitch.frame.origin.y, 100, CGRectGetHeight(self.smoothedTraceSwitch.bounds))];
50 | label2.text = @"平滑轨迹";
51 |
52 | [self.view addSubview:label1];
53 | [self.view addSubview:self.origTraceSwitch];
54 | [self.view addSubview:label2];
55 | [self.view addSubview:self.smoothedTraceSwitch];
56 |
57 | //
58 | [self.origTraceSwitch addTarget:self action:@selector(onOrig:) forControlEvents:UIControlEventValueChanged];
59 | [self.smoothedTraceSwitch addTarget:self action:@selector(onSmoothed:) forControlEvents:UIControlEventValueChanged];
60 |
61 | [self.origTraceSwitch setOn:YES];
62 | [self.mapView removeOverlay:self.origTrace];
63 | [self.mapView addOverlay:self.origTrace];
64 |
65 | [self.mapView showOverlays:@[self.origTrace] animated:NO];
66 | }
67 |
68 | - (void)initPolylines {
69 | [self loadTracePoints];
70 |
71 | if(self.origTracePoints.count == 0) {
72 | return;
73 | }
74 |
75 | [self initOriginalTrace];
76 |
77 | [self initSmoothedTrace];
78 | }
79 |
80 | - (void)initOriginalTrace {
81 | CLLocationCoordinate2D *pCoords = malloc(sizeof(CLLocationCoordinate2D) * self.origTracePoints.count);
82 | if(!pCoords) {
83 | return;
84 | }
85 |
86 | for(int i = 0; i < self.origTracePoints.count; ++i) {
87 | MALonLatPoint *p = [self.origTracePoints objectAtIndex:i];
88 | CLLocationCoordinate2D *pCur = pCoords + i;
89 | pCur->latitude = p.lat;
90 | pCur->longitude = p.lon;
91 | }
92 |
93 | self.origTrace = [MAPolyline polylineWithCoordinates:pCoords count:self.origTracePoints.count];
94 | if(pCoords) {
95 | free(pCoords);
96 | }
97 | }
98 |
99 | - (void)initSmoothedTrace {
100 | MASmoothPathTool *tool = [[MASmoothPathTool alloc] init];
101 | tool.intensity = 3;
102 | tool.threshHold = 0.3;
103 | tool.noiseThreshhold = 10;
104 | self.smoothedTracePoints = [tool pathOptimize:self.origTracePoints];
105 |
106 | CLLocationCoordinate2D *pCoords = malloc(sizeof(CLLocationCoordinate2D) * self.smoothedTracePoints.count);
107 | if(!pCoords) {
108 | return;
109 | }
110 |
111 | for(int i = 0; i < self.smoothedTracePoints.count; ++i) {
112 | MALonLatPoint *p = [self.smoothedTracePoints objectAtIndex:i];
113 | CLLocationCoordinate2D *pCur = pCoords + i;
114 | pCur->latitude = p.lat;
115 | pCur->longitude = p.lon;
116 | }
117 |
118 | self.smoothedTrace = [MAPolyline polylineWithCoordinates:pCoords count:self.smoothedTracePoints.count];
119 | if(pCoords) {
120 | free(pCoords);
121 | }
122 | }
123 |
124 | - (void)loadTracePoints {
125 | NSString *filePath = [NSString stringWithFormat:@"%@/AMapTrace2.txt", [[NSBundle mainBundle] bundlePath]];
126 | NSData *fileData = [NSData dataWithContentsOfFile:filePath];
127 | NSString *str = [[NSString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];
128 | NSArray *arr = [str componentsSeparatedByString:@"\n"];
129 | NSMutableArray *results = [NSMutableArray array];
130 | for(NSString *oneLine in arr) {
131 | NSArray *items = [oneLine componentsSeparatedByString:@","];
132 |
133 | if(items.count == 3) {
134 | NSString *lat = [items objectAtIndex:1];
135 | NSString *lon = [items objectAtIndex:2];
136 | MALonLatPoint *point = [[MALonLatPoint alloc] init];
137 | point.lat = [lat doubleValue];
138 | point.lon = [lon doubleValue];
139 | [results addObject:point];
140 | }
141 | }
142 |
143 | self.origTracePoints = results;
144 | }
145 |
146 | - (void)onOrig:(UISwitch *)sender
147 | {
148 | if(sender.isOn) {
149 | if([self.mapView.overlays containsObject:self.smoothedTrace]) {
150 | [self.mapView insertOverlay:self.origTrace belowOverlay:self.smoothedTrace];
151 | } else {
152 | [self.mapView addOverlay:self.origTrace];
153 | }
154 | } else {
155 | [self.mapView removeOverlay:self.origTrace];
156 | }
157 | }
158 |
159 | - (void)onSmoothed:(UISwitch *)sender
160 | {
161 | if(sender.isOn) {
162 | [self.mapView addOverlay:self.smoothedTrace];
163 | } else {
164 | [self.mapView removeOverlay:self.smoothedTrace];
165 | }
166 | }
167 |
168 | #pragma
169 | - (MAOverlayRenderer *)mapView:(MAMapView *)mapView rendererForOverlay:(id )overlay
170 | {
171 | if (overlay == self.origTrace)
172 | {
173 | MAPolylineRenderer * polylineRenderer = [[MAPolylineRenderer alloc] initWithPolyline:self.origTrace];
174 |
175 | polylineRenderer.lineWidth = 4.f;
176 | polylineRenderer.strokeColor = [UIColor greenColor];
177 |
178 | return polylineRenderer;
179 |
180 | } else if (overlay == self.smoothedTrace) {
181 | MAPolylineRenderer * polylineRenderer = [[MAPolylineRenderer alloc] initWithPolyline:self.smoothedTrace];
182 |
183 | polylineRenderer.lineWidth = 4.f;
184 | polylineRenderer.strokeColor = [UIColor colorWithRed:1.0 green:(int)0xc1/255.0 blue:0x25/255.0 alpha:1.0];
185 |
186 | return polylineRenderer;
187 |
188 | }
189 |
190 | return nil;
191 | }
192 |
193 | @end
194 |
--------------------------------------------------------------------------------
/iOS-path-smooth/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // iOS-path-smooth
4 | //
5 | // Created by shaobin on 2017/10/12.
6 | // Copyright © 2017年 autonavi. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/iOS-path-smoothUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/iOS-path-smoothUITests/iOS_path_smoothUITests.m:
--------------------------------------------------------------------------------
1 | //
2 | // iOS_path_smoothUITests.m
3 | // iOS-path-smoothUITests
4 | //
5 | // Created by hanxiaoming on 2017/10/18.
6 | // Copyright © 2017年 autonavi. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface iOS_path_smoothUITests : XCTestCase
12 |
13 | @end
14 |
15 | @implementation iOS_path_smoothUITests
16 |
17 | - (void)setUp {
18 | [super setUp];
19 |
20 | // Put setup code here. This method is called before the invocation of each test method in the class.
21 |
22 | // In UI tests it is usually best to stop immediately when a failure occurs.
23 | self.continueAfterFailure = NO;
24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
25 | [[[XCUIApplication alloc] init] launch];
26 |
27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
28 | }
29 |
30 | - (void)tearDown {
31 | // Put teardown code here. This method is called after the invocation of each test method in the class.
32 | [super tearDown];
33 | }
34 |
35 | - (void)testExample {
36 | // Use recording to get started writing UI tests.
37 | // Use XCTAssert and related functions to verify your tests produce the correct results.
38 |
39 | XCUIApplication *app = [[XCUIApplication alloc] init];
40 |
41 | XCUIElement *switch1 = [app.switches elementMatchingType:XCUIElementTypeSwitch identifier:@"origTraceSwitch"];
42 |
43 | XCUIElement *switch2 = [app.switches elementMatchingType:XCUIElementTypeSwitch identifier:@"smoothedTraceSwitch"];
44 |
45 | [switch1 tap];
46 |
47 | [switch2 tap];
48 | sleep(1);
49 | [switch1 tap];
50 | [switch2 tap];
51 |
52 | sleep(1);
53 | }
54 |
55 | @end
56 |
--------------------------------------------------------------------------------