Android实现百度地图定位(墨雪亲测)
1.到百度地图开放平台下载定位SDK:
地址:http://lbsyun.baidu.com/index.php?title=android-locsdk/geosdk-android-download
解压下载的文件,把其中的 armeabi 文件夹拷贝到安卓项目的 libs 目录下,同时把解压得到的文件中的jar文件拷贝到 libs 目录下。
项目右键 -> Properties -> Java Build Path -> Libraries -> add External Jars -> 选择硬盘目录下的jar包文件,然后引入。
再把jar文件直接复制到该项目中。
得到:
2.在百度地图开放平台申请密匙。
得到:VncByZSyzFUSFZLlZzpktOBbLgMUKnZl
3.在项目AndroidManifest.xml中添加权限及注册。
权限:
<!-- 这个权限用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" > </uses-permission> <!-- 这个权限用于访问GPS定位 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" > </uses-permission> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > </uses-permission> <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > </uses-permission> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 --> <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" /> <!-- SD卡读取权限,用户写入离线定位数据 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" > </uses-permission> <!-- 允许应用读取低级别的系统日志文件 --> <uses-permission android:name="android.permission.READ_LOGS" > </uses-permission>
注册:类似Activity的注册,其中value=“你申请的密匙”
<meta-data
android:name="com.baidu.lbsapi.API_KEY"android:value="VncByZSyzFUSFZLlZzpktOBbLgMUKnZl" /><service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" > </service>
4.最后在Activity中写代码:
public class MainActivity extends Activity /*implements OnClickListener */{ private static final String TAG = "dzt"; private TextView mText; private TextView mTextPoi; private LocationClient mLocationClient = null; private BDLocationListener myListener = new MyLocationListener(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_weather); mLocationClient = new LocationClient(getApplicationContext());mLocationClient.registerLocationListener(myListener); // 注册监听函数 setLocationOption(); mLocationClient.start();// 开始定位 //initWidgets(); mText = (TextView) findViewById(R.id.tv_text); mTextPoi = (TextView) findViewById(R.id.tv_text_poi); Button btn1 = (Button) findViewById(R.id.btn_request);Button btn = (Button) findViewById(R.id.btn_request_poi);if (mLocationClient != null && mLocationClient.isStarted()) mLocationClient.requestLocation(); else Log.d(TAG, "locClient is null or not started"); if (mLocationClient != null && mLocationClient.isStarted()) mLocationClient.requestPoi(); } /** * 设置相关参数 */ private void setLocationOption() { LocationClientOption option = new LocationClientOption(); option.setOpenGps(true); option.setIsNeedAddress(true);// 返回的定位结果包含地址信息 option.setAddrType("all");// 返回的定位结果包含地址信息 option.setCoorType("bd09ll");// 返回的定位结果是百度经纬度,默认值gcj02 option.setScanSpan(5000);// 设置发起定位请求的间隔时间为5000ms option.disableCache(true);// 禁止启用缓存定位 option.setPoiNumber(5); // 最多返回POI个数 option.setPoiDistance(1000); // poi查询距离 option.setPoiExtraInfo(true); // 是否需要POI的电话和地址等详细信息 mLocationClient.setLocOption(option); } public class MyLocationListener implements BDLocationListener { @Override public void onReceiveLocation(BDLocation location) { if (location == null) return; StringBuffer sb = new StringBuffer(256); sb.append("当前时间 : "); sb.append(location.getTime()); sb.append("\n错误码 : "); sb.append(location.getLocType()); sb.append("\n纬度 : "); sb.append(location.getLatitude()); sb.append("\n经度 : "); sb.append(location.getLongitude()); sb.append("\n半径 : "); sb.append(location.getRadius()); if (location.getLocType() == BDLocation.TypeGpsLocation) { sb.append("\n速度 : "); sb.append(location.getSpeed()); sb.append("\n卫星数 : "); sb.append(location.getSatelliteNumber()); } else if (location.getLocType() == BDLocation.TypeNetWorkLocation) { sb.append("\n地址 : "); sb.append(location.getAddrStr()); } mText.setText(sb.toString()); //在TextView中显示地址 Log.d(TAG, "onReceiveLocation " + sb.toString()); } public void onReceivePoi(BDLocation poiLocation) { }
Android实现百度地图定位(墨雪亲测)相关推荐
- Android开发——百度地图定位
Android开发--百度地图定位 项目需求 项目内容 注册和获取秘钥 获取项目SHA1码 获取项目AK码 AS依赖配置 AS源码 AndroidManifest文件 布局文件 DemoApplica ...
- 基于Android的百度地图定位开发
百度地图定位 一.注册和获取密钥 1.获取SHA1 2.获取包名 二.AS配置 三.显示地图开发 1.添加地图权限 2.添加地图容器 3.地图初始化 4.创建地图Activity,管理MapView生 ...
- unlegal android,cordova-plugin-baidumaplocation百度地图定位Cordova插件
百度地图定位Cordova插件,支持Android,IOS 可以在此地址查看example 基于百度地图Android版定位SDK(v7.1)以及百度地图IOS SDK (v3.2.1) 一,申请An ...
- Android使用百度地图定位并显示手机位置后使用前置摄像头“偷拍”
今天老板让我验证一下技术可行性,记录下来. 需求 :定位手机的位置并在百度地图上显示,得到位置后使用前置摄像头进行抓拍 拿到这个需求后,对于摄像头的使用不太熟悉,于是我先做了定位手机并在百度地图上显示 ...
- flutter 实现Android端百度地图定位
1.先在百度地图官网申请百度地图AK 百度地图开放平台 | 百度地图API SDK | 地图开发 2.安装flutter百度地图插件 #百度定位flutter_bmflocation: ^1.0.4# ...
- Android之百度地图定位最详细使用总结
Android之百度定位 如果项目里面有定位功能的话,一般还是觉得蛮高大上的,我们项目用的百度定位,到网上找了很多资料,很多都不全面,很多博客都没有小伙 ...
- Android使用百度地图定位SDK在wifi下位置偏差
前段时间公司上马了一个Android项目,其中用到了百度地图的定位SDK(V 3.1),上线后有用户反馈来说定位的位置不准确(我们展示给用户的地址是具体的街道地址,原来是直接使用的百度地图 SDK,需 ...
- Android — 之百度地图定位+添加Mark+InfoWindow
前言: 新手上路,这几天在弄百度地图SDK的使用(吐槽 : 官网上的开发指南简直就是实力坑爹,可能是开发人员太忙,维护不及时吧),我对本次学习的要求也不高:能正常显示地图,能定位,能添加mark(覆盖 ...
- Android利用百度地图定位
百度地图照着百度的教程做的总是出现报错 请帮我看看错误在那 2013-12-13 15:16168海军 | 分类:百度地图 | 浏览1252次 java.lang.RuntimeException: ...
最新文章
- 2022-2028年中国聚合物气体分离膜行业市场发展模式及投资前景分析报告
- api 定位 微信小程序 精度_聊聊微信小程序内置地图定位的精确性
- BeanUtils自定义转换器
- Java微服务:蛋糕是骗人的,但您不能忽略它
- SQL预编译防注入小测试
- vector源码剖析
- rust怎么传送到队友_对阵时遇到中二病怎么办?还能怎么办,溜TA就对了!
- java 调用 easypr_EasyPR-Java项目maven版本所需jar包
- SQL Server 2008 R2的完全卸载
- php mac开启socket,mac上nginx以socket的方式连接php-fpm出现502错误?
- linux查找历史记录内容,linux中查看历史记录
- 大数据与个人隐私的平衡:懂你,但不认识你
- #PixelConFi | 这个教师节,以投票代替祝福
- git学习之时光穿梭机
- ubuntu18.04安装opencv的viz模块
- 微信CRM六大模块详解
- 求二阶系统输入单位斜坡响应matlab,二阶系统的斜坡响应教程.docx
- 6.获取环球时报关键词新闻--动态网页Ajax
- 使用腾讯语音合成技术生成有声书
- 借鉴:软考高项备考考试心得,来自一名学员的总结,非常全