刚开始研究百度地图画线的时候我也从网上弄的什么draw()方法,可是由于版本更新,怎么搞就是弄不出那个方法!
只好自己去官网看例子来研究画线了,(http://developer.baidu.com/map/sdkandev-6.htm)看来看去感觉就那个覆盖物那里说到了画图,包括目前绘图api提供五种几何图形:点,线,圆、矩形和凸多边形
DrawLines()这个方法即可,线就画出来了!
/**
* 画线
*/
public void DrawLines(){
System.out.println("lineInspectionMapActivity.java 地图");
//故宫左上角
GeoPoint geoPoint1 = new GeoPoint((int)(39.929 * 1E6),(int)(116.397 * 1E6));
//故宫右下角
GeoPoint geoPoint2 = new GeoPoint((int)(39.920 * 1E6),(int)(116.408 * 1E6));
GeoPoint palaceCenter = new GeoPoint((int)(39.924 * 1E6),(int)(116.403 * 1E6));
//创建一个覆盖故宫范围的距形
Geometry palaceGeometry = new Geometry();
//palaceGeometry.setEnvelope(geoPoint1, geoPoint2);
GeoPoint[] gp = {geoPoint1,geoPoint2};
palaceGeometry.setPolyLine(gp);
System.out.println("122222lineInspectionMapActivity.java 地图");
Symbol palaceSymbol = new Symbol();//创建样式
Symbol.Color palaceColor = palaceSymbol.new Color();//创建颜色
palaceColor.red = 0;//设置颜色的红色分量
palaceColor.green = 0;//设置颜色的绿色分量
palaceColor.blue = 255;//设置颜色的蓝色分量
palaceColor.alpha = 126;//设置颜色的alpha值
palaceSymbol.setLineSymbol(palaceColor, 3);//画线
palaceSymbol.setPointSymbol(palaceColor);//点
//palaceSymbol.setSurface(palaceColor,1,3);//设置样式参数,颜色:palaceColor是否填充距形:是线
//创建故宫的Graphic对象
Graphic palaceGraphic = new Graphic(palaceGeometry, palaceSymbol);
/**
* 创建一个GraphicsOverlay来装载故宫的Graphic
* 构造参数mMapView为MapView对象,如果不知道如何生成MapView对象,可参看Hello World章节。
*/
GraphicsOverlay palaceOverlay = new GraphicsOverlay(mMapView);
/**
* 向GraphicsOverlay添加Graphic
*一个GraphicsOVerlay可添加多个Graphic
*GraphicsOVerlay的remove接口使用setData()返回的ID来移除指定Graphic
*/
long palaceId = palaceOverlay.setData(palaceGraphic);
//将overlay添加到mapview中
mMapView.getOverlays().add(palaceOverlay);
//刷新地图使新添加的overlay生效
mMapView.refresh();
//移动,缩放地图到最视野
mMapView.getController().setZoom(16);
mMapView.getController().setCenter(palaceCenter);
}
如果有什么疑问,可以留言;如果你有更好的意见大家一起讨论;希望大家一起交流进步!