Android | ArcGIS入门

news/发布时间2024/5/14 12:49:58

一、概述

        ArcGIS是由Esri开发的地理信息系统(GIS)软件。它用于制图、空间分析和数据可视化。ArcGIS允许用户以各种格式创建、管理、分析和共享地理信息。它通常用于城市规划、环境管理和应急响应等领域。该软件包括一系列工具,用于创建地图、进行空间分析以及生成报告和可视化。ArcGIS提供了丰富的功能和功能,使用户能够更好地理解和利用地理空间数据。

二、案例

注:本案例工具使用Android Studio Hedgehog | 2023.1.1 Patch 2 版本,ArcGIS采用arcgis-android:100.13.0版本

1、配置文件

(1)settings.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")}

(2)build.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")

(3)AndroidManifest.xml文件

        在文件中添加如下权限:

    <!-- 访问网络权限 --><uses-permission android:name="android.permission.INTERNET" /><!-- 访问网络状态权限 --><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- 添加粗略定位权限 --><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><!-- 添加精确定位权限 --><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><!-- 读写外部存储权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><!-- 允许程序在手机屏幕关闭后后台进程仍然运行 --><uses-permission android:name="android.permission.WAKE_LOCK" /><!-- 添加OpenGL2.0支持 --><uses-feature android:glEsVersion="0x00020000" android:required="true" tools:ignore="WrongManifestParent" /><!-- 用户支持 --><supports-screensandroid:smallScreens="true"android:normalScreens="true"android:largeScreens="true"android:xlargeScreens="true"android:anyDensity="true" />

2、布局文件

        在activity_main.xml添加ArcGIS组件,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><com.esri.arcgisruntime.mapping.view.MapViewandroid:id="@+id/mapView"android:layout_width="match_parent"android:layout_height="match_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键和鼠标左键可以缩放地图)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.bcls.cn/XuQM/1198.shtml

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

Google刚刚推出了图神经网络Tensorflow-GNN

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Spring Cloud Gateway 中文文档

Spring Cloud Gateway 中文文档 官方文档 该项目提供了一个建立在Spring Ecosystem之上的API网关&#xff0c;包括&#xff1a;Spring 5&#xff0c;Spring Boot 2和Project Reactor。 Spring Cloud Gateway旨在提供一种简单而有效的方式来对API进行路由&#xff0c;并为他们提…

PHP支持的伪协议

php.ini参数设置 在php.ini里有两个重要的参数allow_url_fopen、allow_url_include。 allow_url_fopen:默认值是ON。允许url里的封装协议访问文件&#xff1b; allow_url_include:默认值是OFF。不允许包含url里的封装协议包含文件&#xff1b; 各协议的利用条件和方法 php:/…

鸿蒙应用模型开发-更新SDK后报错解决

更新SDK后提示 “ohos.application.Ability”/“ohos.application.AbilityStage”等模块找不到或者无相关类型声明 问题现象 更新SDK后报错“Cannot find module ‘ohos.application.AbilityStage’ or its corresponding type declarations”&#xff0c;“Cannot find modu…

D9741——用于也收路像机和笔记本电的等设备上的直流转换器。在便携式的仪器设备上。低电压输入时误操作保护电路, 定时闩锁、短路保护电路等功能

