覆盖物
如标注、矢量图形元素(包括:折线和多边形和圆)、定位图标等。覆盖物拥有自己的地理坐标,当您拖动或缩放地图时,它们会相应的处理。
覆盖物包括:
- 覆盖物的抽象基类:Overlay(核心类)
- 文字绘制覆盖物:TextOverlay
- 分条目覆盖物:ItemizedOverlay
- 路线规划覆盖物:RouteOverlay
- 换乘路线覆盖物:TransitOverlay
我的位置覆盖物:MyLocationOverlay
1、实现目的:在底图上画一个圆形的几何图形(覆盖物)
实现过程:1、建一个基类实现基本的底图效果,再建一个类实现覆盖物,当前类继承基类;2、然后通过
//①获取mapView存放覆盖物的集合
List overlays = mapView.getOverlays();
// ②创建自己的overlays信息并添加集合中
GraphicsOverlay overlay = new GraphicsOverlay(mapView);
// 设置几何图形
setData(overlay);
overlays.add(overlay);
// ③刷新mapView的显示内容
mapView.refresh();
3、设置几何图形:通过新建一个图形Graphic(geometry, symbol),装几何元素+样式参数,然后将该图形添加到图形的overlay里面。overlay.setData(graphic);再设置几何元素和样式参数。
4、再设置Manifest.xml的内容即可。
实现效果:
GraphicsOverlayDemo.java
package huaxa.it.map;
import java.util.List;
import com.baidu.mapapi.map.Geometry;
import com.baidu.mapapi.map.Graphic;
import com.baidu.mapapi.map.GraphicsOverlay;
import com.baidu.mapapi.map.Overlay;
import com.baidu.mapapi.map.Symbol;
import android.R.color;
import android.R.drawable;
import android.os.Bundle;
/**
* @项目名: BaiduMap
* @包名: huaxa.it.map
* @类名: GraphicsOverlayDemo
* @创建者: 黄夏莲
* @创建时间: 2016年12月1日 ,下午6:13:46
*
* @描述: TODO
*/
public class GraphicsOverlayDemo extends BaseActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
draw();
}
/**
* 绘制几何图形
*/
private void draw()
{
// 覆盖物操作
// ①获取存放覆盖物的集合(MapView)
List<Overlay> overlays = mapView.getOverlays();
// ②创建自己的overlays信息添加集合中
GraphicsOverlay overlay = new GraphicsOverlay(mapView);
// 关于几何图形设置
setData(overlay);
overlays.add(overlay);
// ③刷新mapView的显示内容
mapView.refresh();
}
/**
* 几何图形设置
*
* @param overlay
*/
private void setData(GraphicsOverlay overlay)
{
// 绘制圆
/**
* setCircle(GeoPoint geoPoint, int radius) 设置图形为圆 参数: geoPoint地理坐标
* radius圆的半径,单位:米
*/
// 几何元素的定义
// 圆心+半径
Geometry geometry = new Geometry();
geometry.setCircle(geoPoint, 1000);
// 样式
// 颜色+是否填充+如果不填充,绘制圆的线条的粗细
Symbol symbol = new Symbol();
/**
* setSurface
*
* public void setSurface(Symbol.Color color, int status, int linewidth)
* 设置面样式 参数: color - 颜色 status - 填充状态,0表示不填充,1表示填充 linewidth -
* 线宽,当填充状态为填充时线宽无意义
*/
Symbol.Color color = symbol.new Color();
//指定三色
color.red = 255;
color.green = 0;
color.blue = 0;
color.alpha = 100;
symbol.setSurface(color, 1, 0);
Graphic