文档章节

使用百度地图实现基本的地图显示与定位功能

htq
 htq
发布于 2016/07/26 09:42
字数 778
阅读 30
收藏 0
点赞 0
评论 0

最近在项目中用到了地图显示与定位功能,那么毫无疑问首选百度地图,关于百度地图的基本使用在其官网介绍的十分详细,而且还附带程序Demo代码供大家参考。链接:点击打开链接。注意在自己的项目中使用百度地图需要先注册一个百度开发者账号,然后通过一些配置操作获取一个keyStore。这个不难,但是过程很琐碎,大家可以参照百度地图API官网的步骤一步一步来,这里就不详细叙述,下面给出自己项目中使用百度地图定位功能的核心代码。


public class MainActivity extends Activity {

	private MapView mMapView;
	private BaiduMap bdMap;
	public LocationClient mLocationClient = null;
	boolean firstLoc=true; //是否首次定位
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
      //在使用SDK各组件之前初始化context信息,传入ApplicationContext  
        //注意该方法要再setContentView方法之前实现  
        SDKInitializer.initialize(getApplicationContext());  
        setContentView(R.layout.activity_main); 
        initView();
        initData();

    }


    void initView()
    {
    	  mMapView = (MapView) findViewById(R.id.bmapView);
    	  bdMap = mMapView.getMap();
    }
    void initData()
    {

    //	MapStatusUpdate update=MapStatusUpdateFactory.zoomTo(21);
    //	bdMap.setMapStatus(update);
    	
    	bdMap.setMyLocationEnabled(true);//开启定位图层
    	mLocationClient = new LocationClient(getApplicationContext());     //声明LocationClient类
        mLocationClient.registerLocationListener(mLocationClientListener);    
        mLocationClient.start();

       
    }
    private BDLocationListener mLocationClientListener =new BDLocationListener() {


		@Override
		public void onReceiveLocation(BDLocation arg0) {
			// TODO Auto-generated method stub
			if(arg0==null)
				return;
			
			float  accuracy= arg0.getRadius();
			double  lat=  arg0.getLatitude();
			double  lon= arg0.getLongitude();
    		
    		 MyLocationData.Builder build=new  MyLocationData.Builder();
    			build.accuracy(accuracy);
    			build.latitude(lat);
    			build.longitude(lon);
    			MyLocationData myLocationData=build.build();
    			bdMap.setMyLocationData(myLocationData);//设置定位数据
    		
			if (firstLoc) {
				firstLoc = false;

				MapStatus.Builder mapStatusBuilder = new MapStatus.Builder();
				LatLng ll = new LatLng(lat, lon);
				mapStatusBuilder.target(ll);
				//mapStatusBuilder.zoom(18.0f);

				MapStatus mapStatus = mapStatusBuilder.build();
				MapStatusUpdate mapUpdate = MapStatusUpdateFactory
						.newMapStatus(mapStatus);
				bdMap.animateMapStatus(mapUpdate);

			}
		}
    };
    
    
    
    protected void onDestroy() {  
        super.onDestroy();  
        //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
        locationClient.stop();
        bdMap.setMyLocationEnabled(false);
        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();  
        }  

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}
代码注释已经十分详细了,相信大家也看的懂,关于每个API的详细功能请参考百度地图API官网相关信息。

看一下运行结果,不知道为何在模拟器上运行定位结果不太准确,但是可以看到定位功能已经显示出来了(第一张图),在自己手机上定位还是非常准的(第二张图)截图如下:



希望本博客可以帮到需要在自己的项目中使用百度地图定位功能的小伙伴们,当然本博客只给出了最核心的代码,之所以给出最核心的代码是因为最核心的东西往往能最简洁的说明使用百度地图的逻辑过程,其余的一下显示方面的细节代码大家可以参考官方Demo的代码。


如果读者觉得本博客写的不错,记得小手一抖,点个赞哦!另外欢迎大家关注我的博客账号哦,将会不定期的为大家分享技术干货,福利多多哦!

© 著作权归作者所有

共有 人打赏支持
htq

htq

粉丝 19
博文 67
码字总数 1007
作品 3
武汉
【iOS】苹果,百度Map定位使用与总结

iOS中使用较多的3款地图,google地图、百度地图、苹果自带地图(高德)。其中苹果自带地图在中国使用的是高德的数据。苹果在iOS 6之后放弃了使用谷歌地图,而改用自家的地图。在国内使用的较...

xn4545945 ⋅ 2014/08/28 ⋅ 0

一、android集成百度地图(android百度地图SDK系列)

总所周知,百度地图SDK是出了名的X,他的隔壁邻居高德简直就是良心。但是很多时候用哪个并不是我们自己能左右的。这不,新项目必须使用百度地图(我:老板,能用高德吗?老板:不能。我:一万...

猫儿不吃鱼鱼 ⋅ 2017/10/09 ⋅ 0

二、android百度地图定位显示当前位置(android百度地图SDK系列)

上一篇文章,我们知道了如何集成百度地图并且显示出来,那么这一篇文章我们就来看看如何对百度地图进行需要的设置以及定位并且显示当前的位置。 一、android集成百度地图(android百度地图SDK...

猫儿不吃鱼鱼 ⋅ 2017/10/09 ⋅ 0

百度地图SDK初步学习——环境配置

最近想在手机上开发地图,做一个TraceMe的应用。主要实现的功能是定位和追踪。 使用IDE是Intellij IDEA 12,和eclipse略有不同。 经过2天的学习,已经实现了定位的功能。 一开始想使用谷歌地...

HenryHsu ⋅ 2013/12/02 ⋅ 0

ios百度地图的使用(基本定位和地理编码)

在这里就不在介绍百度的具体配置,配置详见http://developer.baidu.com/map/index.php?title=iossdk 1.首先接受基本的地图功能 新建一个地图类,xib拖也行,我这边是代码实现的。 _mapView =...

浅唱那回忆 ⋅ 2014/08/13 ⋅ 3

前端 - 百度地图 API 基础入门

1.前言 最近想完成一个网站,里面需要使用地图相关的内容。 经过多方考虑,决定使用百度地图来完成,所以将整个学习历程进行简单的整理,方便朋友们来快速入门。 本文系作者 李鹏(MR_LP)原...

mr_lp ⋅ 2017/02/20 ⋅ 0

iOS百度地图的使用

项目最近对地图整体模块进行了重构, 为了和我们的安卓同学保持统一,放弃了原本就很6的高德地图,全部改用百度地图(虽然我觉得百度地图不好用,文档也一般,但是没办法啊,没办法啊 啊啊啊啊啊..)...

zh_iOS ⋅ 2016/09/19 ⋅ 0

百度地图SDK地图学习——实现定位功能

之前已经完成了百度地图SDK和百度定位SDK的配置。 http://my.oschina.net/u/1051634/blog/180880 实现百度定位的功能,最好仔细看看官方的文档,看了好几次才有点明白。 开发指南:http://de...

HenryHsu ⋅ 2013/12/03 ⋅ 1

在Android项目里如何调用基于百度地图API实现定位

在Android项目里如何调用基于百度地图API实现定位,基于地理位置服务的Android平台的开发对Android移动开发来说是非常重要的,基于地理位置服务的Android平台的开发是主要用于Android系统作为...

android开发 ⋅ 2017/12/08 ⋅ 0

iOS经纬度偏移解决

正在进行的项目中有这样的需求:定位获得当前经纬度,再用百度Place API使用经纬度查询周边信息。这里不需要显示地图,只需要定位。看似思路很顺畅,做起来却不容易。 iPhone的GPS定位(CLLo...

dmzhangsir ⋅ 2013/07/30 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Mahout推荐算法API详解

前言 用Mahout来构建推荐系统,是一件既简单又困难的事情。简单是因为Mahout完整地封装了“协同过滤”算法,并实现了并行化,提供非常简单的API接口;困难是因为我们不了解算法细节,很难去根...

xiaomin0322 ⋅ 23分钟前 ⋅ 0

WampServer默认web服务器根目录位置

安装WampServer之后的web服务器根目录默认位置在WampServer安装目录下的www:

临江仙卜算子 ⋅ 24分钟前 ⋅ 0

Redux的一些手法记录

Redux Redux的基本概念见另一篇文。 这里记录一下Redux在项目中的实际操作的手法。 actions 首先定义action.js,actions的type,可以另起一个action-type.js文件。 action-type.js用来存...

LinearLaw ⋅ 25分钟前 ⋅ 0

android 手势检测(左右滑动、上下滑动)

GestureDetector类可以让我们快速的处理手势事件,如点击,滑动等。 使用GestureDetector分三步: 1. 定义GestureDetector类 2. 初始化手势类,同时设置手势监听 3. 将touch事件交给gesture...

王先森oO ⋅ 40分钟前 ⋅ 0

java 方法的执行时间监控 设置超时(Future 接口)

java 方法的执行时间监控 设置超时(Future 接口) import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor......

青峰Jun19er ⋅ 44分钟前 ⋅ 0

一名开源小白的Apache成长自述

今天收到了来自Apache Vote我成为Serviceomb项目Committer的邮件,代表自己的贡献得到了充分的肯定;除了感谢团队的给力支持,我更希望将自己的成长经历——如何践行Apache Way的心得介绍给大...

微服务框架 ⋅ 46分钟前 ⋅ 0

vim介绍、颜色显示和移动光标、一般模式下复制、剪切和粘贴

1.vim 是 vi 的升级版 vim 是带有颜色显示的 mini安装的系统,一般都不带有vim [root@aminglinux-128 ~]# yum install -y vim-enhanced已加载插件:fastestmirror, langpacksLoading mir...

oschina130111 ⋅ 47分钟前 ⋅ 0

Deepin 操作系统四面楚歌

作为国内做的最好的 Linux 发行版,源自 Debian sid 的 Deepin 目前正面临重重困境,新版本不断延期,开发人员离职,bug 长期得不到修复,和 Debian/Ubuntu 的兼容性问题也面临越来越严重的挑...

六库科技 ⋅ 47分钟前 ⋅ 0

MyBatis之动态sql

我们需要知道的是,使用mybatis重点是对sql的灵活解析和处理。在原先的UserMappser.xml中,我们这样查询表中满足条件的记录 : 123 <select id="findUserList" parameterType="userQuery...

瑟青豆 ⋅ 47分钟前 ⋅ 0

这届俄罗斯世界杯的冷门那么多怎么办?

最纯粹的世界杯,最神奇的大冷门。 德国0比1被墨西哥摩擦了。 日本历史性的赢了哥伦比亚。 C罗也挑平了西班牙。 梅西被冰岛狮吼吼愣神了。 就连11次进世界杯4强的巴西也被瑞士逼平了。 天台已...

开源中国众包平台 ⋅ 48分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部