ArcGis loads tif, tpk, shp format files

1. Tool method to determine whether the file exists

/**
     * 判断文件是否存在
     * @param strFile
     * @return
     */
    public static boolean fileIsExists(String strFile){
        try{
            File f=new File(strFile);
            if(!f.exists()){
                return false;
            }

        }catch (Exception e){
            return false;
        }
            return true;
    }

2. Load tif format file

//文件路径 (根目录+文件夹)
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/333333/22.tif";
        Raster raster = new Raster(path);
        if (Uilte.fileIsExists(path)) {
            toast("tif文件存在");
            // 添加特征层到地图
            raster.loadAsync();
            raster.addDoneLoadingListener(new Runnable() {
                @Override
                public void run() {
                    // 创建一个栅格图层
                    RasterLayer mRasterLayer = new RasterLayer(raster);
                    // 添加光栅作为操作层0.
                    map.getOperationalLayers().add(mRasterLayer);
                }
            });
        } else {
            toast("文件不存在");
        }

3. Load tpk format file

        //根目录+文件
        String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/333333" + "/测试数据1.tpk";
        //程序的路径+文件
        //String path =getExternalFilesDir(null) + "/qqq.tpk";
        if (Uilte.fileIsExists(path)) {
            Log.e("tpk", "文件存在");
            // 从本地存储加载tile缓存
            TileCache tileCache = new TileCache(path);
            // 使用平铺缓存区来设置视图点
            tileCache.addDoneLoadingListener(() -> mMapView.setViewpoint(new Viewpoint(tileCache.getFullExtent())));
            // 创建一个平铺层,并将其添加为基础地图
            ArcGISTiledLayer tiledLayer = new ArcGISTiledLayer(tileCache);
            //设置成地图的底图
            map.setBasemap(new Basemap(tiledLayer));
            //设置成图层添加上去
            //map.getOperationalLayers().add(tiledLayer);
        } else {
            Log.e("tpk", "文件不存在");
        }
    

4. Load shp format files

String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/333333/2.shp";
        // 使用shapefile特性表创建一个特性层
        if (Uilte.fileIsExists(path)) {
            toast("shp文件存在");
            ShapefileFeatureTable shapefileFeatureTable = new ShapefileFeatureTable(path);
            featureLayer = new FeatureLayer(shapefileFeatureTable);
            // 添加特征层到地图
            shapefileFeatureTable.loadAsync();
            shapefileFeatureTable.addDoneLoadingListener(new Runnable() {
                @Override
                public void run() {
                    //shp格式的文件名
                    String name = shapefileFeatureTable.getTableName();
                    Log.e("name", name);
                    if (featureLayer.getFullExtent() != null) {
                        mMapView.setViewpointGeometryAsync(featureLayer.getFullExtent());
                    } 
                    map.getOperationalLayers().add(featureLayer);
                }
            });
        }
        // 创建 点 线
        //SimpleLineSymbol lineSymbol = new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, Color.RED, 10.0f);
        //SimpleFillSymbol fillSymbol = new SimpleFillSymbol(SimpleFillSymbol.Style.SOLID, Color.YELLOW, lineSymbol);
        //创建渲染器
        //SimpleRenderer renderer = new SimpleRenderer();
        //在图层上设置渲染器
        //featureLayer.setRenderer(renderer);

 

Guess you like

Origin blog.csdn.net/qq_28845393/article/details/112978572