在第二篇文章的時候我曾經說過讥珍,還會有一篇添加覆蓋物的講解历极,這一篇就是專門寫覆蓋物的窄瘟。百度地圖SDK的覆蓋物乍一看沒有頭緒,但是看明白文檔了還是很簡單的趟卸,下面就來看看怎么來實現覆蓋物的功能蹄葱。
(android百度地圖SDK系列)
一、android集成百度地圖(android百度地圖SDK系列)
二锄列、android百度地圖定位顯示當前位置(android百度地圖SDK系列)
三图云、android百度地圖覆蓋物(android百度地圖SDK系列)
一、標注覆蓋物
經常我們在很多APP里都可以看見地圖上標注了很多特定的點邻邮,這些點就是標注覆蓋物了竣况。它的用法很簡單,細心的朋友在第二篇應該會發(fā)現在添加中心點的時候有一個叫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系列就要告一段落了耍目,這主要是項目中遇見的順便做個總結以防后人踩坑,也防自己以后踩坑徐绑,如果后面在地圖上會有新的需求那么也會加上來的邪驮。最后強調一點,一定要開啟定位圖層傲茄,不然覆蓋物無效毅访。