在百度地图上 我们可以自己定义覆盖物 然后添加到地图上
添加覆盖物的流程大体一致 不管是添加 弧线
- 添加覆盖物 :
先以一个Marker为例
2 .构建Marker图标
我们通过MarkerOptions描述了一个Marker标记
将一个覆盖物描述添加到地图上
- OverlayOptions的子类
OverlayOptions类是地图覆盖物选项基类
地图操作者通过添加一个地图覆盖物基类的描述 添加一个地图覆盖物基类
MarkerOptions是OverlayOptions的子类 用来描述一个Marker标记覆盖物 Marker
是 Overlay的子类表示是一个地图覆盖物 OverlayOptions的子类还有:
PolylineOptions
用于描述一个折线覆盖物ArcOptions
用于描述一个弧线覆盖物 CircleOptions
用于描述一个圆形覆盖物 DotOptions
用于描述一个点覆盖物 PolygonOptions
用于描述一个多边形覆盖物 TextOptions
用于描述一个文字覆盖物 GroundOverlayOptions
用于描述一个地形图图层覆盖物*
GroundOverlayOptions 又可叫做图片图层,即开发者可在地图的指定位置上添加图片。该图片可随地图的平移、缩放、旋转等操作做相应的变换。该图层是一种特殊的Overlay,
它位于底图和底图标注层之间(即该图层不会遮挡地图标注信息)。
- 不同覆盖物的描述
上面拿Marker做了例子
其实覆盖物大体的设置方式都一样不同的是需要给出的点不同
需要的点的个数不同可能是把点的封装成list使用也可能是使用LatLanBounds类去封装 如果需要显示图片
可以用 BitmapDescriptorFactory
对象去得到一个BitmapDescriptor作为显示图片最后都要转化为OverlayOptions
对象Baidumap对象才可以去设置描述
PolylineOptions
: 定义线的开始结束和中间每一次转折的点存放在list集合中使用point方法设置 OverlayOptions
ooPolyline = new PolylineOptions().width(10)
.color(0xAAFF0000).points(list); ArcOptions
: 定义弧线的两个点和半弧的中间点坐标 OverlayOptions
ooArc = new ArcOptions().color(0xAA00FF00).width(4)
.points(p1, p2, p3); CircleOptions
:
定义边框的颜色和宽度和填充颜色圆心半径 OverlayOptions
ooCircle = new CircleOptions().fillColor(0x000000FF)
.center(llCircle).stroke(new Stroke(5, 0xAA000000))
.radius(1400); DotOptions
: 定义点的坐标 和 点的半径 颜色等OverlayOptions
ooDot = new DotOptions().center(llDot).radius(6)
.color(0xFF0000FF); PolygonOptions
: 需要定义多变型每一个点的坐标
(List集合的形式)OverlayOptions
ooPolygon = new PolygonOptions().points(list)
.stroke(new Stroke(5, 0xAA00FF00)).fillColor(0xAAFFFF00);
mBaiduMap.addOverlay(ooPolygon); TextOptions
:
旋转 大小 颜色文字信息位置坐标OverlayOptions
ooText = new TextOptions().bgColor(0xAAFFFF00)
.fontSize(24).fontColor(0xFFFF00FF).text("百度地图SDK").rotate(-30)
.position(llText);
GroundOverlayOptions
:地形图图层定义地理范围(LatlngBounds对象) 定义显示的图片 透明度 addOverlay
成功后 会返回一个 Overlay对象 我们可以转换成对应的子类 然后设置点击监听 例如
:Marker marker = mBaiduMap.addOverlay(option);
mBaiduMap.setOnMarkerClickListener (new
OnMarkerClickListener(){
public
boolean onMarkerClick(final Marker marker) {
//当点击了
marker显示弹出的 OnInfoWindow
//OnInfoWindow是一个view对象 可以给view设置点击监听
//改变marker的状态等等
}
}