android 百度地图 定位功能

Android项目通过百度地图开发文档,实现显示地图和定位功能 本次作业基于上次Android项目实现类微信界面后续recyclerview实现点击跳转 阅读详情

废话不多说 直接新建一个新android项目:location,然后花一分钟申请一个key,然后就是把百度定位demo抄一下就行

1:首先在AndroidManifest.xml中添加权限

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

2:在AndroidManifest.xml文件中使用自己写的Application 在application节点中加上一行代码

android:name="com.baidu.baidulocationdemo.LocationApplication" 

3:在application节点上 复制如下内容

<service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote" >
            <intent-filter>
                <action android:name="com.baidu.location.service_v2.2" >
                </action>
            </intent-filter>
        </service>
        <!-- meta-data需要写在application中 -->
        <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="xAxmR5WgrssC9ATV8gZOvq96" />

在这注意需要把换成自己申请的key

4:配置就算ok了,那么就写代码么,谁叫我们是码农呢? 首先看下自己定义的类MyApplication.java

package com.example.location;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.Poi;
import android.app.Application;
import android.app.Service;
import android.os.Vibrator;
import android.util.Log;
import android.widget.TextView;
import java.util.List;

public class MyApplication extends Application {
    public LocationClient mLocationClient;
    public MyLocationListener mMyLocationListener;
    public TextView mLocationResult,logMsg;
    public TextView trigger,exit;
    public Vibrator mVibrator;
		@Override
		public void onCreate() {
			super.onCreate();
			 mLocationClient = new LocationClient(this.getApplicationContext());
	        mMyLocationListener = new MyLocationListener();
	        mLocationClient.registerLocationListener(mMyLocationListener);
	        mVibrator =(Vibrator)getApplicationContext().getSystemService(Service.VIBRATOR_SERVICE);
		}
		
		 /**
	     * 实现实时位置回调监听
	     */
	    public class MyLocationListener implements BDLocationListener {
	        @Override
	        public void onReceiveLocation(BDLocation location) {
	            StringBuffer sb = new StringBuffer(256);
	            sb.append("time : ");
	            sb.append(location.getTime());
	            sb.append("\nerror code : ");
	            sb.append(location.getLocType());
	            sb.append("\nlatitude : ");
	            sb.append(location.getLatitude());
	            sb.append("\nlontitude : ");
	            sb.append(location.getLongitude());
	            sb.append("\nradius : ");
	            sb.append(location.getRadius());
	            if (location.getLocType() == BDLocation.TypeGpsLocation){// GPS定位结果
	                sb.append("\nspeed : ");
	                sb.append(location.getSpeed());// 单位:公里每小时
	                sb.append("\nsatellite : ");
	                sb.append(location.getSatelliteNumber());
	                sb.append("\nheight : ");
	                sb.append(location.getAltitude());// 单位:米
	                sb.append("\ndirection : ");
	                sb.append(location.getDirection());
	                sb.append("\naddr : ");
	                sb.append(location.getAddrStr());
	                sb.append("\ndescribe : ");
	                sb.append("gps定位成功");

	            } else if (location.getLocType() == BDLocation.TypeNetWorkLocation){// 网络定位结果
	                sb.append("\naddr : ");
	                sb.append(location.getAddrStr());
	                //运营商信息
	                sb.append("\noperationers : ");
	                sb.append(location.getOperators());
	                sb.append("\ndescribe : ");
	                sb.append("网络定位成功");
	            } else if (location.getLocType() == BDLocation.TypeOffLineLocation) {// 离线定位结果
	                sb.append("\ndescribe : ");
	                sb.append("离线定位成功,离线定位结果也是有效的");
	            } else if (location.getLocType() == BDLocation.TypeServerError) {
	                sb.append("\ndescribe : ");
	                sb.append("服务端网络定位失败,可以反馈IMEI号和大体定位时间到loc-bugs@baidu.com,会有人追查原因");
	            } else if (location.getLocType() == BDLocation.TypeNetWorkException) {
	                sb.append("\ndescribe : ");
	                sb.append("网络不同导致定位失败,请检查网络是否通畅");
	            } else if (location.getLocType() == BDLocation.TypeCriteriaException) {
	                sb.append("\ndescribe : ");
	                sb.append("无法获取有效定位依据导致定位失败,一般是由于手机的原因,处于飞行模式下一般会造成这种结果,可以试着重启手机");
	            }
	            sb.append("\nlocationdescribe : ");// 位置语义化信息
	            sb.append(location.getLocationDescribe());
	            List<Poi> list = location.getPoiList();// POI信息
	            if (list != null) {
	                sb.append("\npoilist size = : ");
	                sb.append(list.size());
	                for (Poi p : list) {
	                    sb.append("\npoi= : ");
	                    sb.append(p.getId() + " " + p.getName() + " " + p.getRank());
	                }
	            }
	            logMsg(sb.toString());
	            Log.i("BaiduLocationApiDem", sb.toString());
	        }
	    }
	    /**
	     * 显示请求字符串
	     * @param str
	     */
	    public void logMsg(String str) {
	        try {
	            if (mLocationResult != null)
	                mLocationResult.setText(str);
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
	    }
}

这里是直接从百度定位sdk demo中复制过来的,这个不需要去敲,因为它没啥技术和逻辑可言.

5:MainActivity.java

package com.example.location;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.location.LocationClientOption.LocationMode;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {
	private TextView tv_locaiton_result;
	private LocationClient mLocationClient;
	private LocationMode tempMode = LocationMode.Hight_Accuracy;
	private String tempcoor="gcj02";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		mLocationClient = ((MyApplication)getApplication()).mLocationClient;
		tv_locaiton_result = (TextView) findViewById(R.id.tv_locaiton_result);
		((MyApplication)getApplication()).mLocationResult = tv_locaiton_result;
		initLocation();
	}
	 private void initLocation(){
	        LocationClientOption option = new LocationClientOption();
	        option.setLocationMode(tempMode);//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
	        option.setCoorType(tempcoor);//可选,默认gcj02,设置返回的定位结果坐标系,
	        int span=5000;
	        option.setScanSpan(span);//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
	        option.setOpenGps(true);//可选,默认false,设置是否使用gps
	        option.setLocationNotify(true);//可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果
	        option.setIgnoreKillProcess(true);//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
	        option.setEnableSimulateGps(false);//可选,默认false,设置是否需要过滤gps仿真结果,默认需要
	        option.setIsNeedLocationDescribe(true);//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”
	        option.setIsNeedLocationPoiList(true);//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
	        mLocationClient.setLocOption(option);
	        mLocationClient.start();
	    }
}

