博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用百度地图实现基本的地图显示与定位功能
阅读量:6461 次
发布时间:2019-06-23

本文共 3428 字,大约阅读时间需要 11 分钟。

最近在项目中用到了地图显示与定位功能,那么毫无疑问首选百度地图,关于百度地图的基本使用在其官网介绍的十分详细,而且还附带程序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的代码。

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

转载于:https://www.cnblogs.com/hainange/p/6334008.html

你可能感兴趣的文章
全局 快捷键_让同事看呆的表格快捷键
查看>>
# 保持最外层获取焦点_PCB外层的蚀刻工艺,如何把控蚀刻质量
查看>>
华为如何生成日志_深入理解Kafka服务端之滚动生成新日志段的流程及条件
查看>>
各维度 特征 重要程度 随机森林_随机森林算法梳理
查看>>
手机悉昙体梵文输入法_梵文天城体字体及输入法
查看>>
qt编译实现简单的文本编译器有粘贴复制_QT示例之实现简易文本编辑器
查看>>
雷达的工作原理示意图_雷达测距原理.ppt
查看>>
优化器 示意图 神经网络_神经网络 优化器
查看>>
python爬虫请求头是什么意思_Pytho爬虫中Requests设置请求头Headers的方法
查看>>
gis导出栅格数据为什么不能tif_Arcgis 中栅格数据的属性表问题(转)
查看>>
springboot 热部署没用_SpringBoot实现热部署(修改java文件和html文件不需要重启)
查看>>
android android不同app获取的值不一样_Android世界:ContentProvider使用
查看>>
butterknife使用_面试系列:ButterKnife为什么执行效率为什么比其他注入框架高?它的原理是什么...
查看>>
mysql如何查询某周的数据库_MySQL SQL语句查询本天、本周、本月的数据
查看>>
mysql update 事物锁表_Mysql事务中Update是否会锁表?
查看>>
mysql bigdecimal 默认值_BigDecimal与double
查看>>
mysql 电话模糊查询_mysql中的模糊查询
查看>>
mysql8.0.22安装配置_超详细MySQL8.0.22安装及配置教程
查看>>
springboot file转multipartfile_Springboot 如何上传文件
查看>>
mysql数据表说明怎么弄_MySQL数据库---表的操作
查看>>