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

—阿輝發表於2021-08-31

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

標記點、繪製線、面、增加提示資訊

關於在百度地圖上繪製點的功能,其實有很大的作用,比如我們在地圖中查詢飯店,滿足要求的都可以用標記點的形式展示出來,使用者可以一目瞭然的看到具體位置。同時如果可以在標記的點上新增對應飯店的彈窗資訊,那麼使用者就更能清晰的看到。

點標記

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

新增點標記

    //取得當前的位置
    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,它比官方文件教程強太多了。

小寄語

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

原創不易,給個關注。

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

相關文章