ArcGIS for Android 10.2.9 (1)

    最近在学习GIS地图在Android中的应用,刚开始看ArcGIS官方文档,使用的SDK版本是10.2.9的。之前参照的版本是100.3的,但是OpenGL总是运行不来,报GLThread 2015的错误。后来查看网上的解决方法不多,大多都是因为虚拟机才会出现这种情况的。我就放弃了100.3版本。改用10.2.9版本,从配置到运行成功花了一番功夫,毕竟我还是小白。下面我将自己遇到的问题归纳为以下几点。

  1、在配置中找不到SDK

           按照官网在build.gradle里面配置的,但是忽略了build.gradle(Project)中有buildscript{}和allprojects{}两者的区别。我直接就将

   // add the esri arcgis maven repo

maven { url 'http://esri.bintray.com/arcgis' }

添加到buildscript {repositories {}}这个里面,之后依赖的结果就是一直找不到包。因为添加的是项目中库所需要的地址,本身的项目就会找不到。就是如下错误的添加方式:

buildscript {
    //项目中所添加库需要的依赖
    repositories {
        google()
        jcenter()
        // add the esri arcgis maven repo
        maven { url 'http://esri.bintray.com/arcgis' }    
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'
     
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

正确的添加方式应该是:      

allprojects {
    //支持项目本身的
    repositories {
        google()
        jcenter()
        // Add the following ArcGIS repository
        maven {
            url 'https://esri.bintray.com/arcgis'
        }
    }
}

   2、mapoptions属性找不到

        官方文档就描述到XML布局,其中的MapVIew的mapoptions属性是编译环境识别不了的,所以是一个一个手敲上去的。等到一步一步按照按照官方文档做出来之后运行发现会闪退,根本就打不开。猜想可能是mapoptions属性在XML布局中写不起作用。需要在Activity中去声明,经过查找了一番资料。发现确实很多人是在Activity中设置MapOptions然后再添加到MapView中的。只不过没有找到完整的代码,为了便于以后查看,贴出一下完整代码。

    activity_main.xml布局文件代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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"
    android:orientation="vertical"
    tools:context=".MainActivity">

   <com.esri.android.map.MapView
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       mapoptions.MapType="STREETS"
       mapoptions.center="116.0, 54.0"
       mapoptions.ZoomLevel="16"
       android:id="@+id/map"
       />

</LinearLayout>

MainActivity代码如下:

package klona.com.startproject;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.esri.android.map.MapOptions;
import com.esri.android.map.MapView;

public class MainActivity extends AppCompatActivity {
    private MapView mMapView;
    private MapOptions mapOptions;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mMapView = (MapView) findViewById(R.id.map);
        mapOptions = new MapOptions(MapOptions.MapType.STREETS,116.0,54.0,16);//其中的经纬度是我自己随便写的
        mMapView.setMapOptions(mapOptions);
    }

    @Override
    protected void onPause() {
        super.onPause();
        if(mMapView != null)
        {
            mMapView.pause();
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        if(mMapView != null)
        {
            mMapView.unpause();
        }
    }
}

效果图如下:

 

        我写博客的主要的目的就是做笔记,想尽力写的规范一些,记载的详细一些。没有到还是挺乱的,不喜勿喷。如果我写的东西有错误,欢迎指出来。

官方文档连接:https://developers.arcgis.com/android/10-2/guide/develop-your-first-map-app.htm#ESRI_SECTION1_73552DBF7B2C48AE990F72FD60E1406E

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值