Ja, es ist möglich.
Sie müssen ALAssetsLibrary
verwenden, um auf Ihre Kamerarolle zuzugreifen. Dann listen Sie einfach durch Ihre Fotos auf und fragen nach dem Standort.
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.
}];
Dies wird Ihre Asset-Gruppen auflisten. Als Nächstes nehmen Sie eine Gruppe auf und listen deren Assets auf.
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];
}];
Jetzt ist Ihre loc
Variable enthält Lage des Ortes, wo das Foto aufgenommen wurde. Sie sollten es vor der Verwendung gegen ALErrorInvalidProperty
überprüfen, da einige Fotos diese Daten möglicherweise fehlen.
Sie können ALAssetPropertyDate
angeben, um das Datum und die Uhrzeit der Fotoerstellung abzurufen.