ok,定位就好了 不过这是定位获取到地址,地图上显示  下次弄  



Android接入百度地图SDK,实现地图定位功能 Android实现百度地图与地位功能,最近项目再用,就拿出来分享一下。 阅读详情

相关推荐

Android Studio 开发百度地图实现定位功能

这里写自定义目录标题Android Studio 开发百度地图实现定位功能Android SDK下载和配置显示地图定位MainActivity总体代码 Android Studio 开发百度地图实现定位功能 在开发之前需要获取百度地图开发KEY,注册百度地图开发平台账户 进入控制台——我的应用——创建应用 自定义应用名称 应用类型为Android SDK 获取SHA1:在Android Studio Terminal终端转到路径C:\Users\username.android 命令行输入:keytool

weixin_42940693的博客 1555

安卓百度地图定位功能的实现

发起定位后,即可获取所需要的信息@Override//此处的BDLocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果if (null!

lizhong 2149

Android应用中实现百度地图定位与路线规划

本文还有配套的精品资源,点击获取 简介:本文详细介绍了如何在Android应用中利用百度地图API实现位置定位和路线规划功能,包括SDK的集成、权限申请、地图初始化、定位服务的启动与监听以及多种路线规划方案的实现。文中还讨论了潜在的bug问题,并给出了解决建议,以便开发者可以更好地利用百度地图API提升应用的用户体验。 1. 百度地图SDK集成与配置 在开发...

weixin_36197669的博客 2487

Android开发之百度地图定位

Andriod开发之百度地图定位

不服输的小乌龟 7977

Android Studio集成百度地图定位功能详解

MapView 是百度地图 Android SDK 提供的核心组件,它允许开发者在 Android 应用中嵌入一个地图视图,通过它可以实现地图展示、缩放、定位、图层控制等多种功能。MapView 组件能够响应用户的交互操作,如手势缩放、平移等,并且可以通过编程的方式实现更多高级功能,比如路线规划、地点搜索等。要利用好 MapView 组件,开发者需要了解其基础属性和方法,这样才能够在应用中灵活运用。

