Android studio配置ArcGIS Runtime SDK for Android及地图展示实现

06-01 1775阅读

1.在线引入ArcGIS Runtime SDK for Android

打开总目录下的settings.gradle.kts文件,对文件中两处repositories {下添加

maven { url = uri("https://esri.jfrog.io/artifactory/arcgis") }
pluginManagement {
    repositories {
        maven { url = uri("https://maven.aliyun.com/repository/public") }
        maven { url = uri("https://maven.aliyun.com/repository/google") }
        maven { url = uri("https://esri.jfrog.io/artifactory/arcgis") }
        google {
            content {
                includeGroupByRegex("com\\.android.*")
                includeGroupByRegex("com\\.google.*")
                includeGroupByRegex("androidx.*")
            }
        }
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven { url = uri("https://maven.aliyun.com/repository/public") }
        maven { url = uri("https://maven.aliyun.com/repository/google") }
        maven { url = uri("https://esri.jfrog.io/artifactory/arcgis") }
        google()
        mavenCentral()
    }
}

进入https://esri.jfrog.io/artifactory/arcgis网站,可以发现最新版本为100.15.6

Android studio配置ArcGIS Runtime SDK for Android及地图展示实现

依次打开总目录下的app文件夹——》src文件夹——》build.gradle.kts文件

对build.gradle.kts文件中dependencies {下添加

implementation("com.esri.arcgisruntime","arcgis-android","100.15.6")
dependencies {
    implementation("com.esri.arcgisruntime","arcgis-android","100.15.6")
    implementation(libs.appcompat)
    implementation(libs.material)
    implementation(libs.activity)
    implementation(libs.constraintlayout)
    testImplementation(libs.junit)
    androidTestImplementation(libs.ext.junit)
    androidTestImplementation(libs.espresso.core)
}

2.arcgis开发者API 密钥凭据

在https://location.arcgis.com/注册esri账号

注意:该步骤必须使用在https://location.arcgis.com/网站中注册的账号

登录账号后,点击create developer credentials并选择API 密钥凭据

Android studio配置ArcGIS Runtime SDK for Android及地图展示实现

注意:新手推荐在后续步骤中对所有权限开放,否则会出现使用API 密钥凭据后地图不显示的问题

Android studio配置ArcGIS Runtime SDK for Android及地图展示实现

最终生成API密钥,将该密钥进行复制,为后续作准备

Android studio配置ArcGIS Runtime SDK for Android及地图展示实现

3.地图显示实现

依次打开总目录下的app文件夹——》src文件夹——》main文件夹——》AndroidManifest.xml

文件,对文件中代码

下添加

下添加地图视图控件代码

   

    

与此同时也打开修改对应Java文件夹中的MainActivity文件

package com.example.androidgistest;
 
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.BasemapStyle;
import com.esri.arcgisruntime.mapping.Viewpoint;
import com.esri.arcgisruntime.mapping.view.MapView;
 
public class MainActivity extends AppCompatActivity {
 
    MapView mMapView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        ArcGISRuntimeEnvironment.setApiKey("arcgis开发者API密钥凭证");
        mMapView = findViewById(R.id.mapview);
        mMapView.setAttributionTextVisible(false);//去logo
 
        ArcGISMap map = new ArcGISMap(BasemapStyle.ARCGIS_TOPOGRAPHIC);
        mMapView.setMap(map);
        mMapView.setViewpoint(new Viewpoint(34.056295, -117.195800, 10000));
 
    }
 
    @Override
    protected void onPause() {
        mMapView.pause();
        super.onPause();
    }
 
    @Override
    protected void onResume() {
        super.onResume();
        mMapView.resume();
    }
 
    @Override
    protected void onDestroy() {
        mMapView.dispose();
        super.onDestroy();
    }
}

注意:代码中“arcgis开发者API密钥凭证”为第二步所获取的

        ArcGISRuntimeEnvironment.setApiKey("arcgis开发者API密钥凭证");

依次打开总目录下的app文件夹——》build.gradle.kts文件

因设备sdk版本低

Android studio配置ArcGIS Runtime SDK for Android及地图展示实现

将build.gradle.kts文件中minsdk设置为26(根据自己设备情况适当缩小版本以保证程序成功运行)

 defaultConfig {
        applicationId = "com.example.myapplication"
        minSdk = 26
        targetSdk = 35
        versionCode = 1
        versionName = "1.0"
        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }

运行程序后出现以下的错误提示

2 files found with path 'META-INF/DEPENDENCIES' from inputs:

 - org.apache.httpcomponents.core5:httpcore5-h2:5.0.4/httpcore5-h2-5.0.4.jar

 - org.apache.httpcomponents.core5:httpcore5:5.0.4/httpcore5-5.0.4.jar

Adding a packaging block may help, please refer to

https://developer.android.com/reference/tools/gradle-api/com/android/build/api/dsl/Packaging

for more information

对build.gradle.kts文件中代码进行添加exclude进行依赖排除

    defaultConfig {
        applicationId = "com.example.myapplication"
        minSdk = 26
        targetSdk = 35
        versionCode = 1
        versionName = "1.0"
        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }
    packaging {
        resources {
            excludes +="META-INF/DEPENDENCIES"
          }
        }

最终程序运行成功

Android studio配置ArcGIS Runtime SDK for Android及地图展示实现

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码