在第二篇文章的時(shí)候我曾經(jīng)說過,還會(huì)有一篇添加覆蓋物的講解,這一篇就是專門寫覆蓋物的。百度地圖SDK的覆蓋物乍一看沒有頭緒,但是看明白文檔了還是很簡(jiǎn)單的,下面就來看看怎么來實(shí)現(xiàn)覆蓋物的功能。
(android百度地圖SDK系列)
一、android集成百度地圖(android百度地圖SDK系列)
二、android百度地圖定位顯示當(dāng)前位置(android百度地圖SDK系列)
三、android百度地圖覆蓋物(android百度地圖SDK系列)
一、標(biāo)注覆蓋物
經(jīng)常我們?cè)诤芏郃PP里都可以看見地圖上標(biāo)注了很多特定的點(diǎn),這些點(diǎn)就是標(biāo)注覆蓋物了。它的用法很簡(jiǎn)單,細(xì)心的朋友在第二篇應(yīng)該會(huì)發(fā)現(xiàn)在添加中心點(diǎn)的時(shí)候有一個(gè)叫Maker的東西,沒錯(cuò)就是它了。話不多說我們之間看代碼:
private void setMarker() {
//定義Maker坐標(biāo)點(diǎn)
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);
//構(gòu)建Marker圖標(biāo)
BitmapDescriptor bitmap = BitmapDescriptorFactory
.fromResource(R.mipmap.location_marker);
//構(gòu)建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);
}
以上代碼就是標(biāo)注了四個(gè)覆蓋物,注釋很詳細(xì),相信都可以輕松的看懂。不過光有代碼還是不夠直觀我們?cè)倏纯催\(yùn)行效果吧:

二、幾何圖形覆蓋物
有時(shí)候我們會(huì)需要在地圖上畫出所需要的覆蓋范圍,這就需要用到幾何圖形覆蓋物了。在百度地圖API里可以看到它做了一個(gè)5個(gè)點(diǎn)的多邊形覆蓋物,然而一般都是用圓形比較多,而且API里也寫了可以支持點(diǎn)(Dot)、折線(Polyline)、弧線(Arc)、圓(Circle)、多邊形(Polygon),這里我就用圓做個(gè)例子,還是老套路,先上代碼:
public void drawCircle() {
//設(shè)置圓心的左邊
LatLng pt1 = new LatLng(29.276107, 106.281771);
OverlayOptions overlayOptions = new CircleOptions()
.center(pt1)
//設(shè)置圓的顏色
.fillColor(Color.parseColor("#201c3d6f"))
//設(shè)置邊緣線的顏色
.stroke(new Stroke(0,Color.parseColor("#ffffff")))
//設(shè)置半徑
.radius(300);
baiduMap.addOverlay(overlayOptions);
}
代碼就是這樣了,同樣很簡(jiǎn)單,注釋也同樣很詳細(xì)。需要強(qiáng)調(diào)的是在設(shè)置顏色的時(shí)候如果是寫在color配置文件里,有時(shí)候會(huì)沒有效果,而用Color.parseColor則沒有問題。好了我們看看運(yùn)行效果吧

到這里,android百度地圖SDK系列就要告一段落了,這主要是項(xiàng)目中遇見的順便做個(gè)總結(jié)以防后人踩坑,也防自己以后踩坑,如果后面在地圖上會(huì)有新的需求那么也會(huì)加上來的。最后強(qiáng)調(diào)一點(diǎn),一定要開啟定位圖層,不然覆蓋物無效。