百度地图加强_覆盖物_GraphicsOverlay
|
0、Overlay Overlay是一个基类,它表示可以显示在地图上方的覆盖物。 从2.0.0开始,SDK不支持直接继承Overlay , 用户可通过继承ItemizedOverlay来添加覆盖物。 因为Overlay里面什么都没有,只是用来标记该类是一个覆盖物 |
1、GraphicsOverlay 用于绘制点、线、面的overlay public long setData(Graphic g) 添加一个图形 ②Graphic 图形类 public Graphic(Geometry g,Symbol s) g -几何元素 s -样式③Geometry 几何图形类 ④Symbol 样式类 public void setSurface(Symbol.Color color, int status,int linewidth)设置面样式 color - 颜色 status - 填充状态,0表示不填充,1表示填充 linewidth - 线宽,当填充状态为填充(1)时线宽无意义 设置为1,填充后,线条的宽度就没有意义了 |
核心代码: package cn.zengfansheng.mybaidumap.overlay; import java.util.List; import android.os.Bundle; import cn.zengfansheng.mybaidumap.BaseActivity; 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 com.baidu.mapapi.map.Symbol.Color; /** * 用于绘制点、线、面的overlay覆盖面 */ public class GraphicsOverlayDemo extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addGraphicsOverlay(); } // 1、获取MapView中的Overlay集合 // 2、在集合中添加要显示的内容 // 3、刷新界面 /** * 添加GraphicsOverlay覆盖层 */ private void addGraphicsOverlay() { // 1、获取MapView中的Overlay集合 List<Overlay> overlays = mMapView.getOverlays(); // 2、在集合中添加要显示的内容 GraphicsOverlay overlay = new GraphicsOverlay(mMapView); //设置数据 setOverlayData(overlay); // 添加到集合中去 overlays.add(overlay); // 3、刷新界面 mMapView.refresh(); } /** * 设置GraphicsOverlay的数据 * @param overlay */ private void setOverlayData(GraphicsOverlay overlay) { // 画一个圆 Geometry geometry = new Geometry(); int radius = 1000; geometry.setCircle(geoPoint, radius); // 样式类 Symbol symbol = new Symbol(); Symbol.Color color = getColor(); int status = 1;// 填充状态,0表示不填充,1表示填充 int linewidth = 0;// 线宽,当填充状态为填充时线宽无意义 symbol.setSurface(color, status, linewidth); Graphic graphic = new Graphic(geometry, symbol);// 设置面样式 overlay.setData(graphic);// 添加一个图形 } /** * 获取颜色 * @return */ private Color getColor() { Symbol.Color color = new Symbol().new Color();// 颜色 color.red = 255; color.green = 0; color.blue = 0; color.alpha = 100;// 透明度 return color; } } |
结果: |