在我的android应用程序中,我有一个地理参考图像,我将使用它作为地图。所以我需要把它分成瓦片。为此,我想要它的左上角和右下角的图像坐标(x,y),以及使用android中支持的java代码的相应图像坐标的位置坐标。有人能帮我解决这个问题吗。
更新:我得到了左上角和右下角的图像坐标,但仍然没有得到左上角的位置坐标(lat/long)。lat/long已经嵌入图像中,因为它已经被地理参考了。有人能告诉我如何从图像中获取角的lat/long吗。
编辑:
为了计算图像的位置,请在创建时将其添加到您的活动中,并在exif接口代码下方进行位置坐标检查:
imageView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
pubic void onGlobalLayout() {
int height = imageView.getHeight();
int width = imageView.getWidth();
int x = imageView.getLeft();
int y = imageView.getTop();
//don't forget to remove the listener to prevent being called again by future layout events:
imageView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
您可以在拍照时嵌入EXIF数据/设置它,然后将其发送到远程服务器进行处理。当将数据发布/发送到远程系统时,您可以单独发送位置数据,或者将其作为EXIF数据的一部分保留为属性。
在Android 中写入/地理标记JPEG(EXIF数据)
通过阅读以上内容,我的假设是以下内容会起作用:
ExifInterface exif;
exif = new ExifInterface("/sdcard/DCIM/"+filename+".jpeg");
double exifLatitude = exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE);
double exifLongitude = exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE);