借助百度地图api实现显示地图,自动定位功能

原创 2015年11月17日 20:45:35

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.添加权限

 

  <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,点击下边下载。

点击打开链接


版权声明:本文为博主原创文章,未经博主允许不得转载。

百度地图API自动定位和3种导航

转自http://www.oschina.net/code/snippet_185836_50068

Fragment中实现自动定位当前城市,点击刷新按钮更新天气信息

定位用的是百度SDKv4.2接口

使用百度地图api实现定位及选择位置功能

之前使用过一些第三方的地图api,最后还是觉得百度的比较好用,刚好最近做一个项目,需要用到地图的功能,也比较简单,就是获取当前位置,然后可以自己手动在地图上选择位置,把经纬度丢给服务端。我用的就是百度...

百度地图api实现定位功能

百度地图api实现定位功能 java代码 package com.demo.an.android.location; import android.app.Activity; import ...

使用百度地图api实现定位及选择位置功能

之前使用过一些第三方的地图api,最后还是觉得百度的比较好用,刚好最近做一个项目,需要用到地图的功能,也比较简单,就是获取当前位置,然后可以自己手动在地图上选择位置,把经纬度丢给服务端。我用的就是百度...

html5借助百度地图API来实现地理定位

从百度地图API来看,有点理解了为什么有人说为什么中国程序员为什么叫码农。别人提供给你太多的方便,我们不需自己创造,主要就是熟悉了如何使用然后灵活运用,甚至是copy and then paste。 ...

(百度地图API)v4-2版本定位功能

这几天在看郭霖老师的大作,在百度地图这一张卡的好久,原因是因为百度更新迭代的速度太快了,导致老师的书上的版本已经淘汰又淘汰了,不过还是给了我很多的启发的啊。今晚自己就实现了一下百度地图的定位功能。 ...

Android使用百度地图API实现定位app

  • 2016年05月29日 20:32
  • 17.79MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:借助百度地图api实现显示地图,自动定位功能
举报原因:
原因补充:

(最多只允许输入30个字)