Skip to content

Instantly share code, notes, and snippets.

@nissuk
Created April 12, 2012 13:51
Show Gist options
  • Save nissuk/2367443 to your computer and use it in GitHub Desktop.
Save nissuk/2367443 to your computer and use it in GitHub Desktop.
Java: Exifから位置情報を取得する単純な例(Sanselan)
import java.io.File;
import java.io.IOException;
import org.apache.sanselan.Sanselan;
import org.apache.sanselan.ImageReadException;
import org.apache.sanselan.common.IImageMetadata;
import org.apache.sanselan.formats.jpeg.JpegImageMetadata;
import org.apache.sanselan.formats.tiff.TiffImageMetadata;
import org.apache.sanselan.formats.tiff.TiffImageMetadata.GPSInfo;
public class Main {
/**
* ファイル(JPEG)からGPS情報を取得します。
* @param file 取得元のファイル
* @return GPS情報
*/
public static GPSInfo getGPSInfo(File file) {
IImageMetadata metadata = null;
try {
metadata = Sanselan.getMetadata(file);
} catch (ImageReadException e) {
} catch (IOException e) {
}
if (metadata == null) return null;
if (!(metadata instanceof JpegImageMetadata)) return null;
TiffImageMetadata exif = ((JpegImageMetadata) metadata).getExif();
GPSInfo gpsInfo = null;
try {
gpsInfo = exif.getGPS();
} catch (ImageReadException e) {
}
return gpsInfo;
}
public static void main(String[] args) {
GPSInfo gpsInfo = getGPSInfo(new File("test.jpg"));
if (gpsInfo != null) {
try {
double lat = gpsInfo.getLatitudeAsDegreesNorth();
double lng = gpsInfo.getLongitudeAsDegreesEast();
// lat: 35.366944, lng: 136.617833 等
System.out.printf("lat: %f, lng: %f\n", lat, lng);
} catch (ImageReadException e) {
}
}
}
}
@nissuk
Copy link
Author

nissuk commented Apr 27, 2012

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment