Android Studio调用高德地图api

一.搜索高德开放平台,进行注册并登录,进入到自己的控制台,打开应用管理下的我的应用,点击创建新应用。

1.关于获取发布版安全码SHA1的过程如下:

       打开Android Studio下方的Terminal,并自行找到.android在电脑中的位置,找到了之后,按照下图所示:

      之后执行 keytool -list -v -keystore 签名文件的位置(即.keystore的位置),如下图所示:

      若出现这个问题,则需要找到JDK的安装路径的bin子目录(里面有keytool.exe工具),这里若出现找不到该命令的提示,则说明还未在PATH环境变量中增加%JAVA_HOME%/bin路径。找到之后如下图所示:

      默认口令为android,输入正确后,即可获得SHA1安全码,如下图所示:

 2.关于包名如何获得?

      填入后点击提交,即可获得key,后续会使用,如下图所示:

 二.下载Android 地图SDK并设置相关权限。

      下载后进行解压,会得到如图所示:

      之后将最后面的那个jar包放到工程libs里面,并右键点击Add As Library... 将该jar包加载到build.gradle中,之后在src/main下面建jniLibs子目录,将上图前五个文件复制进去,就会得到如下图所示:

       之后在AndroidManifest.xml设置相关的权限:

  1. <!--允许程序打开网络套接字-->
  2. <uses-permission android:name="android.permission.INTERNET" />
  3. <!--允许程序设置内置sd卡的写权限-->
  4. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  5. <!--允许程序获取网络状态-->
  6. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  7. <!--允许程序访问WiFi网络信息-->
  8. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  9. <!--允许程序读写手机状态和身份-->
  10. <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  11. <!--用于进行网络定位-->
  12. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
  13. <!--用于访问GPS定位-->
  14. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
  15. <!--用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
  16. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
  17. <!--用于读取手机当前的状态-->
  18. <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
  19. <!--用于申请调用A-GPS模块-->
  20. <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>

      同时在该文件application中添加如下代码:

  1. <meta-data android:name="com.amap.api.v2.apikey" android:value="前面获取到的key值">
  2. </meta-data>

      设置好这些权限之后就来到了显示地图的部分。

 三.显示地图。

      设置布局文件,代码如下所示:

  1. <com.amap.api.maps.MapView
  2. xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:id="@+id/mapView"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent" >
  6. </com.amap.api.maps.MapView>

       java中调用关键代码如下所示:

  1. private AMap aMap;
  2. MapView mMapView = null;
  1. //获取地图控件引用
  2. mMapView = (MapView)findViewById(R.id.mapView);
  3. //在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图
  4. mMapView.onCreate(savedInstanceState);
  5.  
  6. //初始化地图控制器对象
  7. if (aMap == null) {
  8. aMap = mMapView.getMap();
  9. }
  1. @Override
  2. public void onDestroy() {
  3. super.onDestroy();
  4. //在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图
  5. mMapView.onDestroy();
  6. }
  7. @Override
  8. public void onResume() {
  9. super.onResume();
  10. //在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图
  11. mMapView.onResume();
  12. }
  13. @Override
  14. public void onPause() {
  15. super.onPause();
  16. //在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制
  17. mMapView.onPause();
  18. }
  19. @Override
  20. public void onSaveInstanceState(Bundle outState) {
  21. super.onSaveInstanceState(outState);
  22. //在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态
  23. mMapView.onSaveInstanceState(outState);
  24. }

posted @ 2023-04-15 23:11  十乂  阅读(573)  评论(0)    收藏  举报