2012-04-12 15 views
6

可能性の重複:
How Do I Get The Correct Latitude and Longitude From An Uploaded iPhone Photo?iPhone iOSカメラのロールイメージから写真メタデータとジオタグ情報を抽出する方法は?

私は写真アプリを作ってるんだし、ジオタグ付きの写真を操作するための私のオプションが何であるか知っていただきたいと思います。 私は写真が撮影された場所を表示したいと思います(写真アプリに似ています)。これは可能ですか?

さらに、私は写真が撮られたときを知る必要があります。私は自分自身で撮った写真のためにこの情報をキャプチャすることができますが、カメラロール画像はどうですか?

答えて

13

はい、可能です。

カメラロールにアクセスするには、ALAssetsLibraryを使用する必要があります。次に、写真を列挙し場所を尋ねるだけです。

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. 

}]; 

これで資産グループが列挙されます。次に、グループを選択し、そのアセットを列挙します。

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];  
}]; 

ここで、loc変数には、写真を撮影した場所の場所が含まれています。一部の写真ではこのデータが不足している可能性があるため、使用前にALErrorInvalidPropertyと確認してください。

ALAssetPropertyDateを指定すると、写真の作成日時を取得できます。

関連する問題