您的位置:首页 > 移动开发 > Android开发

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

2016-05-12 21:35 531 查看
百度地图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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息