首页 / 浏览问题 / 移动GIS / 问题详情
移动端 读取本地tif文件,并获得tif文件上每个位置的高程值
3EXP 2023年12月23日

使用产品 imobile 11i for android 操作系统:win11

数据类型 tif文件

问题详细描述: 

1.

public void openTifFile(String filePath){
        //初始化workspace
        mWokeSpace = mMapControl.getMap().getWorkspace();
        //打开TIF文件
        try{
            //创建数据源连接对象
            DatasourceConnectionInfo info = new DatasourceConnectionInfo();
            info.setEngineType(EngineType.IMAGEPLUGINS);
            info.setServer(filePath);
            if (mWokeSpace==null){
                Log.e("错误","无法进行");
            }else {
                //打开数据源
                mDatasource = mWokeSpace.getDatasources().open(info);
                if (mDatasource == null){
                    Log.i("kong","空");
                    mDatasource = mWokeSpace.getDatasources().create(info);
                }
            }

        }catch (Exception e){
            e.printStackTrace();
        }
        //在mapControl中加载数据
        mMapControl.getMap().getLayers().add(mDatasource.getDatasets().get(0),true);
    }

Datasource一直为空, info.setEngineType(EngineType.IMAGEPLUGINS);不知道使用哪个引擎

2.DataConversion.importTIF

使用DataConversion.importTIF 读取本地tif文件成功,但是获取到数据集后不知道如何处理
       try {
            boolean is2tif = DataConversion.importTIF(importSettingTIF);
            if (is2tif==true){
               mDataSet =  mDatasource.getDatasets().get("tifImport");
               addMap();
               Toast.makeText(mContext,"导入Tif文件格式成功",Toast.LENGTH_SHORT).show();
            }else {
                Toast.makeText(mContext,"导入Tif文件格式失败",Toast.LENGTH_SHORT).show();
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }

1个回答

您好,方式1读取tiff文件后得到的结果是影像数据集,其中没有记录高程信息,方式2导入栅格数据集后,栅格数据集存储在数据源中,

应该用DatasetGrid.getValue(int x, int y)根据给定的行数和列数返回栅格数据集的栅格所对应的栅格值

3,425EXP 2023年12月25日
...