weixin_33256096的博客 1448

Android 百度地图定位功能实践指南

在移动应用开发中,地图定位功能是提供地理位置服务的核心组件之一。它不仅能够帮助用户确定自身所在位置,还能结合地理信息为用户提供路线规划、周边查询等增值服务。对于Android平台而言,集成第三方地图服务API(如百度地图API),可以极大丰富应用的功能性和用户体验。本章节将对百度地图定位功能进行一个简要的介绍,为开发者提供一个全局视角来理解地图定位服务的工作原理以及其在Android平台中的应用方法。

weixin_35706067的博客 877

基于百度地图实现Android定位功能实现(详解+教程)

基于百度地图实现Android定位功能实现(详解+教程)初始化(一)获取到SHA1Android studio 配置定位功能实现 初始化 (一)获取到SHA1 首先你得注册和获取密钥,这里就直接参考百度地图的教程即可 链接: 注册. 这里,我想重点说的是获取sha1,(因为小编就是在这花了很多时间)。 我们以Android studio为例, (1)找到View中的Tool Windows并打开Terminal (2)找到你的jdk的bin目录,小编这里是 C:\Program Files\Java\jd

qq_45353823的博客 2万+

Android应用中的百度地图定位与截图功能实现指南

本文还有配套的精品资源,点击获取 简介:本文详细指导如何在Android应用中通过百度地图API集成实现定位和截图功能。首先需要在百度地图开放平台注册账号,获取API密钥。之后,文章介绍了如何集成百度地图SDK,配置必要的权限,初始化地图,并实现定位功能。最后,讲解了如何通过Android原生方法实现地图视图的截图保存。该指南还提到在开发中需要注意的用户体验优化和版本适配等问题。 在移动应用开发中,地图服务已成为一项不可或缺的功能。百度地图API提供了

weixin_34535286的博客 656

Android如何实现地图定位?Android studio+百度地图API+Android6.0系统实现地图显示、地址设置、点击地图定位功能(详细)

本文初衷是为了记录毕设学习过程,避免忘记操作流程。该功能是毕业设计的Android软件端的功能之一,本文将从获取百度地图密钥(AK)开始,详细地对地图定位配置和相关代码进行说明,文末将附上实现该功能的代码。后续等答辩完成会把整个Android端代码上传。

Uncoverlove的博客 1万+

抖音视频数据抓取

最近经常有人问我抓取抖音视频的数据,问我一些很小白的问题,算法给他也不会用。 还是先抓包,获取需要的接口和参数,相关的算法在其它文章里面有描述。 搜索个视频看看 查看抓的包信息: 可以看到,这里是post请求...

2501_91048859的博客 3097

【Unity】Spine动态换装进阶:SkeletonGraphic插槽级皮肤切换与内存优化

本文深入探讨了Unity中Spine动态换装的进阶技术,重点解析了SkeletonGraphic插槽级皮肤切换的实现原理与内存优化策略。通过代码示例展示了如何高效管理皮肤实例、避免内存泄漏,并提供了对象池、纹理合并等性能优化方案,帮助开发者提升2D角色换装系统的运行效率与稳定性。

food6的博客 196

Android实现基于百度地图的定位功能(附带源码)

