Android 百度地图简单使用
来源:互联网 发布:c语言文件分隔符 编辑:程序博客网 时间:2024/06/05 02:34
介绍一下百度地图的基本配置,首先自行注册百度开发者账号,创建一个应用。在Android工程的manifest文件中添加权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /><uses-permission android:name="android.permission.WAKE_LOCK"/><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_SETTINGS" />
在Application中添加:
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="应用密钥" /> <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" />//最新的好像不需要下面这个servive下载百度地图SDK:
将jar文件放到工程的libs目录,在app的java同级创建jniLibs,把其他的放进去。
在xml布局文件放入地图控件:
<com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" />
主代码如下:
public class MainActivity extends AppCompatActivity implements BDLocationListener{ private MapView mMapView = null; private BaiduMap mBaiduMap = null; private BitmapDescriptor mCurrentMarker = null; private LocationClient mLocationClient = null; @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); mBaiduMap = mMapView.getMap(); // 开启定位图层 mBaiduMap.setMyLocationEnabled(true); // 设置定位图层的配置(定位模式,是否允许方向信息,用户自定义定位图标) MyLocationConfiguration.LocationMode mCurrentMode = MyLocationConfiguration.LocationMode.FOLLOWING; MyLocationConfiguration config = new MyLocationConfiguration(mCurrentMode, true, mCurrentMarker); mBaiduMap.setMyLocationConfigeration(config); //触摸地图时,取消中心固定在定位坐标 mBaiduMap.setOnMapTouchListener(new BaiduMap.OnMapTouchListener() { @Override public void onTouch(MotionEvent motionEvent) { MyLocationConfiguration config = new MyLocationConfiguration(null, true, mCurrentMarker); mBaiduMap.setMyLocationConfigeration(config); } }); mLocationClient = new LocationClient(getApplicationContext()); //声明LocationClient类 mLocationClient.registerLocationListener(this); //注册监听函数 //设置定位参数 LocationClientOption option = new LocationClientOption(); option.setOpenGps(true); option.setCoorType("bd09ll");//返回的定位结果是百度经纬度,默认值gcj02 option.setScanSpan(1000); mLocationClient.setLocOption(option); mLocationClient.start(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 mMapView.onPause(); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 mMapView.onResume(); } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 // 退出时销毁定位 mLocationClient.stop(); // 关闭定位图层 mBaiduMap.setMyLocationEnabled(false); mMapView.onDestroy(); mMapView = null; } @Override public void onReceiveLocation(BDLocation bdLocation) { // 构造定位数据 MyLocationData locData = new MyLocationData.Builder() .accuracy(bdLocation.getRadius()) // 此处设置开发者获取到的方向信息,顺时针0-360 .direction(100).latitude(bdLocation.getLatitude()) .longitude(bdLocation.getLongitude()).build(); // 设置定位数据 mBaiduMap.setMyLocationData(locData); }}
0 0
- Android 百度地图简单使用
- 【实训】Android 百度地图SDK简单使用
- 百度地图简单使用
- 百度地图 - 简单使用
- Android百度地图使用
- Android百度地图使用
- Android百度地图使用
- Android 百度地图使用
- android 百度地图简单使用(android Studio )
- Android 百度地图简单定位
- Android 百度地图简单定位
- 【html5百度地图】简单使用
- 简单的使用百度地图
- 百度地图的简单使用
- iOS百度地图简单使用
- 百度地图的简单使用
- 百度地图api简单使用
- 百度地图 Android SDK - 检索功能使用的简单示例
- kettle自定义常量模块注意事项
- maven阿里云中央仓库
- [转]在公司混日子,伤害的是自己!
- android ---java.lang.RuntimeException: Parcel: unable to marshal value
- 事务控制概述
- Android 百度地图简单使用
- 第十二周oj题目将度分秒转换为弧度
- 深刻理解getLocationInWindow 和 getLocationOnScreen区别
- HDU2602 Bone Collector(01背包)
- jQuery回调、递延对象总结(中篇) —— 神奇的then方法
- mmap详解
- Git命令
- 点击小图查看大图jQuery插件FancyBox魔幻灯箱
- leetcode_232. Power of Two分析