本文主要是介绍百度地图:加强篇(覆盖物的实现),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
覆盖物
如标注、矢量图形元素(包括:折线和多边形和圆)、定位图标等。覆盖物拥有自己的地理坐标,当您拖动或缩放地图时,它们会相应的处理。
覆盖物包括:
- 覆盖物的抽象基类: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
{@Overrideprotected void onCreate(Bundle savedInstanceState){// TODO Auto-generated method stubsuper.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
这篇关于百度地图:加强篇(覆盖物的实现)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!