android 高德地图显示及注意事项

  • 开发环境
  • 高德地图开发准备
  • 注意事项:
    • 1.关于调试版SHA1
    • 2.关于定位

开发环境

android studio版本信息如下:

SDK版本如下:

高德地图开发准备

1.配置高德api应用,获取key

  • ​ 知道自己的发布版SHA1,调试版SHA1为选填项。
  • ​ 项目包名,可以在AndroidManifest.xml中找到

2.导入项目依赖文件以及参数

  1. 打开官方下载地址下载3D地图合包,解压后获得一个jar包和几个文件,如下:

  2. 打开android工程,将jar包拖入工程的libs下,在main目录下新建文件夹jniLibs,把除jar以外的文件放入其中,如下:

  3. 对jar包进行add to library操作,如果右键没有出现此选项,可参考没有add as library选项

  4. 在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.READ_PHONE_STATE" /><!--允许程序访问CellID或WiFi热点来获取粗略的位置--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><!--用于访问GPS定位--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><!--用于获取运营商信息,用于支持提供运营商信息相关的接口--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><!--用于访问wifi网络信息,wifi信息会用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><!--用于获取wifi的获取权限,wifi信息会用来进行网络定位--><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/><!--用于申请调用A-GPS模块--><uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/><!--如果设置了target >= 28 如果需要启动后台定位则必须声明这个权限--><uses-permission android:name="android.permission.FOREGROUND_SERVICE"/><!--如果您的应用需要后台定位权限,且有可能运行在Android Q设备上,并且设置了target>28,必须增加这个权限声明--><uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>在application下添加如下:<meta-data android:name="com.amap.api.v2.apikey"               android:value="你的开发key"></meta-data><service android:name="com.amap.api.location.APSService"></service>
    
  5. 在你的布局文件中中引入

        <com.amap.api.maps.MapViewandroid:id="@+id/map"android:layout_width="match_parent"android:layout_height="match_parent"/>
    
  6. 到这里,前期的准备就做完了,你也可以参考官方流程,更全面一些。

  7. 地图显示的代码如下

    public class Map extends AppCompatActivity {MapView mMapView = null;//初始化地图控制器对象AMap aMap;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_map);//获取地图控件引用mMapView = (MapView) findViewById(R.id.map);//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图mMapView.onCreate(savedInstanceState);if (aMap == null) {aMap = mMapView.getMap();}}@Overrideprotected void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图mMapView.onDestroy();}@Overrideprotected void onResume() {super.onResume();//在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();//在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制mMapView.onPause();}@Overrideprotected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);//在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态mMapView.onSaveInstanceState(outState);}
    
  8. 这样运行就可以看到地图了

注意事项:

1.关于调试版SHA1

​ 我第一次做时,调试版的SHA1按官方操作流程是直接拿到了,而当我因为编译器版本老旧(大概gradle才1.3.2),所以重装了编译器,当我再获取调试版的SHA1时,出现了如下错误

并不是密码错误,因为这玩意默认就是android,我后来也一直没找到解决办法,当然其实开发这功能并不需要这个调试版的SHA1。

以下只是我的一厢情愿:但是当我填了之前的(没更新编译器)SHA1时,控制台报了错误,错误代码在高德的错误对照表上为授权失败,于是我找到了这篇高德地图key验证失败,至此我得到了想要的结果了。

2.关于定位

不建议在模拟器上运行,直接用真机(USB调试,WiFi调试)。当然本篇文章并没有书写关于精确定位的代码,但是如果要实现的话,必须在真机上进行,模拟器上看会出现定位点不在你所在的位置,或者直接对错误对照表上的6,如果真机上运行还是不行,建议手机上开启一下它的定位权限,这点很重要。

如果需要定位到自己的位置的地图显示,可直接下载:github地址

【android高德地图显示】相关推荐

  1. android高德自定义图标,Android 高德地图显示在线图标

    项目刚好用到高德地图,需求里有要求显示在线图标,发现高德Demo里只有显示本地图标的的例子,那么网络配置的图标要怎么显示呢,这时候可能就想到了自定义View,因为高德地图支持自定义View作为Mark ...

  2. android高德地图显示多点标记,高德地图多点标记自定义地图

    直接代码吧: 自定义地图 html,body,#container{height:100%;100%;font-size:14px;font-family:"Chinese Quote&qu ...

  3. android 高德地图显示标题,android学习之高德地图添加标记

    Marker用于标注地图上的一个特定位置 aMap的.addMarker(markerOptions) 方法即可 markerOptions有如下的属性 position(Required) 在地图上 ...

  4. Android 高德地图显示国外地图,安卓地图只显示高德地图四个字

    观察logcat 的日志 发现 Could not find generated setter for class cn.qiuxiang.react.amap3d.maps.AMapViewMana ...

  5. Android 高德地图给指定坐标显示图片,以及聚合显示

    官网实例请点击:Android 高德地图聚合官网 下面是一个案例: 效果图: MainActivity public class MainActivity extends AppCompatActiv ...

  6. Android高德地图自定义Markers的例子

    下文为各位重点介绍关于Android高德地图自定义Markers的例子,希望这篇文章能够让各位理解到Android高德地图自定义Markers的方法. 之前的博客里说了地图的嵌入和定位,今天就说说在地 ...

  7. android 逆地址,Android高德获取逆地址编码(经纬度坐标-地址描述如省市区街道)

    Android高德获取逆地址编码(经纬度坐标-地址描述如省市区街道) 可以在非地图视图下直接获取,只要传入当前位置的经纬度 当然也可以在地图模式下获取详细信息 在非第三方地图集成下(系统自带功能)获取 ...

  8. android 高德地图SDK报 KEY鉴权失败

    android 高德地图SDK报 KEY鉴权失败. 一般在项目被转移,或项目使用的SDK被其他项目使用时,会发生这种情况! 解决办法 进入高德地图api控制台 点应用管理-我的应用-创建应用 - 根据 ...

  9. android 高德地图移动卡顿_Xamarin.Forms Android使用高德地图SDK

    Xamarin.Forms Android 高德演示https://www.zhihu.com/video/1243224001301958656 介绍 本编文章分为2节,第1节是介绍高德地图SDK与 ...

最新文章

  1. 浅析.Net共享程序集编程
  2. VISTA IIS Worker Process 已停止工作 解决办法
  3. 弹出页(指定高度,自由拖动,点击空白包括状态栏触发)
  4. awstats linux日志分析,Linux环境下安装部署AWStats日志分析系统实例
  5. html5页面被键盘挡住,HTML5 虚拟键盘出现挡住输入框怎么办
  6. 20 万、50 万、100 万年薪的算法工程师在能力素质模型上有哪些差距?
  7. C++读取文件,将文件内容读到string字符串里面
  8. 隐藏功能_IOS 14.2 隐藏功能
  9. mysql创建表时反引号的作用
  10. .NET 内存管理与垃圾回收:实现IDisposable接口和析构函数
  11. (Oracle、SqlServer、Access)数据库开发代码生成工具SharpCode2.0
  12. 翻译:如何在Mac OS X中设置文件权限chmod
  13. 中国光伏如何规避产业风险?
  14. vMix(视频混合器软件)v22.0.0.48免费版
  15. 营销工具-优惠券相关设计思路
  16. Bridge 双维度扩展
  17. tomcat设置https端口时,8443和443区别:
  18. 内网机无法ping通外网机
  19. 了解Unix的历史与现状
  20. 一个简单的密码生成器

热门文章

  1. 有道写作浏览器扩展实践
  2. Python | 使用海龟绘图,输入多个点,将这些点都两两相连。
  3. 开发者们的成功出海经验分享|游戏篇
  4. SDUT 2022 Summer Individual Contest - 12(for 21)
  5. 2021届保研经验贴—北邮,西交,武大,中科院,厦大,南开
  6. Redis学习笔记(from狂神说)
  7. Angular使用bootstrap
  8. 虚幻gameframe_UE4虚幻引擎开发手机游戏(一)
  9. 温湿度传感器(AM2312)
  10. 感谢折磨你的人 (素质教育专题讲座)