Android中加载GIS的本地地图文件vtpk

一、vtpk文件存储到手机本地

1. 将vtpk文件放到assert文件夹中(也可以方法sdk中)

2. 通过代码将assert中的vtpk文件存储到/data/user/0/包名/files 中

二、GIS加载本地vtpk的方法

1. 引入库

implementation ‘com.esri.arcgisruntime:arcgis-android:100.9.0’

2. 方法

    public void localMap(View view) {
        String path =this.getFilesDir().getAbsolutePath()+"/"+"china.vtpk";
        File file=new File(path);
        if(!file.exists()){
            Toast.makeText(view.getContext(),"离线地图不存在",Toast.LENGTH_SHORT).show();
        }else{
            VectorTileCache tileCache = new VectorTileCache(path);
            tileCache.loadAsync();
            tileCache.addLoadStatusChangedListener(new LoadStatusChangedListener() {
                @Override
                public void loadStatusChanged(LoadStatusChangedEvent loadStatusChangedEvent) {
                    LoadStatus loadStatus=loadStatusChangedEvent.getNewLoadStatus();
                    if(loadStatus==LoadStatus.LOADED){
                        //离线文件加载成功
                        ArcGISVectorTiledLayer localTiledLayer = new ArcGISVectorTiledLayer(tileCache);
                        localTiledLayer.setName("离线vtpk");
                        localTiledLayer.setVisible(true);
                        //此层的不透明度,需要是0.0-1.0范围内的值,1.0表示完全不透明
                        localTiledLayer.setOpacity(1.0f);
                        /***不显示Esri LOGO*/
                        mapView.setAttributionTextVisible(false);
                        Basemap basemap = new Basemap(localTiledLayer);
                        arcGISMap=new ArcGISMap(basemap);
                        mapView.setMap(arcGISMap);
                    }else if(loadStatus==LoadStatus.FAILED_TO_LOAD){
                        //离线文件加载失败
                        Toast.makeText(view.getContext(),"离线文件加载失败",Toast.LENGTH_LONG).show();
                    }
                }
            });
        }
    }

注意

1. 使用方法

String path =this.getApplicationContext().getFilesDir().getAbsolutePath()+"/"+“china.vtpk”;
时,尽管文件是存在的,但是这个文件离线加载不成功。必须使用this.getFilesDir().getAbsolutePath()+"/"+“china.vtpk”;才能成功加载。

2. vtpk文件可从https://gitee.com/gis-luq/RuntimeViewer处下载

3.效果如下:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值