从字典

时间:2016-08-15 22:09:11

标签: objective-c cllocation

我尝试了许多不同的方式,并且在各方面我似乎都在丢失现有资产位置上已有的一些信息。

我正在创建资产的修改副本,并希望将该资产可用的位置信息复制到其修改后的副本中。但是CLLocation中可用的方法没有可用于现有Assets GPS的所有字段。以下是现有资产的可用内容:

       "{GPS}" =             {
            Altitude = "50.4666666666667";
            GPSVersion =                 (
                2,
                3,
                0,
                0
            );
            ImgDirection = "265.8132992327366";
            ImgDirectionRef = T;
            Latitude = "58.5314";
            LatitudeRef = N;
            Longitude = "21.5112";
            LongitudeRef = W;
            MapDatum = "WGS-84";
            Speed = "2.053334425692282";
            SpeedRef = K;
        };

CLLocation下提供最多选项的方法如下:

[loc initWithCoordinate:<#(CLLocationCoordinate2D)#> 
        altitude:<#(CLLocationDistance)#> 
        horizontalAccuracy:<#(CLLocationAccuracy)#> 
        verticalAccuracy:<#(CLLocationAccuracy)#> 
        course:<#(CLLocationDirection)#> 
        speed:<#(CLLocationSpeed)#> 
        timestamp:<#(nonnull NSDate *)#>];

我似乎仍然失去了ImgDirectionRef&#39; ,&#39; LatitudeRef&#39; ,&#39; LongitudeRef&#39; ,&#39; MatDatum&#39; ,&#39; GPSVersion&#39;用这种方法。

有谁知道我还能做些什么来确保将CLLocation完全复制到修改后的资产。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您需要子类CLLocation才能存储不属于CLLocation的额外值。 e.g。

#import <CoreLocation/CoreLocation.h>
@interface CustomLocation : CLLocation

@property NSInteger ImgDirectionRef;
//etc

@end

然后

CustomLocation *loc;
[loc initWithCoordinate:<#(CLLocationCoordinate2D)#> 
    altitude:<#(CLLocationDistance)#> 
    horizontalAccuracy:<#(CLLocationAccuracy)#> 
    verticalAccuracy:<#(CLLocationAccuracy)#> 
    course:<#(CLLocationDirection)#> 
    speed:<#(CLLocationSpeed)#> 
    timestamp:<#(nonnull NSDate *)#>];

loc.ImgDirectionRef = 123; // your value here
// set extra values here