三、android百度地圖覆蓋物(android百度地圖SDK系列)

在第二篇文章的時(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)行效果吧:


標(biāo)注效果圖

二、幾何圖形覆蓋物

有時(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),一定要開啟定位圖層,不然覆蓋物無效。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容