湖北省建设工程造价管理站网站,服务器和电脑主机的区别,新密网站建设,商城网站前台模板免费下载一、概述 ArcGIS是由Esri开发的地理信息系统#xff08;GIS#xff09;软件。它用于制图、空间分析和数据可视化。ArcGIS允许用户以各种格式创建、管理、分析和共享地理信息。它通常用于城市规划、环境管理和应急响应等领域。该软件包括一系列工具#xff0c;用于创建地图、…一、概述 ArcGIS是由Esri开发的地理信息系统GIS软件。它用于制图、空间分析和数据可视化。ArcGIS允许用户以各种格式创建、管理、分析和共享地理信息。它通常用于城市规划、环境管理和应急响应等领域。该软件包括一系列工具用于创建地图、进行空间分析以及生成报告和可视化。ArcGIS提供了丰富的功能和功能使用户能够更好地理解和利用地理空间数据。 二、案例 注本案例工具使用Android Studio Hedgehog | 2023.1.1 Patch 2 版本ArcGIS采用arcgis-android:100.13.0版本 1、配置文件
1settings.gradle文件 添加如下代码 maven {url uri(https://maven.aliyun.com/repository/google)url uri(https://maven.aliyun.com/repository/jcenter)url uri(https://maven.aliyun.com/repository/mavenCentral)url uri(https://maven.aliyun.com/repository/gradle-plugin)url uri(https://maven.aliyun.com/nexus/content/repositories/releases/)url uri(https://jitpack.io)url uri(https://esri.jfrog.io/artifactory/arcgis)} 2build.gradle文件 在android块中添加如下代码 // 设置与Java 8语言特性的兼容性compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}// 启用视图绑定view binding功能buildFeatures {viewBinding true}// 排除META-INF\DEPENDENCIES文件的重复项,防止在输出中多次包含相同的文件而导致编译错误packaging{exclude(META-INF/DEPENDENCIES)exclude(META-INF/LGPL2.1)exclude(META-INF/LICENSE)exclude(META-INF/NOTICE)} 在dependencies块中引入arcgis-android:100.13.0
implementation(com.esri.arcgisruntime:arcgis-android:100.13.0) 3AndroidManifest.xml文件 在文件中添加如下权限 !-- 访问网络权限 --uses-permission android:nameandroid.permission.INTERNET /!-- 访问网络状态权限 --uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE /!-- 添加粗略定位权限 --uses-permission android:nameandroid.permission.ACCESS_COARSE_LOCATION /!-- 添加精确定位权限 --uses-permission android:nameandroid.permission.ACCESS_FINE_LOCATION /!-- 读写外部存储权限 --uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE /uses-permission android:nameandroid.permission.READ_EXTERNAL_STORAGE /!-- 允许程序在手机屏幕关闭后后台进程仍然运行 --uses-permission android:nameandroid.permission.WAKE_LOCK /!-- 添加OpenGL2.0支持 --uses-feature android:glEsVersion0x00020000 android:requiredtrue tools:ignoreWrongManifestParent /!-- 用户支持 --supports-screensandroid:smallScreenstrueandroid:normalScreenstrueandroid:largeScreenstrueandroid:xlargeScreenstrueandroid:anyDensitytrue / 2、布局文件 在activity_main.xml添加ArcGIS组件代码如下
?xml version1.0 encodingutf-8?
androidx.constraintlayout.widget.ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivitycom.esri.arcgisruntime.mapping.view.MapViewandroid:idid/mapViewandroid:layout_widthmatch_parentandroid:layout_heightmatch_parent //androidx.constraintlayout.widget.ConstraintLayout 3、Java代码 在MainActivity.java文件中编写代码 1添加组件
private MapView mMapView; 2注册组件
mMapView findViewById(R.id.mapView);ArcGISMap map new ArcGISMap(Basemap.Type.TOPOGRAPHIC, 34.056295, -117.195800, 16);mMapView.setMap(map); 3生命周期控制 Overrideprotected void onPause(){mMapView.pause();super.onPause();}Overrideprotected void onResume(){super.onResume();mMapView.resume();}Overrideprotected void onDestroy() {super.onDestroy();mMapView.dispose();} Java代码总览如下
import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import com.esri.arcgisruntime.ArcGISRuntimeEnvironment;
import com.esri.arcgisruntime.mapping.ArcGISMap;
import com.esri.arcgisruntime.mapping.Basemap;
import com.esri.arcgisruntime.mapping.view.MapView;public class MainActivity extends AppCompatActivity {private MapView mMapView;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mMapView findViewById(R.id.mapView);ArcGISMap map new ArcGISMap(Basemap.Type.TOPOGRAPHIC, 34.056295, -117.195800, 16);mMapView.setMap(map);}Overrideprotected void onPause(){mMapView.pause();super.onPause();}Overrideprotected void onResume(){super.onResume();mMapView.resume();}Overrideprotected void onDestroy() {super.onDestroy();mMapView.dispose();}
}
4、运行结果 此时若没有报错运行程序已经可以展示地图。效果如下 按住鼠标左键可以拖动地图同时按住Ctrl键和鼠标左键可以缩放地图