百度地圖開發-繪制點線提示框 07


上一篇推文簡單介紹了與地圖的交互,如移動,縮放,點擊,截圖等功能,都是很常見的業務。接下來就讓我們一起學習在地圖上面打點,標注信息,繪制線和面等功能。

標記點、繪制線、面、增加提示信息

關於在百度地圖上繪制點的功能,其實有很大的作用,比如我們在地圖中查詢飯店,滿足要求的都可以用標記點的形式展示出來,用戶可以一目了然的看到具體位置。同時如果可以在標記的點上添加對應飯店的彈窗信息,那么用戶就更能清晰的看到。

點標記

點標記用來在地圖上標記任何位置,例如用戶位置、車輛位置、店鋪位置等一切帶有位置屬性的事物。

添加點標記

    //取得當前的位置
    LatLng point=new LatLng(currentLocation.getLatitude(),currentLocation.getLongitude());
    //構建Marker圖標
    BitmapDescriptor bitmap= BitmapDescriptorFactory.fromResource(R.drawable.flag);
    //在地圖上添加Marker並顯示
    mBaiduMap.addOverlay(new MarkerOptions().position(point).icon(bitmap));

點擊添加標記后,就可以在當前位置處添加標記信息。

標記點

對於Marker,百度官方還是給的自定義權限挺高的,可以對其進行設置圖標、動畫類型、透明度、是否可拖拽、標題等都可進行調整,根據需求進行自定義操作。同時教程說還可對標記點增加點擊和拖拽事件。

繪制線

根據對應的教程寫法,可以實現繪制折線、虛線、分段顏色繪制線、分段紋理繪制線,通過整個功能可以繪制各種各樣的規划路線或物體軌跡。

    //構建折線點坐標
    LatLng p1 = new LatLng(39.077218, 117.072102);
    LatLng p2 = new LatLng(39.007423, 117.110989);
    LatLng p3 = new LatLng(39.077218, 117.172345);
    List<LatLng> points = new ArrayList<LatLng>();
    points.add(p1);
    points.add(p2);
    points.add(p3);

    //設置折線的屬性
    OverlayOptions mOverlayOptions = new PolylineOptions()
              .width(10)
              .color(0xAAFF0000)
              .points(points);
    //在地圖上繪制折線
    Overlay mPolyline = mBaiduMap.addOverlay(mOverlayOptions);

繪制線

對於線的屬性有多種可供設置的,常用屬性如下:color顏色、width寬度、Points坐標列表、colorsvalues分段顏色值列表、extralnfo額外信息等都是可以進行調整的。

也可以添加線的點擊事件,當某些場合需要點擊繪制的路線時可以使用。

對於繪制這塊還可以繪制弧線,繪制多邊形,繪制圓等可以參考百度地圖教程自己按需進行實現即可。

接下來添加文字和信息窗,其實也就是彈窗信息。

文字覆蓋物

其實就是在地圖的某一個點,來用文字來進行表示

 LatLng ll=new LatLng(39.077218,117.072102);
 OverlayOptions mTextOptions=new TextOptions().text("阿輝最牛逼")
    .bgColor(0xAAFFFF00) //背景色
    .fontSize(24) //字號
    .fontColor(0xFFFF00FF) //文字顏色
    .rotate(-30) //旋轉角度
    .position(ll);
  Overlay mText=mBaiduMap.addOverlay(mTextOptions);

阿輝最牛逼

添加信息框

這塊教程中說了兩種方式可以實現信息框的顯示,一種是使用View構造InfoWindow另一種是使用BitmpDescriptor構造InfoWindow。我們這里簡單實現下第一種即可。

    //添加信息框
    Button button=new Button(getApplicationContext());
    button.setBackgroundResource(R.drawable.flag);
    button.setText("你好阿輝");
    LatLng p1 = new LatLng(39.007423, 117.110989);
    mBaiduMap.showInfoWindow(new InfoWindow(button,p1,-100));

彈出框

這里我只是臨時找了一個圖片來彈出框的底圖的,先把功能實現了再說。大家在使用的過程中要做一些好看一點的圖,這樣子軟件的整體美觀就提高了。

基本上和地圖的交互就介紹到這里,目前只是簡單的說了說比較常用的,至於一些細節功能還是需要去看看百度的官方文檔,雖然我對那文檔不是很感冒。

對了提醒大家一句,多看DEMO,它比官方文檔教程強太多了。

小寄語

人生短暫,我不想去追求自己看不見的,我只想抓住我能看的見的。

原創不易,給個關注。

我是阿輝,感謝您的閱讀,如果對你有幫助,麻煩點贊、轉發 謝謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM