android: 高德地图

栏目: Android · 发布时间: 5年前

内容简介:分为地图,定位,搜索(我还没做导航功能)建议采用gradle方式集成在project/build.gradle文件下添加jcenter的仓库地址

分为地图,定位,搜索(我还没做导航功能)

建议采用gradle方式集成

添加依赖

在project/build.gradle文件下添加jcenter的仓库地址

allprojects {
    repositories {
        jcenter() // 或者 mavenCentral()
    }
 }

在app/build.gradle下添加依赖

android {
    defaultConfig {
        ndk {
            //设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)
            abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    //3D地图so及jar
    compile 'com.amap.api:3dmap:latest.integration'
    //定位功能
    compile 'com.amap.api:location:latest.integration'
    //搜索功能
    compile 'com.amap.api:search:latest.integration'
}

navi导航SDK 5.0.0以后版本包含了3D地图SDK,所以请不要同时引入 map3d 和 navi SDK。

添加权限

在AndroidManifest.xml文件下添加权限

<!--允许程序打开网络套接字-->
<uses-permission android:name="android.permission.INTERNET" />
<!--允许程序设置内置sd卡的写权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   
<!--允许程序获取网络状态-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<!--允许程序访问WiFi网络信息-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<!--允许程序读写手机状态和身份-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />     
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

添加高德key

如何获取key看这里 -> 点我查看Key注册时必要数据SHA1和包名的获取方法

建议同时设置debug和release状态下的key,方便App在debug模式下也能使用高德地图功能.

在app/build.gradle下设置两种key

android {
       buildTypes {
            debug {
              manifestPlacesholders = [
                      //左边的键MAP_API_KEY是自定义的名字,右边的debug-key-value是你申请的debug下的key值
                    "MAP_API_KEY" : "debug-key-value"
               ]
            }
            
            release{
            manifestPlacesholders = [
                      //左边的键MAP_API_KEY要和debug下的保持一致,右边的release-key-value是你申请的release下的key值
                    "MAP_API_KEY" : "release-key-value"
               ]
            }
       }
  }

在AndroidManifest.xml中添加key

<application>
    <meta-data
            android:name="com.amap.api.v2.apikey"
            //要和app/build.gradle文件中设置的保持一致
            android:value="${MAP_API_KEY}"/>
  </application>

使用地图

在布局中引入地图MapView

// R.layout.activity_your_activity
  <com.amap.api.maps.MapView

    android:id="@+id/map"

    android:layout_width="match_parent"

    android:layout_height="match_parent"/>

管理地图的生命周期(非常重要),以Activity为例

public class YourActivity extends AppcompatActivity{

     MapView mMapView = null;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_your_activity);
    //获取地图控件引用
    mMapView = (MapView) findViewById(R.id.map);
    //在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图
    mMapView.onCreate(savedInstanceState);
  }
  @Override
  protected void onDestroy() {
    super.onDestroy();
    //在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图
    mMapView.onDestroy();
  }
 @Override
 protected void onResume() {
    super.onResume();
    //在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图
    mMapView.onResume();
    }
 @Override
 protected void onPause() {
    super.onPause();
    //在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制
    mMapView.onPause();
    }
 @Override
 protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    //在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态
    mMapView.onSaveInstanceState(outState);
  } 

}

构造一个AMap对象

if(mAMap == null){
   mAMap = mapView.getMap();
  }

初始化地图的相关属性

  • 地图缩放级别
mAMap.animateCamera(CameraUpdateFactory.zoomTo(float zoomLevel));

显示定位蓝点

未完待续


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

代码整洁之道

代码整洁之道

[美]Robert C. Martin / 韩磊 / 人民邮电出版社 / 2010-1-1 / 59.00元

软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。 本书提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵......一起来看看 《代码整洁之道》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换