现在的位置: 首页 > 综合 > 正文

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

2016年12月10日 ⁄ 综合 ⁄ 共 2638字 ⁄ 字号 评论关闭


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

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

  • 添加覆盖物 :  先以一个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

抱歉!评论已关闭.