android studio 百度地图(一)
程序员文章站
2022-09-01 08:45:09
步骤:1.2. <...
1.前提:使用方法,就是直接去百度下载demo,然后看里面的源码,就可以做好多事情了
1.获取SHA1
只要填一个就可以了
2.步骤:
1.
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.
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 {
重写方法:
2.初始化GeoCoder,并为其设置专门的监听
// 初始化搜索模块,注册事件监听
mSearch = GeoCoder.newInstance();//初始化地理编码器
mSearch.setOnGetGeoCodeResultListener(this);//为地理编码器设置专用监听
3.在监听里执行
//根据客户输入得到目的地经纬度
mSearch.geocode(new GeoCodeOption()
.city(editEndCity.getText().toString())//城市EditText
.address(editEndAddress.getText().toString()));//地址EditText
4.得到经纬度
最后:反思总结
1.敲代码时间不能太久,不然会没精力,效率下降
最好在15到50分钟之间
本文地址:https://blog.csdn.net/sunweihao2019/article/details/107816238
推荐阅读
-
Android 百度地图定位实现仿钉钉签到打卡功能的完整代码
-
当页面引入百度地图时,谷歌浏览器的控制台会弹出一个警告信息
-
详解Android Studio3.5及使用AndroidX的一些坑
-
Android Studio列表用法之一:ListView图文列表显示(实例)
-
Android Studio 一键生成Json实体类教程
-
Android Studio 通过一个登录功能介绍SQLite数据库的使用
-
Android百度地图之方向感应和模式更改
-
解决Android studio用真机调试时logcat一直输出日志问题
-
C#开发Android百度地图手机应用程序(多地图展示)
-
Android studio Kotlin中配置GRPC和protobuf时出现的一些问题总结