在第二篇文章的時候我曾經說過,還會有一篇添加覆寫物的講解,這一篇就是專門寫覆寫物的。百度地圖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);
}
以上代碼就是标注了四個覆寫物,注釋很詳細,相信都可以輕松的看懂。不過光有代碼還是不夠直覺我們再看看運作效果吧:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI3QWOhJGZzkDO2UjZvwFcvwVbvNmL1h2cuFWaq5yd3d3Lc9CX6MHc0RHaiojIsJye.jpg)
标注效果圖
二、幾何圖形覆寫物
有時候我們會需要在地圖上畫出所需要的覆寫範圍,這就需要用到幾何圖形覆寫物了。在百度地圖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則沒有問題。好了我們看看運作效果吧
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI3QWOhJGZzkDO2UjZvwFcvwVbvNmL1h2cuFWaq5yd3d3Lc9CX6MHc0RHaiojIsJye.jpg)
圓形覆寫物
到這裡,android百度地圖SDK系列就要告一段落了,這主要是項目中遇見的順便做個總結以防後人踩坑,也防自己以後踩坑,如果後面在地圖上會有新的需求那麼也會加上來的。最後強調一點,一定要開啟定位圖層,不然覆寫物無效。