美文网首页三方
高德地图 - 显示地图

高德地图 - 显示地图

作者: 穿越平行宇宙 | 来源:发表于2019-07-26 18:49 被阅读15次

一、获取key值

1. 首先创建新应用

image.png

2. 添加key 值

image.png image.png

3. 获取SHA1值

获取Sha1,输入命令keytool -v -list -keystore keystore文件路径
  • 获取调试版Sha1:

进入.android目录

cd .android

输入命令获取

keytool -v -list -keystore debug.keystore

过程截图:

image
  • 获取正式版Sha1:

输入命令获取接正式keystore路径

keytool -v -list -keystore ../../xxx.keystore

过程截图:

image

二、 AndroidStudio 工程配置

  • 通过拷贝添加SDK

① 、添加 jar 文件:

将下载的地图 SDK 的 jar包复制到工程(此处截图以官方示例Demo为例子)的 libs 目录下,如果有老版本 jar 包在其中,请删除。如图所示:

image
② 、添加 so 库:

说明:3D地图才需要添加so库,2D地图无需这一步骤。

保持project查看方式,以下介绍两种导入so文件的方法。

方法一:

使用默认配置,不需要修改build.gradle。在 main 目录下创建文件夹 jniLibs (如果有就不需要创建了),将下载文件的 armeabi 文件夹复制到这个目录下,如果已经有这个目录,将下载的 so 库复制到这个目录即可。如图所示:

image

方法二:

使用自定义配置,将下载文件的 armeabi 文件夹复制到 libs 目录,如果有这个目录,请将下载的 so 库复制到这个目录,然后打开build.gradle,找到 sourceSets 标签,在里面增加一项配置,如图所示:

image

三、显示地图

  • 第一步,配置AndroidManifest.xml

1. 首先,声明权限

  //地图SDK(包含其搜索功能)需要的基础权限

    <!--允许程序打开网络套接字-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--允许程序设置内置sd卡的读写权限-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_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" />

2. 然后,设置高德Key

<application>

    ...
    <meta-data android:name="com.amap.api.v2.apikey" android:value="key">
    //开发者申请的key  
    </meta-data>

</application>
  • 第二步,初始化地图容器

MapView 是 AndroidView 类的一个子类, 用于在 Android View 中放置地图。 MapView 是地图容器。用 MapView 加载地图的方法与 Android 提供的其他 View 一样,具体的使用步骤如下:

1. 首先在布局xml文件中添加地图控件:

<com.amap.api.maps.MapView

    android:id="@+id/map"

    android:layout_width="match_parent"

    android:layout_height="match_parent"/>

2. 在项目中使用地图的时候需要注意,需要合理的管理地图生命周期,这非常的重要。

以下示例简述地图生命周期的管理:

public class MainActivity extends Activity {
  MapView mMapView = null;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main);
    //获取地图控件引用
    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 类是地图的控制器类,用来操作地图。它所承载的工作包括:地图图层切换(如卫星图、黑夜地图)、改变地图状态(地图旋转角度、俯仰角、中心点坐标和缩放级别)、添加点标记(Marker)、绘制几何图形(Polyline、Polygon、Circle)、各类事件监听(点击、手势等)等,AMap 是地图 SDK 最重要的核心类,诸多操作都依赖它完成。

在 MapView 对象初始化完毕之后,构造 AMap 对象。示例代码如下:

//定义了一个地图view
mapView = (MapView) findViewById(R.id.map);
mapView.onCreate(savedInstanceState);// 此方法须覆写,虚拟机需要在很多情况下保存地图绘制的当前状态。
//初始化地图控制器对象
AMap aMap;
if (aMap == null) {
    aMap = mapView.getMap();        
}

篇幅有限,如果您感兴趣的话,以上6种地图容器初始化 AMap 对象的方式均可在官方示例代码中找到具体的示例。

运行您刚完成的工程就可以在您的 APP 中看到高德地图了。运行后的效果如下图所示:

显示地图.gif

相关文章

  • iOS 高德地图的使用

    iOS:高德地图的使用 本人花了点时间集成了高德地图的几乎所有的功能,包含:地图的显示、地图的绘制、地图的定位、地...

  • 高德地图 - 显示地图

    一、获取key值 1. 首先创建新应用 2. 添加key 值 3. 获取SHA1值 获取Sha1,输入命令keyt...

  • Django Widgets

    Geodjango后台地图默认显示原始地图,现需求为另显示高德地图(围栏编辑) 只是显示围栏,不需求编辑使用dja...

  • Android 高德地图 显示地图

    前言 地图的基本应用,现在对于一个开发者来说,是一个基本的要素,能否熟练的掌握地图的基本使用(以高德地图为例),对...

  • iOS 高德地图(继承即可使用定位\反编码)

    高德地图API文档: 这里先说定位(在地图中显示用户位置,获取经纬度),逆地理编码值得注意的是,高德地图的mapv...

  • 6、android应用调用第三方地图

    1、调用高德地图 高德地图应用包名:com.autonavi.minimap 高德地图url说明: http://...

  • Ionic中$ionicModal显示高德地图

    在项目中需要在$ionicModal中显示高德地图时需要自己定义一个方法,在模式框显示后再调用高德地图初始化方法 ...

  • 地图类业务优化方法

    一、背景在百度地图、高德地图上显示Marker, 如果显示数量很多时,滑动地图会出现卡顿的现象。 根本原因是地图是...

  • 使用高德地图View遇到的奇怪问题

    最近开发中用到了高德地图SDK,也就用到了它的View来显示地图,遇到一个很奇怪的问题:高德地图View运行后,我...

  • 高德地图安卓端实现卫星地图路网功能

    项目需求场景——绘制地块时需要显示卫星地图,还要显示路网信息 遇到的问题——目前高德地图只提供两种地图类型:AMa...

网友评论

    本文标题:高德地图 - 显示地图

    本文链接:https://www.haomeiwen.com/subject/qvtkrctx.html