之前在做大创的时候,就用到了高德地图,但是当时是为了赶项目,所以只是按照官方的demo代码搬运了过来,而具体哪个类是干什么的根本不清楚,而且一个完整的流程也是很模糊。现在再次用到了这个东西,所以觉得一定要好好研究一下,为了以后用的更方便,总不能每次都搬运人家官方的demo吧-。=。

今天这篇是最基础的一篇,我会从申请高德API的key开始走一遍流程,因为相信大家跟我一样,看官网给的代码都已经晕头转向了(他写的实在是太乱了)。

第二篇:高德地图Poi搜索周边位置https://blog.csdn.net/zy_jibai/article/details/103017217

接下来我们按照申请的流程一步一步的实现高德地图的API使用:

一、申请和配置

首先来看一下申请和配置的流程:

1、申请注册成为开发者。

这一步应该不用怎么说吧,大家自己都会注册账号密码什么的。。

2、申请应用key

①首先点开控制台,点击应用管理:

我这里已经有了四个应用,如果是刚刚创建的话是没有的。

②点击右上角创建应用:

应用名称随便填,应用类型也随便填。点击创建

我们创建好了之后会在应用中显示刚刚创建和已经创建的应用。

③点击右上角添加新Key

我们只说一下获取这两个安全码SHA1:

2.1.调试版:我们打开Android Studio,点击gradle projects(默认在右侧),app->Tasks->android->signingReport。

双击后,他会给我们调试版的安全码SHA1。这个测试版的安全码我们就可以填入了。

2.2.发布版:这个需要我们找到自己的签名证书文件,如果没有的话,下面笔者带着大家申请一个:

  1. 申请签名证书文件
  2. 打开终端或者Terminal,获取正式版安全码SHA1。

2.2.1申请签名证书文件:

关于申请签名证书文件的方式有很多,可以通过终端,也可以通过Android  Studio,个人比较喜欢用Android Studio(可能是因为比较懒吧-。+!!)。

点击Generate Signed APK 。

他会出现一个这样的界面。在第一行中的Key Store path中指定我们签名文件的路径,如果没有的话点击Create new...

随便填,只要你能记得住就行,Validity为签名文件有效时间,当然我们肯定用不了这么长时间的。点击ok。

然后退出Generate signed APK,因为我们只是为了生成一个签名证书文件,又不是发布正式版的APK。

2.2.2打开终端或者Terminal。

推荐大家使用Terminal,因为Android Studio已经集成了,用起来比较方便(本人就是懒-。+)。

首先要移动到我们刚刚生成的签名证书文件的路径下。

然后输入以下代码:

keytool -list -v -keystore 这是我们刚刚创建的签名证书文件的名字

点击enter,

他会出现让我们输入密匙口令,这个就是我们刚才创建签名文件的时候自己设置的。

现在我们就获取到正式版的SHA1安全码了。

现在我们将测试安全码和正式安全码填入,下面的包名我们在AndroidManifest.xml中自己就可以查找。不多说。

我们看到现在已经应用中已经有了key。

3、在Project中添加配置。

我们从官方下载的SDK解压后如下:

我下的是6.3.0的版本:

3.1.导入jar包。

3.1.1.我们将里面的jar包放入app/libs文件目录下。

因为我已经导入了,在大家那里应该是看不到jar包前面的这个小箭头的。

3.1.2.导入jar包

导入jar包的方式有两种:

一种是最暴力的,直接点击File->Sync Project with Gradle Files ,将所有libs目录下的jar包全部导入。

另一种是我们选择将哪个jar包导入。File->Project Structure ->Dependencies -> + ->Jar dependency->找到自己Application Project的路径,->libs中选择自己想要导入的jar包。

个人觉得还是第二中比较好,因为不必要的jar包导入让整个app看着很胖。

3.2.放入.so文件

放入.so文件同样有两种方式:使用默认配置(不修改build.gradle)和修改build.gradle配置。

使用默认配置:将解压缩剩下的(除了jar包)的文件夹放入src/main/jniLibs文件夹下(没有自己创建,在几版本的Android Studio中我记得添加jni就会自动创建这个目录)

