转载请标明:http://blog.csdn.net/u012637501
目前百度地图SDK所提供的地图等级为3-19级,所包含的信息有建筑物、道路、河流、学校、公园等内容。所有叠加或覆盖到地图的内容,我们统称为地图覆盖物。如标注、矢量图形元素(包括:折线、多边形和圆等)、定位图标等。覆盖物拥有自己的地理坐标,当您拖动或缩放地图时,它们会相应的移动。我们可根据自己实际的业务需求,利用标注覆盖物,在地图指定的位置上添加标注信息。
一、APIs
1.LatLng类
(1)作用:地理坐标基本数据结构,在包com.baidu.mapapi.model.LatLng中。
(2)构造方法与成员变量
LatLng(double latitude, double longitude) 构造函数
◇final double longitude : 经度
◇final double latitude : 纬度
2.Overlay类
(1)作用: 地图覆盖物基类,已知直接子类Marker, Polygon, Polyline, Text
(2)成员方法
◇Bundle getExtraInfo() : 获取覆盖物额外信息
◇int getZIndex() : 获取覆盖物 zIndex
◇boolean isVisible() : 设置覆盖物可见性
◇void remove() : 删除该覆盖物
◇void setExtraInfo(Bundle extraInfo) : 设置覆盖物额外信息
◇void setVisible(boolean visible) : 获取覆盖物可见性
◇void setZIndex(int zIndex) : 设置覆盖物 zIndex
3.OverlayOptions类
(1)作用:地图覆盖物选型基类,直接已知子类MarkerOptions, PolygonOptions, PolylineOptions, TextOptions等
(2)构造方法:OverlayOptions()
4.PolygonOptions类
(1)作用:创建 多边形覆盖物选项类
(2)构造方法:PolygonOptions()
(3)常用方法
◇PolygonOptions points(java.util.List points) : 设置多边形坐标点列表
◇PolygonOptions stroke(Stroke stroke) : 设置多边形边框信息
◇PolygonOptions visible(boolean visible) : 设置多边形可见性
◇PolygonOptions zIndex(int zIndex) : 设置多边形 zIndex,即所在的层级
◇PolygonOptions fillColor(int color) : 设置多边形填充颜色
5.Marker类
(1)作用 :定义地图 Marker 覆盖物基类,继承于Overlay类
(2)常用方法
◇LatLng getPosition() : 获取 Marker 覆盖物的位置坐标
◇void setDraggable(boolean draggable) : 设置 marker 是否允许拖拽,默认不可拖拽
◇void setIcon(BitmapDescriptor icon) : 设置 Marker 覆盖物的图标,相同图案的 icon 的 Marker 最好使用同一个 BitmapDescriptor
对象以节省内存空间
◇void setIcons(java.util.ArrayList icons) : 设置 Marker 覆盖物的图标,相同图案的 icon 的 marker 最好使用同一个 BitmapDescriptor 对象以节省内存空间。
◇void setPeriod(int period) : 设置多少帧刷新一次图片资源,Marker动画的间隔时间,值越小动画越快
◇void setPerspective(boolean perspective) : 设置是否开启 Marker 覆盖物近大远小效果,默认开启
◇void setPosition(LatLng position) : 设置 Marker 覆盖物的位置坐标
◇void setRotate(float rotate) : 设置 Marker 覆盖物旋转角度,逆时针
◇void setTitle(java.lang.String title) : 设置 Marker 覆盖物的标题
◇void setToTop() : 设置当前marker在最上面
6.MarkerOptions类
(1)作用:地图 Marker 覆盖物实现类 ,继承于OverlayOptions类
(2)构造方法:MarkerOptions()
(3)常用方法
MarkerOptions draggable(boolean draggable) : 设置 marker 是否允许拖拽,默认不可拖拽
MarkerOptions period(int period) : 设置多少帧刷新一次图片资源,Marker动画的间隔时间,值越小动画越快
MarkerOptions perspective(boolean perspective) : 设置是否开启 marker 覆盖物近大远小效果,默认开启
MarkerOptions position(LatLng position) :设置 marker 覆盖物的位置坐标
MarkerOptions rotate(float rotate) :设置 marker 覆盖物旋转角度,逆时针
MarkerOptions title(java.lang.String title) :设置 marker 覆盖物的标题
MarkerOptions visible(boolean visible) :设置 marker 覆盖物的可见性
MarkerOptions zIndex(int zIndex) :设置 marker 覆盖物的 zIndex
7.BitmapDescriptor&BitmapDescriptorFactory类
(1)作用:BitmapDescriptor对象是 bitmap (位图)描述信息;BitmapDescriptorFactory对象是bitmap 描述信息工厂类,在使用该类方法之前请确保已经调用了 SDKInitializer.initialize(Context) 函数以提供全局 Context 信息。
(2) BitmapDescriptorFactory重要方法
static BitmapDescriptor fromResource(int resourceId) : 根据资源 Id 创建 bitmap 描述信息
static BitmapDescriptor fromBitmap(Bitmap image) : 根据 Bitmap 创建描述信息
static BitmapDescriptor fromAsset(java.lang.String assetName) : 根据资源名称创建bitmap描述信息
8.InfoWindow类
(1)作用:在地图中显示一个信息窗口,可以设置一个View作为该窗口的内容,也可以设置一个 BitmapDescriptor 作为该窗口的内容。
(2)构造方法
InfoWindow(BitmapDescriptor bd, LatLng position, int yOffset, InfoWindow.OnInfoWindowClickListener listener)
通过传入的 bitmap descriptor 构造一个 InfoWindow。
InfoWindow(View view, LatLng position, int yOffset)
通过传入的 view 构造一个 InfoWindow, 此时只是利用该view生成一个Bitmap绘制在地图中。
二、地图覆盖物实现方法
1.标注覆盖物
我们可根据自己实际的业务需求,利用标注覆盖物,在地图指定的位置上添加标注信息。
(1)只显示不可拖拽(Marker)标注覆盖物
- BaiduMap mBaiduMap = mapView.getMap();
- //定义Maker坐标点
- LatLng point = new LatLng(39.963175, 116.400244);
- //构建Marker图标
- BitmapDescriptor bitmap = BitmapDescriptorFactory
- .fromResource(R.drawable.icon_marka);
- //构建MarkerOption,用于在地图上添加Marker
- OverlayOptions option = new