ArcGIS for Android Runtime100 基本操作(七)——三维地图初步使用

原创 2017年09月27日 14:09:42

      今年7月份,ArcGIS Runtime100总算推出第一个它的第一个资料片,哦不,更新版,ArcGIS Runtime100.1,也被称为Update 1。这个版本更新了一些API,填补了Runtime10.2和100之间的差距,修复了一些BUG以及新增几个功能。而新增功能里最让我们关注的就是Android SDK里也支持3D地图了。具体内容可以参见官网:https://developers.arcgis.com/android/latest/guide/release-notes.htm


      接下来,我们来初步探索下这个三维地图吧。


      首先,我们知道比如10.2来,Runtime100是用了一个GeoView类作为地图的基类直接继承于ViewGroup,然后MapView和SceneView分别作为二维和三维地图的容器继承于GeoView。对于SceneView,其关系为:




      然后同二维地图一样,三维地图的加载里采用了MVC架构,用SceneView类作为model,ArcGISScene类作为View。在三维地图里可以通过设置一个Camera类来控制自己的视角:




      从这点来说,其实把SceneView当做MapView,把ArcGISScene当做ArcGISMap就行,于是我们简单尝试下。首先是在XML文件里添加SceneView:


<com.esri.arcgisruntime.mapping.view.SceneView
    android:id="@+id/sceneview"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</com.esri.arcgisruntime.mapping.view.SceneView>

      然后是在对应View里:


sceneView = (SceneView) view.findViewById(R.id.sceneview);
arcGISScene = new ArcGISScene();
sceneView.setScene(arcGISScene);

      运行下,看看效果:




      可以看出其实SceneView的基本底图就是一个地球,然后我们给它设置个瓦片图层作为底图:


ArcGISTiledLayer arcGISTiledLayer = new ArcGISTiledLayer(
        "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer");
Basemap basemap=new Basemap(arcGISTiledLayer);
arcGISScene.setBasemap(basemap);

      数据源于官网发布的服务,详情可以去http://www.arcgis.com/home/gallery.html#c=esri&t=maps&o=modified&f=scenes看看。

      效果图:




      可以看出这其实就是把一个切片图层展示在地球上,可以进行三维操作而已。


      而对于真正的三维数据的地图层,官方给的例子是:



      可以看出基本思想是用ArcGISSceneLayer作为三维地图的图层,然而我按照这个例子运行后并没看到三维地图,包括使用官方中的一些三维地图服务,比如https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer。最后都没成功,但是在PC端确实能看到很好的效果。


      不知道有小伙伴成功过么?



      

版权声明:本文为博主原创文章,未经博主允许不得转载。

安卓智能地图开发与实施二十三:三维场景中的可视化 - ArcGIS Runtime SDK for Android(Version 100.1.0)

三维场景中的可视化三维场景(SceneView 、ArcGISScene)中具备更多的符号化方式来传递信息,包括SimpleMarkerSceneSymbol、ModelMarkerSymbol、Di...

安卓智能地图开发与实施十六:三维地图 - ArcGIS Runtime SDK for Android(Version 100.1.0)

三维地图三维地图多了一个维度来基于位置表达信息,100.1的版本中已经整合了完整的三维展示方案。新版本发布,我们先看效果...

《ArcGIS Runtime SDK for Android开发笔记》——(2)、Android Studio基本配置与使用

1、前言  在上一篇文章《Android Studio下载与安装》里我们已经介绍了Android Studio的下载与安装步骤,这一篇我们将针对Android Studio的基本常见使用做一个简单介绍...
  • esricd
  • esricd
  • 2015年09月17日 16:19
  • 1458

《ArcGIS Runtime SDK for Android开发笔记》——(9)、空间数据的容器-地图MapView

1、前言 在上一篇内容里介绍了 关于ArcGIS Android开发的未来(“Quartz”版Beta)相关内容,期间也提到了关于API接口的重构,开发思路的调整,根据2015UC资料也可以知道新版...
  • esricd
  • esricd
  • 2015年11月30日 12:28
  • 2460

安卓智能地图开发与实施十七:使用天地图 - ArcGIS Runtime SDK for Android(Version 100.1.0)

WebTiledLayer100.1的新版本最大的亮点是三维,同时新加入了图层类型和可扩展的切片图层WebTiledLayer。继承自ServiceImageTiledLayer。BingMapsLa...

《ArcGIS Runtime SDK for Android开发笔记》——问题集:使用TextSymbol做标注显示乱码

1、前言 在14年的时候写过一篇博客关于ArcGIS for Android 10.1.1API 中文标注导致程序异常崩溃问题,但是当时并没有很好的解决这样一个问题,也并没有深入研究分析这样的一个异...
  • esricd
  • esricd
  • 2015年09月24日 20:54
  • 1966

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

ArcGIS Runtime for Xamarin 使用SPK构建逼真的三维场景 SPK是一个重要的三维格式,SPK基于开源标准I3S,ArcGIS Runtime 很好的支持了SPK,这样可以让...

安卓智能地图开发与实施二:开发环境准备 - ArcGIS Runtime SDK for Android(Version 100.0.0)

一、 ArcGIS Runtime功能介绍 随着ArcGIS 10.5的发布,WebGIS已经深入身心,而围绕在ArcGIS地理平台的Apps,特别是开发定制部分,很大程度上落到了ArcGIS Ru...

安卓智能地图开发与实施十五:离线与同步 - ArcGIS Runtime SDK for Android(Version 100.0.0)

离线与同步(GeodatabaseSyncTask)针对编辑,上一节中凡事离线的,各种添加、更新、删除等都是针对终端上存储的离线数据。可以在没有网络的环境下完成,当具备网络时,还需同步到ArcGIS ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ArcGIS for Android Runtime100 基本操作(七)——三维地图初步使用
举报原因:
原因补充:

(最多只允许输入30个字)