修改build.gradle:将文件夹放入刚才的app/libs目录。然后打开build.gradle。

在android下添加如下标签:

android {compileSdkVersion 26defaultConfig {....../*sourceSets{main{jniLibs.srcDirs = ['libs']}}*/}......
}

注释掉的部分,因为本人比较懒,所以用的默认配置-。+。

3.3.在AndroidManifest.xml中进行配置。

3.3.1.权限声明

我们开发肯定需要一系列权限的声明(我直接打出来了,大家复制粘贴吧23333):

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><!--用于访问GPS定位--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><!--获取运营商信息,用于支持提供运营商信息相关的接口--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><!--用于访问wifi网络信息,wifi信息会用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位--><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><!--用于访问网络,网络定位需要上网--><uses-permission android:name="android.permission.INTERNET"></uses-permission><!--用于读取手机当前的状态--><uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission><!--写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><!--用于申请调用A-GPS模块--><uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission><!--用于申请获取蓝牙信息进行室内定位--><uses-permission android:name="android.permission.BLUETOOTH"></uses-permission><uses-permission android:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>

3.3.2.在Application标签中加入 meta-data标签

<meta-dataandroid:name="com.amap.api.v2.apikey"android:value="07e23534b69a1ea1dd7b17cc2812142c" />

其中name一定要这样写,value就是我们刚才申请的key。

3.3.3.声明Service组件

<service android:name="com.amap.api.location.APSService"/>

到现在为止我们申请和配置的工作就做完了(感觉也不是很多是吧!)

二、显示地图

由于篇幅的原因,我们今天只看一下如何显示地图以及显示定位蓝点。

1、在layout中添加地图容器。

这个是一个很没有操作的事情,我们默认一般都使用mapview,官方还提供了6中容器用来显示地图。

<com.amap.api.maps.MapViewandroid:id="@+id/map"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"
/>

2、使用AMap类。

这个AMap类可以说是一个很重要的类,他是地图的控制器类,主要负责的工作有:

  • 地图模式切换(黑夜、卫星......)
  • 改变地图状态(旋转角度、俯仰角、中心坐标、缩放级别等)
  • 添加标记点(Marker)
  • 绘制几何图形(Polyline、Polyon、Circle等)
  • 事件监听(点击、手势)

下面我们一起看一下AMap类的主要方法:

限定符

返回值

方法名

介绍

字段

public final

void

setMapType(int)

设置地图模式

MAP_TYPE_NORMAL  普通

MAP_TYPE_SATELLITE 卫星

MAP_TYPE_NIGHT 夜间

MAP_TYPE_NAVI 导航

MAP_TYPE_BUS 公交

public final

int

getMapType()

获取地图模式

public final

UiSettings

getUiSettings()

获取地图UI控制器

public final

void

setMylocationStyle(MyLocationStye)

设置定位小蓝点(坐标位置)

public final

void

setMylocationEnabled(boolean)

设置是否启动定位蓝点

true:启动显示

false:隐藏定位蓝点,并不定位

默认false

public final

void

setTrafficEnabled(boolean)

设置是否打开交通图层

true:打开

false:不打开

默认true

public final

boolean

isTrafficEnabled()

获取是否已打开交通图层

public final

void

showMapText(boolean)

设置是否打开文字标注

默认true

public final

void

showIndoorMap(boolean)

设置是否显示室内地图

默认false

public final

void

showBuildings(boolean)

设置是否显示3D建筑

默认true

这里面涉及到两个其他的类:MyLocationStyle类和UiSettings类。我们今天主要看一下MyLocationStyle类:

3、MyLocationStyle类介绍

MyLocationStyle类为定位小蓝点的绘制样类。方法如下:

限定符

返回值

方法名

介绍

字段

public

MyLocationStyle

myLocationIcon(BitmapPescriptor)

设置定位蓝点的图标

public

MyLocationStyle

anchor(float u,float v)

设置定位图标锚点的偏移量

public

MyLocationStyle

radiusFillColor(int color)

