• Android学习笔记 34. 在Android中集成高德地图


    Android学习笔记

    Android——集成高德地图

    34. 在Android中集成高德地图

    34.1 高德地图开放平台

    在这里插入图片描述

    创建新应用

    在这里插入图片描述

    在这里插入图片描述

    点击“添加”按钮

    在这里插入图片描述

    新建一个工程

    在这里插入图片描述

    在这里插入图片描述

    34.2 获取安全码

    在这里插入图片描述

    在这里插入图片描述

    这个工具是jdk自带的

    使用命令

    keytool -list -v -keystore C:\Users\DingJiaxiong\.android\debug.keystore\
    
    • 1

    在这里插入图片描述

    在这里插入图片描述

    复制这个值

    在这里插入图片描述

    粘贴到这儿

    在这里插入图片描述

    提交

    34.3 引入依赖

    在这里插入图片描述

    在这里插入图片描述

    同步

    在这里插入图片描述

    34.4 配置清单文件,配置权限
    //地图SDK(包含其搜索功能)需要的基础权限
    
    
    <uses-permission android:name="android.permission.INTERNET" />
    
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述

    34.5 设置高德key

    在这里插入图片描述

    在这里插入图片描述

    这里的value要改成高德控制台应用的key值

    在这里插入图片描述

    34.6 初始化地图容器

    在布局中添加地图组件

    <com.amap.api.maps.MapView
    
        android:id="@+id/map"
    
        android:layout_width="match_parent"
    
        android:layout_height="match_parent"/>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    配置地图的生命周期

    package com.dingjiaxiong.amapdemo;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    
    import com.amap.api.maps.MapView;
    
    public class MainActivity extends AppCompatActivity {
    
        MapView mMapView = null;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            //获取地图控件引用
            mMapView = 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);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    34.7 显示地图

    配置显示定位蓝点

    //初始化地图控制器对象
    if(aMap == null){
        aMap = mMapView.getMap();
    }
    
    MyLocationStyle myLocationStyle;
    myLocationStyle = new MyLocationStyle(); //初始化定位蓝点样式类
    myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。
    myLocationStyle.interval(2000); //设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。
    aMap.setMyLocationStyle(myLocationStyle);//设置定位蓝点的Style
    aMap.getUiSettings().setMyLocationButtonEnabled(true);//设置默认定位按钮是否显示,非必需设置。
    aMap.setMyLocationEnabled(true);// 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。
    aMap.moveCamera(CameraUpdateFactory.zoomTo(15));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    运行

    在这里插入图片描述

    挂掉了,开始谷歌

    版本问题

    修改依赖版本

    在这里插入图片描述

    再试一次

    在这里插入图片描述

    啥啥校验失败了,开始谷歌

    在这里插入图片描述

    再次运行

    在这里插入图片描述

    可以看到地图出来了,但是并没有到我的位置

    看看原因

    无果。。。。我换到了真机

    在这里插入图片描述

    也是不能定位。权限给了。

    跳过了。

  • 相关阅读:
    CSS 伪类选择器 last-child 和 last-of-type 的区别
    洛谷——P1093 [NOIP2007 普及组] 奖学金
    【n子棋】
    Hadoop 3.0.0 (单机版)安装与配置与基础使用
    lnmp架构之mysql的主从复制(一)
    Nvidia-Xavier-NX配置
    Electron笔记
    【Java 基础篇】Java Condition 接口详解
    游戏类app有哪些变现方式?
    “女生最适合软件测试、没有之一”都是骗子,我们都上当受骗了
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/126278237