2012-04-12 9 views
6

Powiel możliwe:
How Do I Get The Correct Latitude and Longitude From An Uploaded iPhone Photo?iPhone iOS, jak wyodrębnić metadane ze zdjęć i informacje o geotagowaniu z obrazu z rolki aparatu?

Robię aplikację zdjęć i chcieliby wiedzieć, jakie są moje możliwości pracy z zdjęć oznaczonych znacznikami geograficznymi. Chciałbym wyświetlić, gdzie zdjęcie zostało zrobione (podobne do aplikacji zdjęć). czy to możliwe?

Dodatkowo, Muszę wiedzieć, kiedy zdjęcie zostało zrobione. Mogę uchwycić te informacje dla zdjęć, które wykonuję sam, ale co z obrazami z rolki aparatu?

Odpowiedz

13

Tak, jest to możliwe.

Musisz użyć ALAssetsLibrary, aby uzyskać dostęp do rolki aparatu. Następnie po prostu wyliczasz swoje zdjęcia i pytasz o lokalizację.

assetsLibrary = [[ALAssetsLibrary alloc] init]; 
groups = [NSMutableArray array]; 

[assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) 
{ 
    if (group == nil) 
    { 
     return; 
    } 

    [groups addObject:group]; 

} failureBlock:^(NSError *error) 
{ 
    // Possibly, Location Services are disabled for your application or system-wide. You should notify user to turn Location Services on. With Location Services disabled you can't access media library for security reasons. 

}]; 

Spowoduje to wyliczenie grup aktywów. Następnie wybierasz grupę i wyliczasz jej aktywa.

ALAssetGroup *group = [groups objectAtIndex:0]; 
[group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) 
{ 
    if (result == nil) 
    { 
     return; 
    } 

    // Trying to retreive location data from image 
    CLLocation *loc = [result valueForProperty:ALAssetPropertyLocation];  
}]; 

Teraz zmienna loc zawiera lokalizację miejsca, w którym zdjęcie zostało zrobione. Przed użyciem należy go sprawdzić przed użyciem, ponieważ niektóre zdjęcia mogą nie zawierać tych danych.

Można podać ALAssetPropertyDate, aby uzyskać datę i godzinę utworzenia zdjęcia.

Powiązane problemy