【问题标题】:How to get image coordinate and corresponding location coordinate of a geo-referenced image in android如何在android中获取地理参考图像的图像坐标和相应的位置坐标
【发布时间】:2016-02-04 22:02:24
【问题描述】:

在我的 android 应用程序中,我有一个地理参考图像,我将使用它作为地图。所以我需要把它分成瓷砖。为此,我想要它的左上角和右下角图像坐标(x,y)以及使用 android 支持的 java 代码的相应图像坐标的位置坐标。谁能帮我解决一下。

更新: 我得到了左上角和右下角的图像坐标,但我仍然没有得到左上角和右下角的位置坐标(纬度/经度)。 lat/long 已经嵌入到图像中,因为它已经是地理参考的,谁能告诉我如何从图像中获取角的 lat/long。

【问题讨论】:

    标签: java android geospatial


    【解决方案1】:

    编辑:

    要计算图像的位置,请将其添加到您的活动 oncreate 和 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);
    

    【讨论】:

    • 该图像将用于地图,所以我需要它的左上角和右下角图像坐标(x,y)以及与图像坐标对应的位置坐标
    • 我拥有的图像没有与之关联的 exif 文件,尽管它有一个 aux.xml 文件,并且图像在其他情况下可以是 tiff 格式。因此,您的解决方案是给我左上角图像坐标以及高度和宽度,以便我可以从中计算左下角图像坐标,但无法计算与这两个点相关的纬度/经度值。
    猜你喜欢
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 2018-07-16
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多