借助百度地图api实现显示地图,自动定位功能
2015-11-17 20:45
926 查看
1.首先copy三个文件
libBaiduMapSDK_v3_3_0_15.so
liblocSDK5.so
点击打开链接
这两个放在libs下边新建的armeabi文件夹中.
BaiduLBS_Android.jar放在libs下。
2.在layout.xml增加com.baidu.mapapi.map.MapView标签
3.添加权限
关于这个key,你需要百度上进行注册:
注册地址:点击打开链接
注册号:你电脑eclipse的SHA1值+“;”+packagename;
成功后就会有一个apk值,你可以填在这里
5.在你的Application的oncreate()方法中对地图初始化,SDKInitializer.initialize(this);
这时百度地图应该就可以显示在你的界面了,下面来讲定位
6.声明一些控件 及类
MapView 控件
BaiduMap ,LocationClient类
7.写BDLocationListener的实现类,重写onReceiveLocation()方法,在此方法中获得经纬度。
新建一个封装经纬度的类LatLng(这个类是地图的中心点),新建一个地图显示级别的类MapStatusUpdate类,用来控制地图显示的级别(即大小);
最后baiduMap.animateMapStatus()即可定位到你现在所在的位置了。
8.接下来我们需要在oncreate方法中设定一些配置了
9.最好我们还是在地图上添加一张图片,这样才可以明确表明我们所在的位置。
11.至此,定位功能基本上就实现了。如果你想看demo,点击下边下载。
点击打开链接
libBaiduMapSDK_v3_3_0_15.so
liblocSDK5.so
点击打开链接
这两个放在libs下边新建的armeabi文件夹中.
BaiduLBS_Android.jar放在libs下。
2.在layout.xml增加com.baidu.mapapi.map.MapView标签
3.添加权限
<uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" > </uses-permission> <uses-permission android:name="android.permission.CALL_PHONE" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" > </uses-permission> <uses-permission android:name="android.permission.INTERNET" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" > </uses-permission> <!-- <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission> --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" > </uses-permission> <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> <uses-permission android:name="android.permission.WAKE_LOCK" > </uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_GPS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.READ_SMS" /> <uses-permission android:name="android.permission.SEND_SMS" /> <!-- SDK1.5闂団偓鐟曚工ndroid.permission.GET_TASKS閺夊啴妾洪崚銈嗘焽閺堫剛鈻兼惔蹇旀Ц閸氾缚璐熻ぐ鎾冲鏉╂劘顢戦惃鍕安閻? --> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.CAMERA" > </uses-permission> <uses-permission android:name="android.permission.RECORD_AUDIO" > </uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" > </uses-permission> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <!-- 閺夈儳鏁稿☉鍫ョ叾 --> <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" > </uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <!-- 鏈夌背浼犲獟 Android SDK 鎵€闇€鏉冮檺 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 鍙€? --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.GET_TASKS" />4.添加service及meta
<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" > </service>
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="你自己应用的key" />
关于这个key,你需要百度上进行注册:
注册地址:点击打开链接
注册号:你电脑eclipse的SHA1值+“;”+packagename;
成功后就会有一个apk值,你可以填在这里
5.在你的Application的oncreate()方法中对地图初始化,SDKInitializer.initialize(this);
这时百度地图应该就可以显示在你的界面了,下面来讲定位
6.声明一些控件 及类
MapView 控件
BaiduMap ,LocationClient类
7.写BDLocationListener的实现类,重写onReceiveLocation()方法,在此方法中获得经纬度。
新建一个封装经纬度的类LatLng(这个类是地图的中心点),新建一个地图显示级别的类MapStatusUpdate类,用来控制地图显示的级别(即大小);
最后baiduMap.animateMapStatus()即可定位到你现在所在的位置了。
8.接下来我们需要在oncreate方法中设定一些配置了
baiduMap=mapView.getMap(); //注册定位的实现类 MyBdLocationListener myBdlocationlistener=new MyBdLocationListener(); locationClient=new LocationClient(this); locationClient.registerLocationListener(myBdlocationlistener); //设置定位的参数 LocationClientOption option=new LocationClientOption(); option.setOpenGps(true); //坐标类型 option.setCoorType("bd0911"); //每隔2秒得一次坐标 少于1000,只得一次 option.setScanSpan(1); locationClient.setLocOption(option); locationClient.start();
9.最好我们还是在地图上添加一张图片,这样才可以明确表明我们所在的位置。
public void addImage(LatLng currentPosition) { //在地图上添加一个图 MarkerOptions markeroptions=new MarkerOptions(); //设置坐标 markeroptions.position(currentPosition); //设置图片 markeroptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.map_overlay_blue)); //添加到地图上 baiduMap.addOverlay(markeroptions); }10.如果你想可以在地图上点击添加图片可以添加baiduMap的点击事件。
baiduMap.setOnMapClickListener(new OnMapClickListener() { @Override public boolean onMapPoiClick(MapPoi arg0) { // TODO Auto-generated method stub return false; } @Override public void onMapClick(LatLng clickPosition) { //将以前的定位图片清除掉。 baiduMap.clear(); addImage(clickPosition); } });
11.至此,定位功能基本上就实现了。如果你想看demo,点击下边下载。
点击打开链接
相关文章推荐
- java io流读写文件
- PHP常用函数
- C语言 数字金字塔;字母金字塔
- 跳台阶
- 设置VS2015上关闭和打开tab快捷键
- tomcat8和7关于自定义tag的处理区别
- ios Block详细用法
- Docker(六):容器
- 【SSH进阶之路】Hibernate搭建开发环境+简单实例(二)
- java基础笔记
- 在uistoryboard中实现scrollView的添加内容的操作注意事项
- Linux<十四> 软件安装管理
- JSP运行原理、指令元素及内建对象
- fpga状态机详解
- NOIP2015滚粗记 续
- poj3696.The Luckiest number (阶 && 欧拉函数 && 欧几里德)
- LeetCode Binary Tree Right Side View (DFS/BFS)
- JavaScript DOM编程艺术—动态创建标记
- php的url构造
- C语言存储区域的划分