@@ -13,16 +13,28 @@ + (NSDictionary *) toDictionary:(CLLocation *)location {
13
13
return nil ;
14
14
}
15
15
16
- return @{
17
- @" latitude" : @(location.coordinate .latitude ),
18
- @" longitude" : @(location.coordinate .longitude ),
19
- @" timestamp" : @([LocationMapper currentTimeInMilliSeconds: location.timestamp]),
20
- @" altitude" : @(location.altitude ),
21
- @" accuracy" : @(location.horizontalAccuracy ),
22
- @" speed" : @(location.speed ),
23
- @" speed_accuracy" : @0.0 ,
24
- @" heading" : @(location.course ),
25
- };
16
+ double timestamp = [LocationMapper currentTimeInMilliSeconds: location.timestamp];
17
+ double speedAccuracy = 0.0 ;
18
+
19
+ if (@available (iOS 10.0 , *)) {
20
+ speedAccuracy = location.speedAccuracy ;
21
+ }
22
+
23
+ NSMutableDictionary *locationMap = [[NSMutableDictionary alloc ]initWithCapacity:9 ];
24
+ [locationMap setObject: @(location.coordinate.latitude) forKey: @" latitude" ];
25
+ [locationMap setObject: @(location.coordinate.longitude) forKey: @" longitude" ];
26
+ [locationMap setObject: @(timestamp) forKey: @" timestamp" ];
27
+ [locationMap setObject: @(location.altitude) forKey: @" altitude" ];
28
+ [locationMap setObject: @(location.horizontalAccuracy) forKey: @" accuracy" ];
29
+ [locationMap setObject: @(location.speed) forKey: @" speed" ];
30
+ [locationMap setObject: @(speedAccuracy) forKey: @" speed_accuracy" ];
31
+ [locationMap setObject: @(location.course) forKey: @" heading" ];
32
+
33
+ if (location.floor && location.floor .level ) {
34
+ [locationMap setObject: @(location.floor .level) forKey: @" floor" ];
35
+ }
36
+
37
+ return locationMap;
26
38
}
27
39
28
40
+ (double )currentTimeInMilliSeconds : (NSDate *)dateToConvert {
0 commit comments