安卓学习之百度地图定位

本文介绍了如何在Android应用中使用百度地图API进行定位和地图展示。从申请API Key到集成百度LBS SDK,再到获取和显示经纬度,以及设置定位模式,详细阐述了每个步骤。同时,讲解了如何在地图上显示用户位置以及实现地图的初始化、移动和用户标记功能。
摘要由CSDN通过智能技术生成

1.基于位置服务的简介

基于位置的服务简称 LBS:Location Based Service

2.申请API Key

1.登录你的百度账号,并打开http://developer.baidu.com/user/reg 这个网址,在这里填写一些注册信息即可

2.接着访问http://lbsyun.baidu.com/apiconsole/key 这个地址,然后同意百度开发者协议

3.填写 发布版SHA1和开发版SHA1:我们申请API Key所必须填写的一个字段,它指的是打包程序时所用签名文件的SHA1指纹,可以通过Android Studio查看到。打开Android Studio中的任意一个项目,点击右侧工具栏的Gradle→项目名→:app→Tasks→android;其中signingReport这个Task就可以用来查看签名文件信息。双击signingReport: SHA1就是指纹签名。

30:DF:7E:57:2F:BE:87:D9:3A:74:B1:F6:E3:C2:17:94:A5:7C:0D:EC

这是Android自动生成的一个用于测试的签名文件。而当你的应用程序发布时还需要创建一个正式的签名文件,如果要得到它的指纹,可以在cmd中输入如下命令,然后输入正确的密码就可以了。创建签名文件的方法我们将在第15章中学习

keytool -list -v –keystore <签名文件路径>

4.现在得到的这个SHA1指纹实际上是一个开发版的SHA1指纹,不过因为暂时我们还没有一个发布版的SHA1指纹,因此这两个值都填成一样的就可以了。最后还剩下一个包名选项,虽然目前我们的应用程序还不存在,但可以先将包名预定下来,比如就叫com.example.lbstest,这样所有的内容就都填写完整了

5.提交之后,就会生成一个API Key.

wf6in1iOSXsbgypdfvD5tQDxqOIiL23G

3.使用百度定位

1.准备LBS SDK

1.下载地址:https://lbs.baidu.com/index.php?title=sdk/download&action#selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool,mapsdk_radar

2.libs目录下的内容又分为两部分,BaiduLBS_Android.jar这个文件是Java层要使用到的,其他子目录下的so文件是Native层要用到的

3.将BaiduLBS_Android.jar复制libs目录

4.在main文件夹下面新建一个jniLibs目录,将剩余的文件夹复制到里面去

5.jar文件还没有引入,需要点击右上角按钮进行同步

2.确定自己位置的经纬度

1.首先修改activity_main.xml中的代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <TextView
        android:id="@+id/position_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

2.修改AndroidManifest.xml文件中的代码

?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lbstest">

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET"/>

    <uses-permission android:name="android.permission.WAKE_LOCK"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="wf6in1iOSXsbgypdfvD5tQDxqOIiL23G" />

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

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

</manifest>

3.接下来修改MainActivity中的代码

package com.example.lbstest;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值