Android百度地图之地图覆盖物(结合百度地图API)

  • Post author:
  • Post category:其他


在上一篇博客中,我为大家介绍了百度地图的定位功能的使用方法,接下来,我将为大家介绍百度地图的另一个常见的功能:地图覆盖物。



百度地图SDK支持多种地图覆盖物,以帮助我们实现丰富的地图信息。目前所支持的覆盖物有:定位图层,地图标注(Marker),几何图层(点,线,圆和多边形),弹出窗口图层,POI检索结果覆盖物,路线规划覆盖物等等。既然百度SDK为我们提供了这么多丰富多彩的地图覆盖物,那么我们就来亲眼见证一下它的美丽吧。我将为大家逐一介绍几个比较常见的覆盖物。





定位图层+地图标注:



细心的朋友不难发现,在上一篇博客中,我们定位的默认图层是一个蓝色的小圆点,那么接下来我们就自定义一个我们自己的图层,并在我们想要的位置同样用我们自己定义的图层来标注该地理位置,先来看看效果图:






代码

如下:


定位图层:

//设置定位图层
						BitmapDescriptor bd = BitmapDescriptorFactory.fromResource(R.drawable.map_marker);
						MyLocationConfiguration config = new MyLocationConfiguration(mCurrentMode, true, bd);
						mBaiduMap.setMyLocationConfigeration(config);


只需要

三行代码,就可以实现上述的效果了。其中BitmapDescriptor:是图层的描述类,通过工厂模式去初始化并获取我们资源库中的图片。MyLocationConfiguration:该类用来配置地图图层的显示方式,它需要三个参数:LocationMode:定位图层显示方式,默认为LocationMode.NORMAL,第二个参数为boolean型:表示是否允许显示方向信息,第三个参数则是我们的BitmapDescriptor:图层的描述类,最后我们只需要调用BaiduMap的setMyLocationConfigeration()方法便可以设置我们的定位图层了。


地图标注:

private void initMarker()
	{
		//定义Maker坐标点  
		LatLng point = new LatLng(mCurrentLan, mCurrentLon);  
		//构建Marker图标  
		BitmapDescriptor bitmap = BitmapDescriptorFactory  
		    .fromResource(R.drawable.maker);  
		//构建MarkerOption,用于在地图上添加Marker  
		OverlayOptions option = new MarkerOptions()  
		    .position(point)  
		    .icon(bitmap);  
		//在地图上添加Marker,并显示  
		mBaiduMap.addOverlay(option);
	}

那么到底改如何实现我们上述的功能了,其实我们可以调用百度地图的setOnMapClickListener监听方法,它会返回给我们一个地理坐标信息类:LanLng,根据这个类,我们就可以很容易去获取我们的地理坐标了,然后我们就可以在获取到的坐标位置标注图层信息了。





弹出窗口图层:



先来阐述一下我们接下来需要实现的功能:就是在我们的某个地图标注上面弹出一个自定义的窗口,并在窗口上显示我们的地址信息,这边我们需要用到地理反编码的接口,以将我们的地理坐标转换成我们的地址信息。效果图如下:






代码

如下:




弹出窗口图层:



版权声明:本文为qq_15437701原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。