ExifInterface.TAG_GPS_LATITUDEには何を入れるのか?

カメラで撮影した画像にEXIFで位置情報をつけようとした場合、
ExifInterface.TAG_GPS_LATITUDE/TAG_GPS_LONGITUDE に
Stringを入れる、というところまではわかったのですが、そのStringにサクッとGPSの情報を入れても
動きません。

http://www.mailinglistarchive.com/html/android-group-japan@googlegroups.com/2010-05/msg00112.html

で、誰も答えてませんが、正解は

http://developer.android.com/intl/ja/reference/android/media/ExifInterface.html#TAG_GPS_LATITUDE

“num1/denom1,num2/denom2,num3/denom3”

とありました。

これは分かりにくい!

具体的には、「北緯38度52分15.56秒」だったら、
「38/1,52/1,1556/100」と入れます。

    String latlong2GeoFormat (double latlong) {
        // doubleからintへ変換
    	Double _latlong = latlong;
    	int num1 = _latlong.intValue();
    	double num2d = ((_latlong - (double)num1) * 100);
    	int num2 = (int)num2d;
    	double num3d = ((num2d - (double)num2) * 10000);
    	int num3 = (int)num3d;

		// フォーマット num1/denom1,num2/denom2,num3,denom3
    	return String.format("%d/1,%d/1,%d/100", num1, num2, num3);
    }
こんな感じで。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です