ArcGIS for Android Runtime 100 升级实践(一)地图加载,图形和符号初始化

ArcGISRuntime100.0带来重大改进,包括跨平台支持和3D地图加载。本文聚焦MMPK移动地图包的使用,它以压缩的MobileGDB存储数据,体积小且包含完整要素,适合查询和分析,能整合多种地图和数据资源。
摘要由CSDN通过智能技术生成

      去年的Esri大会,随着最新的ArcGIS 10.5产品的发布,全新的ArcGIS Runtime 100.0也随之发布。ArcGIS Runtime 100.0 可谓是有了个天翻地覆的改进,比如跨平台、3D地图的加载以及多样的地图离线选择等。其实这里面我最感兴趣的是可以加载MMPK数据,MMPK是一种全新的移动地图包,有很多创新和优势,总结起来是一下几点:

  1. 数据存储于压缩的Mobile GDB中,相比起切片数据,体积小了很多;
  2. 保存了所有的fearture要素,底图上展示的都是要素,可供查询和分析;
  3. 可以将所有地图和数据资源打包,
      总结下,就是通过一个文件实现了之前TPK和geodatabase加起来实现的功能,并且体积更小,速度更快。这对于经常要用多个切片数据,时常面临着移动端内存卡空间不足的我来说,绝对是个福音。

      然而,Rumtime100里对大量的接口,类和方法就行了更改,如果直接移植到我们的产品上,那绝对是万里江山一片红,而且性能的稳定性也没经过太多测试,于是,我想慢慢实践、测试下,了解后再移植到产品里。
      本篇是一篇初步实践篇,通过将之前我写的空间分析的demo为例(博客地址http://blog.csdn.net/bit_kaki/article/details/76581848)进行移植尝试,获取对于ArcGIS Runtime 100.0的初步印象。

一、环境配置
      
      和之前ArcGIS所需环境差不多,在project的build.gradle里添加url:
allprojects {
    repositories {
        jcenter()
        maven {
            url 'http://esri.bintray.com/arcgis'
        }
    }
}

      然后在module的build.gradle里添加compile:
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:25.3.1'
 //   compile 'com.esri.arcgis.android:arcgis-android:10.2.8'
    compile 'com.esri.arcgisruntime:arcgis-android:100.0.0'
}

      注意下面个是Runtime100,被我注释掉的是之前用的10.2.8

二、导入包
      
      等gradle更新完毕了以后,进入我们的主activity页面会看到这样的情况:

  
      祖国江山一片红,可谓凄惨。
      不过没关系,这主要是原来10.2版本的包名和现在的包名不一样导致的。我们需要将以前导入的类删掉,重新导入一下:


      重新导入包以后,我们会发现,呃,好像好了一点,但依然是祖国江山半壁红。


      其实是Runtime100里很多类和方法都进行了更改,比如上图里我们可以看到之前常用的Line和GraphicsLayer类都已经不存在了,只能用其他类替代;另外改变了很多方法,也新增了很多方法,所以我们就一步一步来看看吧。

三、地图和图层的加载(MapView和Layer)

      首先我们先回顾下10.2里的MapView和Layer的关系。
      在10.2里MapView直接继承于ViewGroup类,本身就是地图内容的展示容器,使用时候直接在MapView可以加载各种基础底图、业务图层和绘制图层。





      但是在Runtime100里,增加了3D地图显示的功能。为了满足大多数人的使用习惯,Esri依然采用MapView类作为2D地图的展示容器,新增了SceneView类作为3D地图的展示容器,然后这两个类共同继承于一个叫GeoView的基类。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值