2016-11-10 6 views
0

Ein AVAsset (oder AVURLAsset) enthält AVMetadataItems in einem Array, von denen eines der allgemeine Schlüssel AVMetadataCommonKeyLocation sein kann.AVMetadataItems GPS-Zeichenfolge in CLL-Position konvertieren

Der Wert dieses Elements ist eine Zeichenfolge, die wie in einem Format angezeigt:

+ 39.9410-075.2040 + 007,371/

Wie konvertiere Sie diese Zeichenfolge in eine CLLocation?

Antwort

0

Okay, ich habe es herausgefunden, nachdem ich festgestellt habe, dass die Zeichenfolge im ISO 6709-Format ist, und dann einen relevanten Apple-Beispielcode finden.

NSString* locationDescription = [item stringValue]; 

NSString *latitude = [locationDescription substringToIndex:8]; 
NSString *longitude = [locationDescription substringWithRange:NSMakeRange(8, 9)]; 

CLLocation* location = [[CLLocation alloc] initWithLatitude:latitude.doubleValue 
                longitude:longitude.doubleValue]; 

Hier ist der Apple-Beispielcode: AVLocationPlayer

Auch hier Code ist zu konvertieren zurück:

+ (NSString*)iso6709StringFromCLLocation:(CLLocation*)location 
{ 
    //Comes in like 
    //+39.9410-075.2040+007.371/ 
    //Goes out like 
    //+39.9410-075.2040/ 
    if (location) { 
     return [NSString stringWithFormat:@"%+08.4f%+09.4f/", 
      location.coordinate.latitude, 
      location.coordinate.longitude]; 
    } else { 
     return nil; 
    } 
}