设置圆形区域的填充颜色

public

MyLocationStyle

strokeColor(int color)

设置圆形区域的边框颜色

public

MyLocationStyle

strokeWidth(float width)

设置圆形区域的边框宽度

public

MyLocationStyle

inteval(long interval)

设置连续定位请求间隔

public

MyLocationStyle

showMyLocation(boolean visible)

是否显示蓝点图标

默认true,false情况会定位,但是图标不显示

public

MyLocationStyle

myLocationType(int type)

设置位置展示模式

_SHOW 只定位一次

_LOCAE 只定位一次,且将视角移动到地图中心点

_FOLLOW 连续定位,将视角移动到中心点,定位蓝点随设备移动。

_MAP_ROTATE 连续、视角移动到中心点,地图依照设备防线旋转,定位点随设备移动

_LOCATON_ROTATE 连续、视角移动到中心点,定位点照地图方向旋转,跟设备移动。

_LOCATION_ROTATE_NO_CENTER

_MAP_ROTATE_NO_CENTER

_FOLLOW_NO_CENTER

后面这三个对应上面的三个,只是不一定到地图中心点

可以看出MyLocationStyle是支持链式编写。

有了上面的这些方法介绍,相信大家已经知道如何去显示一个地图了,下面直接给大家带来一个代码栗子了:

private void initMap(Bundle savedInstanceState) {location = (TextView) findViewById(R.id.sample_text);location.setText(stringFromJNI());mapView = (MapView) findViewById(R.id.map);mapView.onCreate(savedInstanceState);if (aMap == null) {aMap = mapView.getMap();   //获取到aMap实例,从地图容器中获取}MyLocationStyle myLocationStyle;myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类myLocationStyle.radiusFillColor(getColor(R.color.colorAlphaRed));//设置圆形区域填充颜色为红色myLocationStyle.interval(5000); //设置连续定位模式下的定位间隔,只在连续定位模式下生效myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_MAP_ROTATE_NO_CENTER);//连续定位、蓝点不会移动到地图中心点,地图依照设备方向旋转,并且蓝点会跟随设备移动。aMap.setMyLocationStyle(myLocationStyle);//设置定位蓝点的StyleaMap.getUiSettings().setMyLocationButtonEnabled(true);  //设置默认定位按钮是否显示,非必需设置。aMap.setMyLocationEnabled(true);// 设置为true表示启动显示定位蓝点,aMap.showIndoorMap(true);//室内定位开启aMap.setMapType(AMap.MAP_TYPE_NIGHT);//地图类型设为夜晚}

效果如下:

由于模拟器无法实现地图定位,所以只能用真机截个图了!!!

好了,关于高德地图初次使用就到这里了,下一篇中会给大家介绍如何实现定位功能。

喜欢的朋友,如果感觉对你有所帮助的话,希望支持关注一波!!!

 
 

最新高德地图使用——申请key、显示地图相关推荐

  1. Bing必应地图中国API一显示地图 (转) 做人要厚道

    Bing必应地图中国API一显示地图 2011-05-24 14:27:31|  分类: Bing&Google|字号 订阅 微软必应地图中国地图API发布已经有10天了,考虑到网上现有的SD ...

  2. [android] 百度地图开发 (一).申请AK显示地图及解决显示空白网格问题

        最近做android百度地图,但是使用baidumapapi_v2_3_1.jar和libBaiduMapSDK_v2_3_1.so显示百度地图时总是遇到问题--只显示网格而没有显示地图,网络 ...

  3. 百度地图AK申请注意+百度地图API生成热力图+调用百度地图API自动获取经纬度和地址

    文章目录 一.百度地图AK密钥申请 二.调用百度地图API生成热力图 三.调用百度地图API自动获取经纬度和地址 一.百度地图AK密钥申请 点击百度地图API控制台,输入登录账户,即可进入,若账户未完 ...

  4. 解决百度地图API无法正常显示地图

    一.问题描述 引用了百度地图api,但是无法显示地图,报错截图如下: 二.解决方法 需要去百度地图api-控制台中,把对应ak的Referer白名单设置为通用(*)

  5. 关于Android集成高德地图的那些事儿...显示地图

    记得在2016年的时候, 有个项目需要在地图上添加Marker 并且连点成线记录坐标 和 地理围栏,  当时也是第一次做,确实有点懵, 不过时间久了, 也还挺简单的 ; 最近项目中又用到了地图 , 借 ...

  6. html 地图 自动适应,Html显示地图

    Html可以通过JS来实现第三方地图的显示,如: 高德: 效果如下:浏览器小区域和全屏展示 效果 效果 代码如下:把key换成自己申请的key值 高德配置(开发者平台-->控制台) 效果 效果 ...

  7. Cocos creator 导入 tiled map地图资源,cocos 显示地图错乱偏移

    1)Tiled map 中显示 (举例子随便画了一个) 2)Cocos creator显示的地图(严重错乱偏移) 3)修改过程 ①第一步: ②修改Trim type=none ③保存(正常显示了)

  8. android+高德地图教程,Android高德地图开发(三)地图简单操作

    一.概述 上一节中我们了解到地图的定位,图层切换,离线地图等基础操作,接下来学习地图的基本操作. 二.本章内容 --- 地图交互设置 --- 地图绘制 1.地图交互设置 在使用地图的时候,不可避免的会 ...

  9. python echarts 地图_python调用pyecharts不显示地图解决办法

    一.基本步骤 (仅看此基本步骤就能解决问题---如果看这个还不能解决,放弃吧,何必为难自己!!!) 当你用到pyecharts的Map等地图包的时候就需要手动安装下面的包,可以全部下,也可以挑自己需要 ...

  10. 炸弹人游戏开发系列(3):显示地图

    前言 上文我们进行了初步的高层设计,现在我们将实现图片预加载和显示地图的功能需求.我采用TDD开发,大家可以看到在实现的过程中我们会修改设计,修改设计后又会修改对应的实现代码,这是一个不断迭代的过程. ...

