在第二篇文章的时候我曾经说过,还会有一篇添加覆盖物的讲解,这一篇就是专门写覆盖物的。百度地图SDK的覆盖物乍一看没有头绪,但是看明白文档了还是很简单的,下面就来看看怎么来实现覆盖物的功能。
(android百度地图SDK系列)
一、android集成百度地图(android百度地图SDK系列)
二、android百度地图定位显示当前位置(android百度地图SDK系列)
三、android百度地图覆盖物(android百度地图SDK系列)
一、标注覆盖物
经常我们在很多APP里都可以看见地图上标注了很多特定的点,这些点就是标注覆盖物了。它的用法很简单,细心的朋友在第二篇应该会发现在添加中心点的时候有一个叫Maker的东西,没错就是它了。话不多说我们之间看代码:
private void setMarker() {
//定义Maker坐标点
LatLng point = new LatLng(29.275412, 106.279981);
LatLng point1 = new LatLng(29.275422, 106.279991);
LatLng point2 = new LatLng(29.273311, 106.278621);
LatLng point3 = new LatLng(29.278813, 106.285511);
//构建Marker图标
BitmapDescriptor bitmap = BitmapDescriptorFactory
.fromResource(R.mipmap.location_marker);
//构建MarkerOption,用于在地图上添加Marker
OverlayOptions option = new MarkerOptions()
.position(point)
.icon(bitmap);
OverlayOptions option1 = new MarkerOptions()
.position(point1)
.icon(bitmap);
OverlayOptions option2 = new MarkerOptions()
.position(point2)
.icon(bitmap);
OverlayOptions option3 = new MarkerOptions()
.position(point3)
.icon(bitmap);
//在地图上添加Marker,并显示
baiduMap.addOverlay(option);
baiduMap.addOverlay(option1);
baiduMap.addOverlay(option2);
baiduMap.addOverlay(option3);
}
以上代码就是标注了四个覆盖物,注释很详细,相信都可以轻松的看懂。不过光有代码还是不够直观我们再看看运行效果吧:
标注效果图
二、几何图形覆盖物
有时候我们会需要在地图上画出所需要的覆盖范围,这就需要用到几何图形覆盖物了。在百度地图API里可以看到它做了一个5个点的多边形覆盖物,然而一般都是用圆形比较多,而且API里也写了可以支持点(Dot)、折线(Polyline)、弧线(Arc)、圆(Circle)、多边形(Polygon),这里我就用圆做个例子,还是老套路,先上代码:
public void drawCircle() {
//设置圆心的左边
LatLng pt1 = new LatLng(29.276107, 106.281771);
OverlayOptions overlayOptions = new CircleOptions()
.center(pt1)
//设置圆的颜色
.fillColor(Color.parseColor("#201c3d6f"))
//设置边缘线的颜色
.stroke(new Stroke(0,Color.parseColor("#ffffff")))
//设置半径
.radius(300);
baiduMap.addOverlay(overlayOptions);
}
代码就是这样了,同样很简单,注释也同样很详细。需要强调的是在设置颜色的时候如果是写在color配置文件里,有时候会没有效果,而用Color.parseColor则没有问题。好了我们看看运行效果吧
圆形覆盖物到这里,android百度地图SDK系列就要告一段落了,这主要是项目中遇见的顺便做个总结以防后人踩坑,也防自己以后踩坑,如果后面在地图上会有新的需求那么也会加上来的。最后强调一点,一定要开启定位图层,不然覆盖物无效。
网友评论