[Android]百度地图之几何标注和文字覆盖物

百度地图SDK提供多种结合图形覆盖物,利用这些图形,可帮助您构建更加丰富多彩的地图应用。
1、在activity_mail.xml中,新建一个MapView

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >
    <!-- 添加百度地图控件 -->
    <com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" />
</LinearLayout>

2、在MainActivity.java中, 构建几何形状的OverlayOptions,添加到百度地图当中。

// 几何图形的标注
        LatLng pt1 = new LatLng(39.93923, 116.357428);
        LatLng pt2 = new LatLng(39.91923, 116.327428);
        LatLng pt3 = new LatLng(39.89923, 116.347428);  
        LatLng pt4 = new LatLng(39.89923, 116.367428);  
        LatLng pt5 = new LatLng(39.91923, 116.387428);
        List<LatLng> list = new ArrayList<LatLng>();
        list.add(pt1);
        list.add(pt2);
        list.add(pt3);
        list.add(pt4);
        list.add(pt5);

        OverlayOptions polygonOption  = new PolygonOptions().points(list).fillColor(0xAAFFFF00).stroke(new Stroke(5,0xAA00FF00));
        mBaiduMap.addOverlay(polygonOption);

OverlayOptions 是个抽象类接口,已知的子类有:ArcOptions, CircleOptions, DotOptions, GroundOverlayOptions, MarkerOptions, PolygonOptions, PolylineOptions, TextOptions。

通过实例化textOption,我们还可以构建文字覆盖物。代码如下:

        /** * 文字覆盖物 */
        // 定义文字显示的坐标点
        LatLng llText = new LatLng(39.86923, 116.397428);
        // 构建文字option对象
        OverlayOptions textOption = new TextOptions().bgColor(0xAAFFFF00).fontSize(24).fontColor(0xFFFF00FF).text("百度地图SDK").rotate(-30).position(llText);
        mBaiduMap.addOverlay(textOption);

通过实例化GroundOverlayOptions,我们还可以构建地形图图层(图片图层)。代码如下:

        /** * 地形图图层(图片图层) */
        LatLng southwest = new LatLng(39.92235, 116.380338);
        LatLng northeast = new LatLng(39.947246, 116.414977);  
        LatLngBounds bounds = new LatLngBounds.Builder()  
        .include(northeast)  
        .include(southwest)  
        .build();  

        BitmapDescriptor bdGround = BitmapDescriptorFactory  
                .fromResource(R.drawable.icon_marka); 
        OverlayOptions ooGround = new GroundOverlayOptions()
            .positionFromBounds(bounds)
            .image(bdGround)
            .transparency(0.8f);
        mBaiduMap.addOverlay(ooGround);

你可能感兴趣的:(android,sdk,布局,图形,百度地图)