最新文章

  1. 在React 组件中使用Echarts
  2. “AlphaGo之父”获最新一届ACM计算奖
  3. 白色flash模块代码_适用于MCU项目的代码框架BabyOS,工程师的好助手!
  4. 科讯CMS--用SQL标签时提示内存不够
  5. 华为错误报告在哪个文件夹_华为手机隐藏的这7个秘密小技能,现在开启,手机还能再用3年...
  6. MFC标签页控件的使用
  7. linux6添加chkconfig管理,10、14 Linux系统服务管理工具-chkconfig
  8. Android线程机制——AsyncTask
  9. mysql8.0.20 64位安装教程_MySQL8.0.20压缩版本安装教程图文详解
  10. Mr.J--C语言学习Errors:LNK2019
  11. Grafana、M3DB、Prometheus 集成 关于M3DB集成的文章本就不多,快来瞅瞅吧!!!说不定有用呢?
  12. Linux内核概念:per-CPU,cpumask,inicall机制,通知链
  13. linux内存管理(十)-页表管理
  14. 15-TypeScript策略模式
  15. alwayson高可用组_AlwaysOn可用性组–简化工作的好奇心–第1部分
  16. 局域网抢速,局域网抢网速软件下载,p2p终结者和反p2p终结
  17. 线性代数matlab的心得体会,关于线性代数心得体会
  18. word文档字体段落文档格式标准设置(个人)
  19. 相位测试音频mp3_音频测试标准是什么?
  20. 基于redis的简易单点登录系统

热门文章

  1. flash activex java_adobe flash player activex
  2. 485通讯接口与232接口的区别
  3. 本地数据库数据导入linux
  4. mysql表锁ix_S、X、IS、IX数据库锁机制 很详细的教程,简单易懂
  5. windows系统ping端口及利用telnet命令Ping 端口
  6. 2022版首发,阿里Java开发手册(黄山版).PDF
  7. CNKI文献pdf批量下载
  8. Arping协议以及使用方法
  9. 缓存中间件技术选型Memcached、MongoDB、Redis
  10. 104规约使用总结(三)——报文解析