ArcGIS for Android(Android Studio开发ArcGIS项目)

Android Studio开发ArcGIS项目有两种方式,一种是引用在线的ArcGIS库,一种是把【arcgis-runtime-sdk-android-100.2.1】下载下来后放到本地引用,先说在线引用,因为比较简单

方式一 :在线引用

1、新建工程
我的Android Studio版本是3.5的
在这里插入图片描述
file – new – new projet,
选择Empty Activity,点击next。
在这里插入图片描述

点击next后结果如下图:
在这里插入图片描述
我的Minimum API level是 19 ,android版本4.4(KitKat),点击finish。
得到如下图:
在这里插入图片描述
点击下图箭头位置,可以切换项目目录结构,
在这里插入图片描述
在这里插入图片描述
如下图,双击Gradle Scripts
在这里插入图片描述
双击【build.gradle(Project)】
在这里插入图片描述
在里面添加

       // 添加Esri公共Bintray Maven repository
        maven {
        //   url 'http://dl.bintray.com/esri/arcgis'
            url 'https://esri.bintray.com/arcgis'
        }

url 'http://dl.bintray.com/esri/arcgis’和url 'https://esri.bintray.com/arcgis’都可以,

如何找链接?百度 【maven】
在这里插入图片描述
进入页面后搜索arcgis
在这里插入图片描述
点击进入,之后再点击任意一个版本,
在这里插入图片描述
即可找到依赖和相关链接地址
在这里插入图片描述
在【build.gradle(Project)】添加完后如下图:
在这里插入图片描述
之后,打开【build.gradle(Module)】,
在这里插入图片描述
在里面添加

 //添加Runtime依赖
    implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0'

如下图:在这里插入图片描述
之后在 【manifests】下的【AndroidManifest.xml】里添加

  <!--联网权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--OpenGL ES支持 -->
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

目的是使程序可以联网
在这里插入图片描述
在这里插入图片描述
在【activity_main.xml】里添加

  <!-- MapView控件 -->
    <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>

在这里插入图片描述
如下图,同时注释掉【<TextView】
在这里插入图片描述
然后点击【Sync Project with Gradle files】按钮,如果没有这个按钮,可以在下图所示中点击【搜索】图标进行搜索,或按照下下张图所示进行添加:
在这里插入图片描述
在这里插入图片描述
点击【Sync Project with Gradle files】按钮会等待较长时间去下载依赖,初次下载时间挺长的,好了之后点击【Make Project】按钮,这是为了看看项目没有啥毛病。
在这里插入图片描述
没什么毛病就在【MainActivity】里添加代码,如下下张图
在这里插入图片描述
在这里插入图片描述
代码如下

public class MainActivity extends AppCompatActivity {
    //定义一个MapView对象
    public MapView mMapView = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //将MapVIew对象与控件进行绑定
        this.mMapView = (MapView)this.findViewById(R.id.mapView);
        // 创建一个地图对象
        ArcGISMap map = new ArcGISMap(Basemap.Type.TOPOGRAPHIC, 34.056295, -117.195800, 16);
        // 设置地图展示在MapView控件中
        mMapView.setMap(map);
    }
    @Override
    protected void onPause() {
        super.onPause();
        mMapView.pause();
    }
    @Override
    protected void onResume() {
        super.onResume();
        mMapView.resume();
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        mMapView.dispose();
    }
}

之后自己百度配置模拟器或者链接手机运行代码进行测试
在这里插入图片描述
结果如下图:
项目代码:
链接: 在线引用项目代码
在这里插入图片描述
注意,我的手机是OPPO R11,有时可以正常运行,有时不能,所以我喜欢用模拟器,但是运行几次后,模拟器内存可能会满,不能安装程序,所以得清除内存,
流程如下:
点击【AVD Manager】
在这里插入图片描述
点击你的模拟器名字,右键【Wipe Data】,意思是清除数据,之后重启就能安装程序了。
在这里插入图片描述

方式二:本地引用

可以参考下面链接这篇文章去下载【ArcGIS Runtime SDK for Android】,
https://blog.csdn.net/Sky_Tree_Delivery/article/details/89887246,
【ArcGIS Runtime SDK for Android的下载网址是https://developers.arcgis.com/android/latest/】
下载好后创建个【Empty Activity】项目,
在这里插入图片描述
把项目目录模式改成【Project】如下图:
在这里插入图片描述
把下两张图的三个文件拷到你项目的【libs】目录中
在这里插入图片描述
在这里插入图片描述
libs目录内容如下
在这里插入图片描述
之后把项目目录结构改成【Android】类型,如图:
在这里插入图片描述
在【build.gradle (Project…)】里添加如下内容:

flatDir {
            dirs 'libs'
        }

如图:
在这里插入图片描述
再打开【【build.gradle (Module…)】】,添加如下内容:

implementation(name: 'arcgis-android-100.2.1', ext: 'aar')
    implementation files('libs/gson-2.8.0.jar')

如下图
在这里插入图片描述
双击【Sync Project with Gradle files】按钮,查看【gson-2.8.0.jar】前面有没有三角图标,有表示jar包已经进入项目,没有则
在这里插入图片描述
如果没有三角图标,则表示jar包还未加入项目,则需要在【gson-2.8.0.jar】上右键【Add as Library】,以此添加
在这里插入图片描述
在这里插入图片描述
如果没有添加成功就按照下面三张图操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按照下图检【arcgis-android-100.2.1.aar】查有没有添加进项目中,下图所示是添加进了。

在这里插入图片描述
如何在【AndroidManifest.xml】里添加如下内容:
在这里插入图片描述

   <!--联网权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--OpenGL ES支持 -->
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

在这里插入图片描述
目的是让程序可以访问网络;

之后在【activity_main.xml】中添加

    <!-- MapView控件 -->
    <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>

在这里插入图片描述
最后在【MainActivity】里添加

    public MapView mMapView = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //将MapVIew对象与控件进行绑定
        this.mMapView = (MapView)this.findViewById(R.id.mapView);
        // 创建一个地图对象
        ArcGISMap map = new ArcGISMap(Basemap.Type.TOPOGRAPHIC, 34.056295, -117.195800, 16);
        // 设置地图展示在MapView控件中
        mMapView.setMap(map);
    }

在这里插入图片描述
之后最后点击下【Sync Project with Gradle files】按钮,再点击下【Make Project】
在这里插入图片描述
如果没报错就点击运行,结果如下图:
注意:我的安卓手机有时会闪退,所以我使用的是模拟器进行展示,
模拟器运行几次后内存容易占满,此时需要清除模拟器内的缓存,方法我已经在【方式一】结尾处写了。
在这里插入图片描述

项目代码:
链接: 在线引用项目代码
链接: 本地引用项目代码

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值