新版百度地图的覆盖物描述

本文深入解析了如何在百度地图上自定义并添加各种地图覆盖物,包括Marker、Polyline、Arc、Circle、Dot、Polygon、Text以及GroundOverlay等,提供了详细的代码示例及实现流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在百度地图上 我们可以自己定义覆盖物 然后添加到地图上

添加覆盖物的流程大体一致 不管是添加 弧线  文字  矩形  多边形 圆形 等等

  • 添加覆盖物 :  先以一个Marker为例
1 .定义Maker坐标点
LatLng point = new LatLng(39.963175116.400244);

2 .构建Marker图标 

BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.icon_marka);
3 .构建MarkerOption,用于在地图上添加Marker OverlayOptions option = new MarkerOptions().position(point).icon(bitmap);
 
  
4 .在地图上添加Marker,并显示 mBaiduMap.addOverlay(option);

我们通过MarkerOptions描述了一个Marker标记

将一个覆盖物描述添加到地图上

 

  • OverlayOptions的子类

OverlayOptions类是地图覆盖物选项基类  地图操作者通过添加一个地图覆盖物基类的描述

添加一个地图覆盖物基类  MarkerOptionsOverlayOptions的子类 用来描述一个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的状态等等

                      }

           }



文章转自:http://blog.sina.com.cn/s/blog_3bcd2c870102uy8d.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值