使用工具
Android Studio 2.3
Arcgis for Androdid SDK 100.4.0
环境配置
由于众所周知的网络原因通过Gradle 在线添加 路径自动配置Runtime
打开build.gradle (Project: )文件,在allprojects/repositories下添加路径字段url ‘https://esri.bintray.com/arcgis’,指向esri公共数据库
打开 build.gradle (Module: ).文件,在 dependencies 语句块下添加’compile 'com.esri.arcgisruntime:arcgis-android:100.4.0’动态添加runtime
会出现“faild to reslove”错误,因此需要下载离线SDK然后进行本地配置
-
下载 离线SDK,需要科学上网
-
配置Maven,在 Android studio 安装文件的gradle 文件目录下的repository目录下依次新建com-esri-arcgisruntime-arcgisandroid-100.3.0文件,将 下载好的离线SDK文件中的libs-aar文件夹下的.aar和.pos文件复制到新建文件夹内(如果某些低版本SDK未显示.pos文件需要到官网手动下载)
-
在build.gradle(Module)dependencies语句块中添加
compile 'com.esri.arcgisruntime:arcgis-android:100.3.0’语句 -
在build.gradle(progect)allProgectes语句块中添加mavenLocal()语句
-
单击Sync now 对gradle文件进行重构
完成配置
如图代表配置gradle成功
显示底图
- 在activity_main.xml文件中删除默认的<“TextView>结构,在其位置上替换为<com.esri.arcgisruntime.mapping.view.MapView
android:id="@+id/mapView"
android:layout_width=“match_parent”
android:layout_height=“match_parent”
>
</com.esri.arcgisruntime.mapping.view.MapView>"
设置其大小并在库中添加相应ID
效果如图,此时仅显示空的地图容器 - 打开应用manifest文件,为应用修改权限,提供使用访问网络权限
“
<"uses-permission android:name=“android.permission.INTERNET” />
<"uses-feature android:glEsVersion=“0x00020000” android:required=“true” />”
- 向地图容器中添加要显示的地图
在MainActivity.java文件中添加变量
private MapView mMapView;
创建地图视图,设置地图经纬度和显示级别(位置为太原师范学院位置)
mMapView =(MapView) findViewById(R.id.mapView);
ArcGISMap map = new ArcGISMap(Basemap.Type.TOPOGRAPHIC, 34.745723,112.711803,16);
mMapView.setMap(map);
重载流程控制语句
protected void onPause() {
mMapView.pause();
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
mMapView.resume();
}
@Override
protected void onDestroy() {
super.onDestroy();
mMapView.dispose();
}
显示效果如下
上述为相同显示级别下经纬度分别为34.745723,112.711803和34.056295, -117.195800的效果视图。由于地图取材于ArcOnline的数据库,该数据库中没有中国区域相应级别的地图,造成了相应的效果差异。