Android实现基于百度地图的定位功能(附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 1894

cutlass2.x源码解读之PitchLinearStripminedThreadMap

TensorCoord:使用layout::PitchLinearCoord作为张量坐标。Shape:使用模板参数Shape_作为tile的形状,kThreads:线程总数,定义为模板参数Threads。kElementsPerAccess:每次访问的元素数,定义为模板参数ElementsPerAccess。ThreadAccessShape:线程访问的形状,使用layout::PitchLinearShape定义。内部实现细节:ShapeVec。

jiangjkd的专栏 787

基于百度地图实现Android定位功能实现

基于百度地图实现安卓定位

weixin_51059385的博客 3415

OP-TEE虚拟化支持详解

OP-TEE虚拟化支持解析 OP-TEE提供实验性虚拟化方案,支持多虚拟机共享安全执行环境。核心特性包括: 配置选项:CFG_VIRTUALIZATION启用虚拟化,CFG_VIRT_GUEST_COUNT限制虚拟机数量并分配均等内存资源; Hypervisor协作:需实现虚拟机生命周期通知、SMC参数转换、内存固定等关键协议; 当前限制:仅支持Armv8架构,硬件资源共享有限,采用静态内存配额机制; 架构实现:通过MMU分区切换和扩展内存分配器实现多租户隔离,Nexus核心层管理虚拟机上下文。该方案适用于

Linux内核架构师 109

58子站安居,经纪人营销管理平台登录接口加密逆向

实战场景password 实战分析 本次要解决的站点依旧来源自78技术人社群,有朋友希望再次说明一下其登录模块的加密参数寻找与逆向逻辑,本文我们就一起分析一下。 站点地址为:vip.anjuke.com/portal/login 通过开发者工具,可以简简单单的寻找到相应的数据。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 2万+

android 百度地图定位功能实现

历经几天时间,终于把定位功能给实现了,可谓是费劲千辛万苦啊,有定位知识还有图层知识,在这里我把代码给大家贴出来,一起分享一下下啦。 package com.example.foreveross.office; import com.baidu.location.BDLocation; import com.baidu.location.BDLocationListener; import co

千里之行,始于足下 3165

ADS基础教程24 - Gerber文件的导入

一、引言二、基本概念1.仿真文件下载2.仿真文件介绍二、导入步骤1.新建workspace2.选择Layout结构3.导入设计4.选择文件类型5.导入文件6.预览文件内容7.铜皮离散问题四、总结选择。通过本文章结束,可以了解ADS中如何将导入Gerber文件,并且对导入的铜皮进行合并。下一步就针对导入的文件进行层叠设置和编辑。END!}}END!

XZ_ZC的博客 3049

Android使用百度地图SDK实现定位功能

百度地图的sdk在地图和定位方面是非常有用的开发工具。我们应该学会如何使用它,最近的小项目中使用到了定位功能,于是自然想到了使用百度地图sdk。接下来讲一下怎么使用它的定位sdk实现简单的定位功能。 首先你需要登录百度账号,注册成为开发者。链接如下: http://lbsyun.baidu.com/ 然后,我们选择Android定位SDK http://lbsyun.baidu.com/in

qq356653246的博客 1310

OpenClaw 安装失败:npm install 多次报错的完整排错与解决方案

这次问题的最终解决,其实并不复杂,但关键在于思路的转变:从“脚本怎么又失败了”,切换为“npm 在这一层到底失败在哪里”。当我们手动复现安装过程、打开 verbose 日志、直面真实错误栈时,问题就不再是模糊的“安装不了”,而是一个可以被定位、被验证、被修复的具体工程问题。

博客 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Android-百度地图-定位功能

在上一篇android-百度地图-手机显示地图的基础上,实现定位功能; 这里先说明一下几个比较重要的类: LocationClient :定位服务的客户端。宿主程序在客户端声明此类,是实现百度SDK,Android定位的核心类. LocationClientOption:该类用来设置定位SDK的定位方式。配置定位SDK各配置参数,比如定位模式、定位时间间隔、坐标系类型等 BDLoc

hanyuboke的专栏 823

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android中有签到和定位功能,Android如何实现百度地图地点签到功能

Android如何实现百度地图地点签到功能发布时间:2020-08-04 14:42:46来源:亿速云阅读:104作者:小猪小编这次要给大家分享的是Android如何实现百度地图地点签到功能,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。前言:先写个简单的地点签到功能,如果日后有时间细写的话,会更加好好研究一下百度地图api,做更多逻辑判断。这里主要是调用百度...

weixin_35692838的博客 1013

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Android开发之百度地图定位打卡资源文件介绍:集成百度地图,实现定位打卡功能

Android开发之百度地图定位打卡资源文件介绍:集成百度地图,实现定位打卡功能 去发现同类优质开源项目:https://gitcode.com/ 在移动应用开发中,地图定位功能已成为许多应用的标配。本文将为您详细介绍一个Android开发资源文件,它为开发者提供了一种便捷的方式,集成百度地图SDK并实现定位打卡功能。 项目介绍 本项目是一个面向Android开发者的资源文件,专注于百度地图定位打...

gitblog_06764的博客 630

Android百度地图之定位功能(结合百度地图API)

在上一篇博客中我为大家已经介绍了

我是小小舒 1983
上一篇: 百度地图 key申请以及基础地图的演示
下一篇: android 八个月学习计划表
zhoushenxian
博客等级 码龄12年 453粉丝 549原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值