ArcGIS Runtime for .Net Quartz开发探秘(四):加载本地文件

  1. 云栖社区>
  2. 博客>
  3. 正文

ArcGIS Runtime for .Net Quartz开发探秘(四):加载本地文件

曲江小白龙 2017-09-13 17:20:00 浏览1020
展开阅读全文

TilePackage.tpk

TilePackage是使用地图文档(mxd)制作的用于移动端底图的地图包,本质压缩的切片文件和地图文档。

ArcGISTiledLayer tpkfile = new ArcGISTiledLayer(new Uri(FilePath));  
myMapView.Map.OperationalLayers.Add(tpkfile);

VectorTilePackage(.vtpk)

Vtpk是使用ArcGIS Pro生成的矢量切片数据包,矢量切片包的介绍——矢量切片,集美貌与才华于一身的底图方案。这里只介绍矢量切片在移动端加载的方法.
ArcGISVectorTiledLayer avtl = new ArcGISVectorTiledLayer(new Uri(FilePath));  
myMapView.Map.Basemap.BaseLayers.Add(avtl);

.geodatabase文件

.geodatabase文件有两种生产制作方式,可以通过ArcMap预先制作,也可以通过API从ArcGIS Server下载。两种生产方式也代表着ArcGIS Runtime的两种数据流通模式,桌面模式和服务器模式。这里先给出加载方法。

Geodatabase gdb = await Geodatabase.OpenAsync(FilePath);  
foreach (var table in gdb.GeodatabaseFeatureTables)  
                    {  
                        var flayer = new FeatureLayer()  
                        {  
                            Id = filename,  
                            Name = filename,  
                            FeatureTable = table,  
                        };  
                        myMapView.Map.OperationalLayers.Add(flayer);  
                    } 

Scene LayerPackage(.slpk)

Scene LayerPackage即场景图层包,一个符合I3S规范的节点信息和资源打包到一起的一个压缩包文件,目前主要支持3D模型、集成网格、点以及点云数据。slpk主要用于从文件加载三维内容,下面给出slpk的加载方式。

ArcGISSceneLayer sl = new ArcGISSceneLayer();  
sl.Source = new Uri(FilePath);  
this.mySceneView.Scene.OperationalLayers.Add(sl); 

Mobile MapPackage (.mmpk)

Mobile MapPackage是ArcGIS推出的一种多终端应用的离线地图文件,移动地图表既能解决移动端符号渲染问题,又能结合矢量地图解决地图包过大的问题,还能支持离线的查询,分析各种场景。

 .mmpk的内容与上述几个本地文件略有不同,mmpk存储的不仅仅是图层内容,从加载代码中就可以看到,mmpk中存储的是ArcGISMap对象。

MobileMapPackage mapPackage = await MobileMapPackage.OpenAsync(FilePath);  
ArcGISMap map = mapPackage.Maps[0];  
myMapView.Map = map;  









  

网友评论

登录后评论
0/500
评论
曲江小白龙
+ 关注