最近在写一个项目,需要获取照片的地理位置信息,一般来说,手机在拍照的时候,如果相机打开了保存地理位置的开关,那么拍摄出来的照片就会带有手机当时所在地的地理位置信息。
在Android开发中,需要获取图片位置信息的需求~~emmm,还是挺少见的。
最开始,我是通过ContentProvider读取本地媒体数据库来获得位置信息的。具体代码如下:
private void getPhotoLocation() {
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, SELECTIMAGES, null, null, null);
int i =0;
if (cursor !=null) {
while (cursor.moveToNext()) {
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
File file =new File(path);
if (!file.exists() || !file.canRead())continue;
float latitude = cursor.getFloat(cursor.getColumnIndex(MediaStore.Images.Media.LATITUDE));
float longitude = cursor