欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android studio 百度地图(一)

程序员文章站 2022-09-01 08:45:09
步骤:1.2. <...

1.前提:使用方法,就是直接去百度下载demo,然后看里面的源码,就可以做好多事情了

1.获取SHA1

只要填一个就可以了
android studio 百度地图(一)

2.步骤:

1.

android studio 百度地图(一)

2.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission
        android:name="android.permission.WRITE_SETTINGS"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission
        android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- //获取设备网络状态,禁用后无法获取网络状态 -->
    <uses-permission
        android:name="android.permission.MANAGE_DOCUMENTS"
        tools:ignore="ProtectedPermissions" /> <!-- //网络权限,当禁用后,无法进行检索等相关业务 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- //读取设备硬件信息,统计数据 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- //读取系统信息,包含系统版本等信息,用作统计 -->
    <uses-permission android:name="android.permission.VIBRATE" /> <!-- //获取设备的网络状态,鉴权所需网络代理 -->
    <uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- //允许sd卡写权限,需写入地图数据,禁用后无法显示地图 -->
    <uses-permission android:name="android.permission.INTERNET" /> <!-- //允许sd卡读权限,需读取地图数据,禁用后无法显示地图 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- //获取统计数据 -->
    <uses-permission android:name="android.permission.INTERNET" /> <!-- //鉴权所需该权限获取进程列表 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- //使用步行AR导航,配置Camera权限 -->
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> <!-- //网络定位 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- //GPS定位 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
<!--百度地图-->
        <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="ZAyhcOPzfFnxGG9TZzNZnwDazhYqKTnO" />

        <service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote" />
            </application>

3.

android studio 百度地图(一)
android studio 百度地图(一)

4.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!--计步-->

    <com.baidu.mapapi.map.MapView
        android:id="@+id/bmapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clickable="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <FrameLayout
        android:id="@+id/FL_address"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        tools:ignore="MissingConstraints" />
    <!--定位-->
    <Button
        android:background="@drawable/my_address"
        android:id="@+id/bt"
        android:layout_weight="1"
        app:layout_constraintBottom_toTopOf="@+id/button"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="@+id/button"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_marginBottom="10dp"/>

    <Button
        android:layout_margin="5dp"
        android:background="@drawable/shape_normal"
        android:alpha="0.7"
        android:id="@+id/button"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="卫星视图"
        app:layout_constraintBottom_toTopOf="@+id/buttons"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="@+id/buttons"/>

    <Button
        android:layout_margin="5dp"
        android:background="@drawable/shape_normal"
        android:alpha="0.8"
        android:id="@+id/buttons"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="普通视图"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="@+id/bmapView"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

3.导航功能的实现

需求:根据客户输入的地址得到导航路线

需要用到的方法

1.将地址转换为经纬度

1.实现接口,重写方法

//接口
public class GeoCoderDemo extends AppCompatActivity implements OnGetGeoCoderResultListener {

重写方法:
android studio 百度地图(一)

2.初始化GeoCoder,并为其设置专门的监听

// 初始化搜索模块,注册事件监听
        mSearch = GeoCoder.newInstance();//初始化地理编码器
        mSearch.setOnGetGeoCodeResultListener(this);//为地理编码器设置专用监听

3.在监听里执行

//根据客户输入得到目的地经纬度
                                    mSearch.geocode(new GeoCodeOption()
                                            .city(editEndCity.getText().toString())//城市EditText
                                            .address(editEndAddress.getText().toString()));//地址EditText

4.得到经纬度

android studio 百度地图(一)

最后:反思总结

1.敲代码时间不能太久,不然会没精力,效率下降
最好在15到50分钟之间

本文地址:https://blog.csdn.net/sunweihao2019/article/details/107816238