利用百度地图sdk实现定位
第一步先获取百度地图的ak码
第二步下载百度地图的开发包
第三步as中导入包
第四步根据官方文档实现定位
Android Studio配置
首先需要下载百度地图开发所需的第三方库(下载地址),选择标准版jar开发包。将解压后的所有文件添加到申请AK时使用的项目文件中的lib目录中。然后在app目录下的build.gradle文件中android块中配置sourceSets标签,内容如下:
sourceSets {
main {
jniLibs.srcDir 'libs'
}
}
此时就能将部分目录添加到项目视图中,现在需要将jar文件添加到项目视图中。在app目录的build.gradle的dependencies块中添加以下代码,然后右键目标jar文件,选择Add as library,就能将其加入到项目视图中。
implementation files('libs\\BaiduLBS_Android.jar')
完成以上步骤之后,就能进行接口的配置。首先配置AndroidManifest.xml文件。在<application>中加入如下代码配置开发密钥AK:
<application>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="这里填AK" />
</application>
在<application/>外部添加如下权限声明:
<!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,POI检索等 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 获取网络状态,根据网络状态切换进行数据请求网络转换 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 读取外置存储。如果开发者使用了so动态加载功能并且把so文件放在了外置存储区域,则需要申请该权限,否则不需要 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 写外置存储。如果开发者使用了离线地图,并且数据写在外置存储区域,则需要申请该权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
manifest.xml文件
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.mapcx"><applicationandroid:name=".mapcx1"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/Theme.Mapcx"><service android:name="com.baidu.location.f"android:enabled="true"android:process=":remote"/><activityandroid:name=".MainActivity"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="TwB6oOwPpwyTm6s************" /></application><!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,POI检索等 --><uses-permission android:name="android.permission.INTERNET" /><!-- 获取网络状态,根据网络状态切换进行数据请求网络转换 --><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- 这个权限用于进行网络定位 --><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><!-- 这个权限用于访问GPS定位 --><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><!-- 读取外置存储。如果开发者使用了so动态加载功能并且把so文件放在了外置存储区域,则需要申请该权限,否则不需要 --><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><!-- 写外置存储。如果开发者使用了离线地图,并且数据写在外置存储区域,则需要申请该权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> </manifest>
mainactivity.java文件
package com.example.mapcx;import androidx.appcompat.app.AppCompatActivity;import android.app.Activity; import android.os.Bundle;import com.baidu.location.BDAbstractLocationListener; import com.baidu.location.BDLocation; import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.MapView; import com.baidu.mapapi.map.MyLocationData;public class MainActivity extends Activity {public MapView mMapView = null;public BaiduMap mBaiduMap;public LocationClient mLocationClient = null;public LocationClientOption option=new LocationClientOption();//BDAbstractLocationListener为7.2版本新增的Abstract类型的监听接口//原有BDLocationListener接口暂时同步保留。具体介绍请参考后文中的说明public class MyLocationListener extends BDAbstractLocationListener {@Overridepublic void onReceiveLocation(BDLocation location) {//mapView 销毁后不在处理新接收的位置if (location == null || mMapView == null){return;}MyLocationData locData = new MyLocationData.Builder().accuracy(location.getRadius())// 此处设置开发者获取到的方向信息,顺时针0-360.direction(location.getDirection()).latitude(location.getLatitude()).longitude(location.getLongitude()).build();mBaiduMap.setMyLocationData(locData);}}protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mMapView = findViewById(R.id.bmapView);mBaiduMap = mMapView.getMap();mBaiduMap.setMyLocationEnabled(true);mLocationClient = new LocationClient(this);option.setOpenGps(true); // 打开gpsoption.setCoorType("bd09ll"); // 设置坐标类型option.setScanSpan(1000); //设置locationClientOptionmLocationClient.setLocOption(option); //注册LocationListener监听器MyLocationListener myLocationListener = new MyLocationListener();mLocationClient.registerLocationListener(myLocationListener); //开启地图定位图层mLocationClient.start();mLocationClient.requestLocation();} }
mapcx1.java文件
package com.example.mapcx;import android.app.Application;import com.baidu.mapapi.CoordType; import com.baidu.mapapi.SDKInitializer;public class mapcx1 extends Application{@Overridepublic void onCreate() {super.onCreate();//在使用SDK各组件之前初始化context信息,传入ApplicationContextSDKInitializer.initialize(this);//自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.//包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。SDKInitializer.setCoordType(CoordType.BD09LL);}}
activitymain.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"tools:context=".MainActivity"><com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapView"android:layout_width="401dp"android:layout_height="723dp"android:clickable="true"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>
c43n/mapcx (github.com)https://github.com/c43n/mapcx
利用百度地图sdk实现定位相关推荐
- android百度地图sdk定位权限,Android:使用百度地图SDK实现定位:下载SDK、申请密钥、动态获得Android权限...
最近想实现一个打卡的功能,想到可以利用百度地图的SDK.网上有很多关于百度地图SDK定位.地图功能应用的demo,这部分倒不是很困难.但网上很多博客写的内容一般都着重于代码部分,很多下载配置和编译器设 ...
- Android利用百度地图API实现定位功能(记录)
本篇主要介绍一下如何使用百度地图API来实现定位以及地图的基本使用. 效果图如下: 步骤如下: 一.申请APIKey. (1)注册百度账号并申请开发者资质:http://developer.baidu ...
- 百度地图SDK无法定位到当前所在位置;一直显示天安门
按照百度官方SDK接入百度地图SDK后,进行地图定位的时候,缩小界面,显示出了定位图标,但是打开地图界面,一直显示天安门的位置. /*** 初始化定位内容*/private void initLoca ...
- html5 geolocation 百度地图,html5 geolocation配合百度地图api实现定位
1.了解html5 geolocation HTML5 Geolocation(地理定位)用于定位用户的位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的.=> 使用 ...
- android开发百度地图坐标偏差,利用百度地图Android sdk高仿微信发送位置功能及遇到的问题...
接触了百度地图开发平台半个月了,这2天试着模仿了微信给好友发送位置功能,对百度地图的操作能力又上了一个台阶 我在实现这个功能的时候,遇到一些困难,可能也是别人将会遇到的困难,特在此列出 1.在微信发送 ...
- 关于百度地图SDK的andriod开发的定位功能实现
基于Android Studio的汽车定位追踪系统的设计 摘要:随着经济的发展和汽车化时代的到来,人们对于车辆的服务的智能化,便捷化提出了更高的要求.文章主要研究通过软件编写一个汽车定位追踪系统,并利 ...
- Android中级篇之百度地图SDK v3.5.0-一步一步带你仿各大主流APP地图定位移动选址功能
from: http://blog.csdn.net/y1scp/article/details/49095729 定位+移动选址 百学须先立志-学前须知: 我们经常在各大主流APP上要求被写上地址, ...
- android百度地图定位自定义图标,百度地图SDK集成及根据坐标实现定位(android studio开发)...
百度地图SDK集成及根据坐标实现定位(android studio开发) 百度地图SDK集成及根据坐标实现定位(android studio开发) 1.下载百度地图SDK 链接:http://lbsy ...
- Android studio 百度地图SDK之地图定位与运动轨迹绘制
百度地图定位与运动轨迹 Android开发的前期准备 地图图层显示与定位 运动轨迹的简单绘制 Android开发的前期准备 Android配置在百度地图SDK官网上有详细的说明.具体可以参考官网的教程 ...
最新文章
- asp.net TemplateField模板中的Bind方法和Eval方法
- 苹果降低应用商店收入一半分成、Twitter视频分享功能 Fleet、百度36亿美元收购 YY|Decode the Week...
- 指定时间的月初和月末一天的写法
- Java类class isAssignableFrom()方法及示例
- c语言 a 0,[整理]C语言中的a,a和a[0]
- Linux用sendmail发信失败,提示Connection refused by [127.0.0.1]
- SpringBoot+Mybatis集成搭建
- vue mianjs 引用css_7个有用的Vue开发技巧
- 海量数据挖掘MMDS week2: 频繁项集挖掘 Apriori算法的改进:基于hash的方法
- 科学期刊中关于计算机视觉,计算机视觉相关专业JCR1区期刊
- 利用dlib和opencv建立人脸识别数据集并进行人脸识别
- 【深入浅出图像算法】图像处理算法入门好文
- Axure元件-内联框架设计网页
- 洛谷1260 工程规划
- 京东青龙面板撸豆_搭建环境流程
- 企业云服务器的选择与配置指南
- 斧乃木余接win10主题分享
- 1-106兔子繁衍问题
- turlebot3 ROS相关求助
- 称为超级计算机,哪台机器被称为世界上最快的超级计算机?
热门文章
- 邪恶心理学-真实面对谎言的本质
- DATEADD() 函数详细说明
- 明翰英语教学系列之雅思阅读篇V0.9(持续更新)
- 空洞骑士复活歌女玛丽莎的方法(复活其他灵魂NPC同理)
- 中国人越来越不愿买新车!二手车电商上半年融资150亿元,谁是大赢家?
- 云原生—Rust编程语言能与C/C++媲美
- ImageNet无监督学习最佳性能一次提升7%,媲美监督学习
- direct3d D3DXCreateTextureFromResource 加载png
- 名风新浪博客评论软件-自动评论推广
- ios重签名shell脚本_03:双层签名和重签名流程以及shell脚本重签名