我尝试了许多不同的方式,并且在各方面我似乎都在丢失现有资产位置上已有的一些信息。
我正在创建资产的修改副本,并希望将该资产可用的位置信息复制到其修改后的副本中。但是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完全复制到修改后的资产。提前谢谢。
答案 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