D9741是一块脉宽调制方三用于也收路像机和笔记本电的等设备上的直流转换器。在便携式的仪器设备上。 主要特点: 高精度基准电路 定时门锁、短路保护电路 低电压输入时误操作保护电路 输出基准电压(2.5V 超过工作范围能进行自动校正 封装形式: SOP16 应用: 电视摄像机 笔记本电…

【leetcode】深搜、暴搜、回溯、剪枝(C++)2

深搜、暴搜、回溯、剪枝&#xff08;C&#xff09;2 一、括号生成1、题目描述2、代码3、解析 二、组合1、题目描述2、代码3、解析 三、目标和1、题目描述2、代码3、解析 四、组合总和1、题目描述2、代码3、解析 五、字母大小写全排列1、题目描述2、代码3、解析 六、优美的排列1…

DDoS攻击激增,分享高效可靠的DDoS防御方案

当下DDoS攻击规模不断突破上限&#xff0c;形成了 "网络威胁格局中令人不安的趋势"。专业数据显示&#xff0c;对比2022年上半年与2023年上半年&#xff0c;所有行业的DDoS攻击频率增加了314%。其中零售、电信和媒体公司遭受的攻击规模最大&#xff0c;三个垂直行业的…

Flex布局简介及微信小程序视图层View详解

目录 一、Flex布局简介 什么是flex布局&#xff1f; flex属性 基本语法和常用属性 Flex 布局技巧 二、视图层View View简介 微信小程序View视图层 WXML 数据绑定 列表渲染 条件渲染 模板 WXSS 样式导入 内联样式 选择器 全局样式与局部样式 WXS 示例 注意事项…

Qt程序设计-中英文输入法软键盘实现

本文讲解Qt中英文输入法软键盘实现。 实现目标 中英文切换、大小写切换、特殊字符切换、 使用谷歌中文字库txt文档。 在QWidget窗体上实现,可视化编写软键盘。 实现过程 准备工作:下载谷歌中文字库,按键的图片 创建QWidget项目,在主窗体上添加一个按钮,用于弹出软键…

【RT-DETR有效改进】 多维度注意力机制 | TripletAttention三重立体特征选择模块

一、本文介绍 本文给大家带来的改进是Triplet Attention三重注意力机制。这个机制&#xff0c;它通过三个不同的视角来分析输入的数据&#xff0c;就好比三个人从不同的角度来观察同一幅画&#xff0c;然后共同决定哪些部分最值得注意。三重注意力机制的主要思想是在网络中引入…

2.Eclipse里面配置Maven及创建Maven项目

1.配置Eclipse的Maven环境. eclipse4.0以上已经安装了Maven插件&#xff0c;无需额外再次安装Maven插件。除非你的Eclipse版本很低&#xff0c;就需要手动安装。那么怎么看我们的 Eclipse里面有没有安装 Maven插件呢&#xff1f;打开如下菜单&#xff1a;Window--->Preferen…

Maven高级(一)

文章目录 Maven高级&#xff08;一&#xff09;1. 分模块设计与开发1.1 介绍1.2 实践1.2.1 分析1.2.2 实现 1.3 总结 2. 继承与聚合2.1 继承2.1.1 继承关系2.1.1.1 思路分析2.1.1.2 实现 2.1.2 版本锁定2.1.2.1 场景2.1.2.2 介绍2.1.2.3 实现2.1.2.4 属性配置 2.2 聚合2.2.1 介…

从底层理解MySQL-字符类型

目录 VARCHAR和CHAR VARCHAR CHAR 存储的长度超限 CHAR和VARCHAR的区别&#xff1a; BLOB和TEXT MySQL中除了数值类型外&#xff0c;另一个用的比较多的就是字符类型了。字符类型有很多不同种类&#xff1a;VARCHAR,CHAR,BLOB,TEXT VARCHAR和CHAR VARCHAR VARCHAR是变…

Github 2024-02-20开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2024-02-20统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目6非开发语言项目2TypeScript项目1Rust项目1 命令行的艺术 创建周期&#xff1a;3198 天Star数量&…

【无标题】

#include<myhead.h>int main(int argc, const char *argv[]) {//定义两个文件句柄int srcfp-1;int destfp-1;//创建子进程pid_t pidfork();//在父进程中打开和复制一半的文件int len0;if(pid>0){//打开源文件if((srcfpopen("./test.txt",O_RDONLY))-1){perr…

ClickHouse快速上手

简介 ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS) 官网(https://clickhouse.com/docs/zh)给出的定义&#xff0c;其实没看懂 特性 ClickHouse支持一种基于SQL的声明式查询语言&#xff0c;它在许多情况下与ANSI SQL标准相同。使用时和MySQL有点相似&#…

weblog项目开发记录--SpringBoot后端工程骨架

知识点查漏补缺 跟着犬小哈做项目实战时发现好多知识点都忘了&#xff0c;还有一些小的知识点可能之前没学过&#xff0c;记录下&#xff01;顺带整理下开发流程。 完整项目学习见犬小哈实战专栏 SpringBoot后端工程骨架 搭建好的工程骨架中实现了很多基础功能&#xff0c;…

YOLO-World:实时开放词汇目标检测

paper&#xff1a;https://arxiv.org/pdf/2401.17270.pdf Github&#xff1a;GitHub - AILab-CVC/YOLO-World: Real-Time Open-Vocabulary Object Detection online demo&#xff1a;https://huggingface.co/spaces/stevengrove/YOLO-World 目录 0. 摘要 1. 引言 2. 相关工…

git常用命令

1.配置用户信息 $ git config --global user.name "runoob" $ git config --global user.email testrunoob.com 2.git 拉取代码 $ git clone git://github.com/schacon/grit.git 3.git 提交代码 $ git remote -v //查看当前连接地址 $ git add . //命令可将该…

【AI视野·今日Robot 机器人论文速览 第七十九期】Thu, 18 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Thu, 18 Jan 2024 Totally 43 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers CognitiveDog: Large Multimodal Model Based System to Translate Vision and Language into Action of Quadruped Robot Aut…
推荐文章