基本的に、 http://docs.xamarin.com/ios/recipes/Media/Video_and_Photos/Save_Photo_to_Album_with_Metadataのサンプル コードを使用しています。
写真を撮ってファイルのexifデータを確認すると(http://exifdata.com/またはデバイスのExif-Wizardを介して)、exifデータにGPS情報が含まれていないことに気付いたので、手動で位置情報を収集しました、フォーマットして辞書に追加し、以下に示すようにメタ辞書に含めます。
btnCamera.Clicked += delegate {
TweetStation.Camera.TakePicture (this, (obj) => {
var photo = obj.ValueForKey (new NSString ("UIImagePickerControllerOriginalImage")) as UIImage;
var meta = obj.ValueForKey (new NSString ("UIImagePickerControllerMediaMetadata")) as NSMutableDictionary;
var gpsDict = new NSMutableDictionary ();
...
gpsDict.SetValueForKey (NSObject.FromObject (GpsLong), new NSString ("GPSLongitude"));
gpsDict.SetValueForKey (NSObject.FromObject (GpsLongRef), new NSString ("GPSLongitudeRef"));
gpsDict.SetValueForKey (NSObject.FromObject (GpsLat), new NSString ("GPSLatitude"));
gpsDict.SetValueForKey (NSObject.FromObject (GpsLatRef), new NSString ("GPSLatitudeRef"));
gpsDict.SetValueForKey (NSObject.FromObject (DateTime.UtcNow.ToString ("HH:MM:ss.ff")), new NSString ("GPSTimeStamp"));
meta.SetValueForKey (gpsDict, new NSString ("{GPS}"));
Console.WriteLine (meta.Description);
ALAssetsLibrary library = new ALAssetsLibrary ();
library.WriteImageToSavedPhotosAlbum (photo.CGImage, meta, (assetUrl, error) => {
if (error != null) {
Console.WriteLine ("error: "+ error.ToString ());
}
):
問題は、これが機能していないようで、if (error != null) {Console.WriteLine (error.ToString ());}
問題が出力されずConsole.WriteLine (meta.Description);
、出力が次のようになることです。
{
DPIHeight = 72;
DPIWidth = 72;
Orientation = 6;
"{Exif}" = {
ApertureValue = "2.970853654340484";
BrightnessValue = "1.87496238139573";
ColorSpace = 1;
DateTimeDigitized = "2012:08:02 17:12:42";
DateTimeOriginal = "2012:08:02 17:12:42";
ExposureMode = 0;
ExposureProgram = 2;
ExposureTime = "0.06666666666666667";
FNumber = "2.8";
Flash = 24;
FocalLength = "3.85";
ISOSpeedRatings = (
160
);
MeteringMode = 5;
PixelXDimension = 2592;
PixelYDimension = 1936;
SceneType = 1;
SensingMethod = 2;
Sharpness = 2;
ShutterSpeedValue = "3.911199862602335";
SubjectArea = (
1295,
967,
699,
696
);
WhiteBalance = 0;
};
"{GPS}" = {
GPSLatitude = "30.35974270979283";
GPSLatitudeRef = N;
GPSLongitude = "91.13930279830274";
GPSLongitudeRef = W;
GPSTimeStamp = "22:08:44.66";
};
"{TIFF}" = {
DateTime = "2012:08:02 17:12:42";
Make = Apple;
Model = "iPhone 4";
Software = "5.0.1";
XResolution = 72;
YResolution = 72;
};
}
GPSデータを表示しています。
だから、私が間違っていることに興味があります.私はモノタッチ(Macも)に非常に慣れていないので、一般的なWTF'eryを許してください.