ArcGIS Runtime for Android 5 加载地图
Posted 我也是个傻瓜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ArcGIS Runtime for Android 5 加载地图相关的知识,希望对你有一定的参考价值。
经过前期的Android Studio软件部署、Gradle构建配置、项目认识、模拟调试等,本文才正式使用ArcGIS Runtime for Android的SDK,我们可以参考官网教程。
1、申请Key
注册一个ESRI账号,并申请一个开发者API Key(很长的字符串)。
2、新建项目
新建一个空的安卓项目。
设置好项目位置,语言选择Kotlin(推荐),SDK版本选择API 23。
我们将逐个修改和编辑下面的这些文件。
3、配置Gradle
配置和同步Gradle比较关键的步骤。
在模块级build.gradle增加视图绑定viewBinding、排除重复项exclude设置(现在不理解也没关系,照做就行,后面慢慢就懂了)
//启用视图绑定 buildFeatures viewBinding true //排除文件重复项 packagingOptions exclude \'META-INF/DEPENDENCIES\' …… // 地图arcgis runtime implementation \'com.esri.arcgisruntime:arcgis-android:100.15.1\'
在 settings.gradle 文件中,添加Esri 的 Maven 远程仓库的 URL。
// 远程仓库 maven url \'https://esri.jfrog.io/artifactory/arcgis\'
当gradle修改后,会自动弹出同步的消息,也可以点击工具的"Sync Project with Gradle Files".
在线同步完成后,就可以写界面和后台代码了。
4、编写代码
代码包括配置设置、前台代码、后台代码三部分。
(1)联网权限配置设置。在AndroidManifest.xml中增加联网的权限(因为要访问在线的地图)。
<!--申请的用户权限--> <uses-permission android:name="android.permission.INTERNET" /> <!--依赖的外部硬件--> <uses-feature android:glEsVersion="0x00020000" android:required="true" />
(2)前面界面。在activity_main.xml中添加ArcGIS Runtime的MapView组件。
<com.esri.arcgisruntime.mapping.view.MapView android:id="@+id/mapView" android:layout_ android:layout_ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" />
(3)后台功能。在MainActivity实现地图加载功能。
package com.gis.displaymap import android.os.Bundle import androidx.appcompat.app.AppCompatActivity // 导入命名空间 import com.esri.arcgisruntime.ArcGISRuntimeEnvironment import com.esri.arcgisruntime.layers.ArcGISTiledLayer import com.esri.arcgisruntime.mapping.ArcGISMap import com.esri.arcgisruntime.mapping.Basemap import com.esri.arcgisruntime.mapping.Viewpoint import com.esri.arcgisruntime.mapping.view.MapView import com.gis.displaymap.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() override fun onCreate(savedInstanceState: Bundle?) super.onCreate(savedInstanceState) setContentView(activityMainBinding.root) setApp() setupMap() private val activityMainBinding by lazy ActivityMainBinding.inflate(layoutInflater) private val mapView: MapView by lazy activityMainBinding.mapView override fun onPause() mapView.pause() super.onPause() override fun onResume() super.onResume() mapView.resume() override fun onDestroy() mapView.dispose() super.onDestroy() private fun setApp() //设置Key ArcGISRuntimeEnvironment.setApiKey("AAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") private fun setupMap() // 创建地图 val url= "http://map.geoq.cn/arcgis/rest/services/ChinaOnlineCommunity/MapServer" val arcGISTiledLayer = ArcGISTiledLayer(url) val map = ArcGISMap(Basemap(arcGISTiledLayer)) // 设置MapView的地图 mapView.map = map // 设置初始位置 mapView.setViewpoint(Viewpoint(30.67, 104.06, 720000.0))
5、调试运行
启动程序即可。
如果是在模拟器运行浏览地图,按住Ctrl+鼠标滑轮对视图进行放大或缩小。
作者:我也是个傻瓜
出处:http://www.cnblogs.com/liweis/
签名:成熟是一种明亮而不刺眼的光辉。
以上是关于ArcGIS Runtime for Android 5 加载地图的主要内容,如果未能解决你的问题,请参考以下文章
Arcgis Runtime for andriod 100 加载geodatabase
Arcgis Runtime for andriod 100 加载TPK
Arcgis Runtime for andriod 100 Simple marker symbol
ArcGIS Runtime for Android 5 加载地图