zoukankan      html  css  js  c++  java
  • ArcGIS runtime 100 加载多种离线数据

      100.几忘记了,应该是.11。从毕设项目把离线数据的加载扒了下来,做的时候java和runtime都不会,边学边做,会有很多不规范的地方,后面做完了也懒得改了,仅供大家参考。

    //加载栅格数据
    public static void addReaster(Context context, MapView mMapView, String fileName) {
       rasterLayer = new RasterLayer(new Raster(context.getExternalFilesDir(null) + "/JQHMap/RasterImage/" + fileName));
       mMapView.getMap().getOperationalLayers().add(rasterLayer);
       rasterLayer.loadAsync();
       rasterLayer.addDoneLoadingListener(new Runnable() {
       @Override
       public void run() {
          try {
             mMapView.setViewpointGeometryAsync(rasterLayer.getFullExtent(), 10);   
              } catch (Exception e) {
              Log.e(TAG, e.toString() + "addReaster");
                      }
                }
         });
    }
    //加载tpk、tpkx
    public static void addTpk(Context context, MapView mMapView, String tpkFileName) {
    TileCache mainTileCache = new TileCache(context.getExternalFilesDir(null) + "/JQHMap/RasterImage/" + tpkFileName);
    mainTileCache.loadAsync();
    mainTileCache.addDoneLoadingListener(new Runnable() {
    @Override
    public void run() {
    if (mainTileCache.getLoadStatus() == LoadStatus.LOADED) {
    ArcGISTiledLayer arcGISTiledLayer = new ArcGISTiledLayer(mainTileCache);
    arcGISTiledLayer.setName(tpkFileName);
    mMapView.getMap().getOperationalLayers().add(arcGISTiledLayer);
    arcGISTiledLayer.addDoneLoadingListener(new Runnable() {
    @Override
            public void run() {
                        try {
                           if (arcGISTiledLayer.getLoadStatus() == LoadStatus.LOADED) {
                             mMapView.setViewpointGeometryAsync(arcGISTiledLayer.getFullExtent(), 10); 
                         }
                       } catch (Exception e) {
                  Log.e(TAG, e.toString() + "addTPK");
                }
              }
            });
          }
        }
      });
    }
    //添加vtpk
    public static void addVtpk(Context context, MapView mapView, String vtpkName) {
       VectorTileCache vectorTileCache = new VectorTileCache(context.getExternalFilesDir(null) + "/JQHMap/VectorData/" + vtpkName);
       vectorTileCache.loadAsync();
       vectorTileCache.addDoneLoadingListener(new Runnable() {
            @Override
            public void run() {
                if (vectorTileCache.getLoadStatus() == LoadStatus.LOADED) {
                   ArcGISVectorTiledLayer arcGISVectorTiledLayer = new ArcGISVectorTiledLayer(vectorTileCache);
                   arcGISVectorTiledLayer.setName(vtpkName);
                   mapView.getMap().getOperationalLayers().add(arcGISVectorTiledLayer);
                   arcGISVectorTiledLayer.addDoneLoadingListener(new Runnable() {
                   @Override
                   public void run() {
                      try {
                          if (arcGISVectorTiledLayer.getLoadStatus() == LoadStatus.LOADED) {
                              mapView.setViewpointGeometryAsync(arcGISVectorTiledLayer.getFullExtent(), 10); 
                           }
                      } catch (Exception e) {
                           Log.e(TAG, e.toString() + "addVtpk");
                       }
                   }
              });
          }
        }
            });
        }
     //添加shp数据
        public static void addShp(Context context, MapView mapView, String shpName) {
            ShapefileFeatureTable shapefileFeatureTable = new ShapefileFeatureTable(context.getExternalFilesDir(null) + 
    "/JQHMap/VectorData/" + shpName);
            ShapFileOperationUtils.loadVectorFile(context, mapView, null, shapefileFeatureTable, null, "shp");
        }
    //添加kml
    public static void addKMl(Context context, MapView mapView, String kmlName) {
           KmlDataset mainTileCache = new KmlDataset(context.getExternalFilesDir(null) + "/JQHMap/VectorData/" + kmlName);
            KmlLayer kmlLayer = new KmlLayer(mainTileCache);
            kmlLayer.setName(kmlName);
            mapView.getMap().getOperationalLayers().add(kmlLayer);
            kmlLayer.addDoneLoadingListener(new Runnable() {
                @Override
                public void run() {
                    try {
                        mapView.setViewpointGeometryAsync(kmlLayer.getFullExtent(), 10);//padding左右边界
                    } catch (Exception e) {
                        Log.e(TAG, e.toString() + "addRaster");
                    }
                }
            });
        }
    //添加geodatabase
    public static void addGeodatabase(Context context, MapView mapView, String geodatabaseName) {
       final Geodatabase geodatabase = new Geodatabase(context.getExternalFilesDir(null) + "/JQHMap/VectorData/" + geodatabaseName);
       geodatabase.loadAsync();
       geodatabase.addDoneLoadingListener(() -> {
            if (geodatabase.getLoadStatus() == LoadStatus.LOADED) {
                List<GeodatabaseFeatureTable> geodatabaseFeatureTables = geodatabase.getGeodatabaseFeatureTables();
                for (int i = 0; i < geodatabaseFeatureTables.size(); i++) { 
                    GeodatabaseFeatureTable geodatabaseFeatureTable = geodatabaseFeatureTables.get(i);
                    geodatabaseFeatureTable.loadAsync();
                    ShapFileOperationUtils.loadVectorFile(context, mapView, geodatabaseFeatureTable, null, null, "geodatabase");
                }
            } 
       });
    }
    //添加mmpk
    public static void addMMPK(Context context, MapView mapView, String mmpkName) {
            final MobileMapPackage mobileMapPackage = new MobileMapPackage(context.getExternalFilesDir(null) + 
    "/JQHMap/VectorData/" + mmpkName);
            mobileMapPackage.loadAsync();
            mobileMapPackage.addDoneLoadingListener(() -> {
                if (mobileMapPackage.getLoadStatus() == LoadStatus.LOADED) {
                    List<ArcGISMap> arcGISMaps = mobileMapPackage.getMaps();
                    ArcGISMap arcGISMap = arcGISMaps.get(0);
                    mapView.setMap(arcGISMap);
                }
            });
     }

    本文来自博客园,作者:季夏啸华,转载请注明原文链接:https://www.cnblogs.com/jiang2020/p/15744895.html

  • 相关阅读:
    稳扎稳打Silverlight(13) 2.0交互之鼠标事件和键盘事件
    稳扎稳打Silverlight(17) 2.0数据之详解DataGrid, 绑定数据到ListBox
    再接再厉VS 2008 sp1 + .NET 3.5 sp1(2) Entity Framework(实体框架)之详解 Linq To Entities 之一
    稳扎稳打Silverlight(8) 2.0图形之基类System.Windows.Shapes.Shape
    稳扎稳打Silverlight(11) 2.0动画之ColorAnimation, DoubleAnimation, PointAnimation, 内插关键帧动画
    稳扎稳打Silverlight(21) 2.0通信之WebRequest和WebResponse, 对指定的URI发出请求以及接收响应
    稳扎稳打Silverlight(16) 2.0数据之独立存储(Isolated Storage)
    稳扎稳打Silverlight(9) 2.0画笔之SolidColorBrush, ImageBrush, VideoBrush, LinearGradientBrush, RadialGradientBrush
    稳扎稳打Silverlight(23) 2.0通信之调用WCF的双向通信(Duplex Service)
    游戏人生Silverlight(1) 七彩俄罗斯方块[Silverlight 2.0(c#)]
  • 原文地址:https://www.cnblogs.com/jiang2020/p/15744895.html
Copyright © 2011-2022 走看看