【技术贴】ArcGIS Runtime for Xamarin 使用SPK构建逼真的三维场景

ArcGIS Runtime for Xamarin 使用SPK构建逼真的三维场景

SPK是一个重要的三维格式,SPK基于开源标准I3S,ArcGIS Runtime 很好的支持了SPK,这样可让桌面端,移动端都能体验到逼真炫酷,流畅的三维场景。网络


ArcGIS Runtime中SPK类型的三维的图层就经过ArcGISSceneLayer对象来加载的。SceneLayer是一个专门用来显示三维图层的类。他既能够加载在线的Portal for ArcGIS 中的三维图层,也能够使用SPK做为数据源。经过SceneLayer得到关于三维图层的一些属性,好比图层是否可见,图层的范围,图层透明度等。这个对象是咱们从此作开发会常常要用的一个对象。布局

ArcGISSceneLayer有一个重要的属性Source,这个属性须要置顶一个Url对象,Url既能够是在线的网络服务,也能够是本地的spk数据。spa


动手环节3d

接下里咱们就详细的演示一下ArcGIS Runtime for .NET 开发一个加载SPK的 Android应用。对象

启动VS2015 选择ArcGIS Runtime App(Android)模板。工程命名为LoadSPKDemo,以下图。blog


在创建好的工程里,修改布局文件,布局文件的位置以下图开发


只须要把原来的MapView 改为SceneView 就能够,这样二维的场景马上就变成了三维的地球了,以下图:it

 

在这里补充一个知识点,什么是SceneView。模板

SceneView 是三维场景的一个重要的对象,他是用户查看三维场景的一个入口,就像是一个展现三维内容的窗体,可视化三维内容。用户进行三维的操做和交互都是经过SceneView来进行的。SceneView包含了许多重要的属性方法,好比相机Camera,和内容对象,临时图层。也提供了不少的方法好比:SetViewpointCamera来切换视角,识别图层使用:IdentifyLayersAsync(Point,Double, Boolean, Int64),总之凡是展现和用户交互的属性方法,开发者均可以在这个对象里找。可视化

三维场景构建好了,就须要添加SPK数据,打开MainActivity文件,在OnCreate 方法中加入以下代码 :


代码很简单,只须要短短几行代码就完成了SPK的加载。在这里也须要补充说明一个重要的对象 Scene。

若是说SceneView是内容的展示者,那么Scene就是要展示的内容。底图,操做图层,书签,高程表面都是三维展现内容要素,一个SceneView只能有一个Scene,而一个Scene能够有多个底图,图层,书签,以及影像, SceneView一个负责显示,交互,一个负责逻辑内容,这也充分的体现了MVVM模式,UI逻辑分开。

一样Scene也包个相关的属性和方法,如basemap 是要添加的底图,baseface是要添加的高程图层,以及书签等等,也就是能够说,凡是三维场景要展现的内容,都要添加到Scene中,才能在场景里使用和展示。因此咱们须要将pArcGISSceneLayer这个对象添加到Scene中。

到此这个简单价值SPK Demo 就完成了,咱们运行起来看一下;

VS中选择要运行的设备


程序运行起来就能够看到咱们的SPK数据成功加载了。其实整个过程仍是很是简单的。


你还能作什么?

ArcGISRuntime 能够实现丰富多样的三维场景,你们不妨试试。


为什么找不到ArcGIS Runtimefor Xamarin

随着ArcGIS Runtime 100 版本的发布,已经有原来独立的SDK 合并到ArcGIS Runtime for .NET 中了。


ArcGISRuntime for Xamarin 有什么好处?

使用ArcGIS Runtime forXamarin 开发天然在跨平台上有很大的优点,Xamarin 是原生的跨平台。下图是今年开发这大会上的案例。开发这大会上的案例是一个桌面的WPF,应用程序。右边的移动Android 应用迁移过去的,能够绝不夸张的说,整个迁移过程没有用10分钟。是否是真的很提升生产力。