百度地图——定位
来源:互联网 发布:is平台源码 编辑:程序博客网 时间:2024/06/07 09:44
基础地图请查看Android百度地图API集成一《基础地图》: 地址http://www.cnblogs.com/dhr125/p/5969980.html.在Application标签中声明SERVICE组件<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"></service> <pre name="code" class="java"><!-- 这个权限用于进行网络定位--><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>
package com.example.baidumap;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;import com.baidu.mapapi.SDKInitializer;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.MapStatus;import com.baidu.mapapi.map.MapStatusUpdateFactory;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.MyLocationData;import com.baidu.mapapi.model.LatLng;public class MainActivity extends AppCompatActivity { private MapView mMapView; private BaiduMap mBaiduMap; private LocationClient mLocClient; public MyLocationListenner myListener = new MyLocationListenner(); boolean isFirstLoc = true; // 是否首次定位 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //在使用SDK各组件之前初始化context信息,传入ApplicationContext //注意该方法要再setContentView方法之前实现 SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); //获取地图控件引用 mMapView = (MapView) findViewById(R.id.bmapView);/************************************ 从这里开始是在locationdemo.java中复制的,然后根据报错,缺什么补什么 **************************************************************/ mBaiduMap = mMapView.getMap(); // 开启定位图层 mBaiduMap.setMyLocationEnabled(true); // 定位初始化 mLocClient = new LocationClient(this); mLocClient.registerLocationListener(myListener); LocationClientOption option = new LocationClientOption(); option.setOpenGps(true); // 打开gps option.setCoorType("bd09ll"); // 设置坐标类型 option.setScanSpan(1000); mLocClient.setLocOption(option); mLocClient.start();/****************************************************************************************************/ } /** * 定位SDK监听函数 */ public class MyLocationListenner implements BDLocationListener { @Override public void onReceiveLocation(BDLocation location) { // map view 销毁后不在处理新接收的位置 if (location == null || mMapView == null) { return; } MyLocationData locData = new MyLocationData.Builder() .accuracy(location.getRadius()) // 此处设置开发者获取到的方向信息,顺时针0-360 .direction(100).latitude(location.getLatitude()) .longitude(location.getLongitude()).build(); mBaiduMap.setMyLocationData(locData); if (isFirstLoc) { isFirstLoc = false; LatLng ll = new LatLng(location.getLatitude(), location.getLongitude()); MapStatus.Builder builder = new MapStatus.Builder(); builder.target(ll).zoom(18.0f); mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); } } public void onReceivePoi(BDLocation poiLocation) { } } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mMapView.onDestroy(); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 mMapView.onPause(); }}
复制代码 以上,运行代码即可在地图上显示出你的当前位置 注意:如果,运行代码出现的是定位到一片蓝色的区域,当你将地图缩小后,会发现定位在海洋里或其他地方 1.检查各个步骤有没有错误,尤其是jar包,有没有引用 2.如果是模拟器,那就换成真机测试 3.如果是真机,检查手机系统是否是6.0及以上,如果是:在build.gradle中,将targetSdkVersion 改为22
0 0
- 百度地图——定位
- 百度地图——拖拽地图定位
- 百度地图系列03——简单地图定位
- 百度地图开发(一)——地图定位
- 百度地图 定位 地图
- 百度地图,百度定位。
- 百度API———地图定位(一)*
- Android版本百度地图开发(四)——定位
- Android版本百度地图开发(四)——定位
- 第三方平台--百度地图API——定位
- Android——百度地图获取实时定位
- android百度地图开发——定位sdk
- Android — 之百度地图定位+添加Mark+InfoWindow
- 百度地图植入教程(3)—定位与方向传感器
- 百度地图学习总结(3)—定位
- 百度地图之定位
- Android 百度地图 定位
- Android百度地图定位
- 二分查找,数组
- oj打印数字图形
- 转:Redis使用认证密码登录
- static和被裁的符号表
- .bss段 .data段 C语言后汇编汇编查看代码
- 百度地图——定位
- Elastic-Job何为分布式作业
- SynchronousQueue学习笔记
- 越狱检测的攻与防
- 第一章 对象导论 1.8-1.9
- crontab
- linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
- Linux 五大初始化系统
- iOS安全攻防(十九):基于脚本实现动态库注入