百度地图多条线段绘制的方法

由于百度地度开发档里只有一个折线的绘制方法,其实这已能满足大部份需求,可我想绘制多条折线,又一次因为基本功不扎实卡壳了。思前想后还是用集合来搞吧,调试几回居然真的通过了,我的坐标是存放在一个Excel表格里的,以下方法仅供新人参考,大神们若有更好的思路希望不吝赐教。

//绘制折线组,该折线组状态随地图状态变化
public Graphic drawLine(){
	String file = getSDPath()+"/ChBiao/peidian.xls";
	InputStream is = null;
	Graphic lineGraphic = null;
	ArrayList
   
   
    
     ppline =new  ArrayList
    
    
     
     ();//构建折线集合
	int i;
	try {
		is = new FileInputStream(new File(file));
		Workbook wb = Workbook.getWorkbook(is);// 打开Excel文件
		Sheet sheet = wb.getSheet(0);// 第一张工作表
		int row = sheet.getRows(); 
		Log.e("Map","row"+row);
        for (i = 0; i < row; ++i) {
			Cell calllatA = sheet.getCell(11, i); // 自加A点获取纬度
			Cell calllanA = sheet.getCell(12, i); // 自加A点获取经度
			Cell calllatB = sheet.getCell(13, i); // 自加B点获取纬度
			Cell calllanB = sheet.getCell(14, i); // 自加B点获取经度
			if(calllatA.getContents() == ""||calllatB.getContents() == "") continue; //判断如果遇空值重新循环
			double mlat1 = Double.parseDouble(calllatA.getContents());
	        double mlon1 = Double.parseDouble(calllanA.getContents());
	        double mlat2 = Double.parseDouble(calllatB.getContents());
	        double mlon2 = Double.parseDouble(calllanB.getContents());
	        GeoPoint p1 = new GeoPoint((int) (mlat1*1E6), (int) (mlon1*1E6));//A点
	        GeoPoint p2 = new GeoPoint((int) (mlat2*1E6), (int) (mlon2*1E6));//B点
	        //构建线
	        Geometry lineGeometry = new Geometry();
	  		GeoPoint[] linePoints = new GeoPoint[2];//设定折线点坐标
	  		linePoints[0] = p1;
	  		linePoints[1] = p2;
	  		lineGeometry.setPolyLine(linePoints);
	  		//设定样式
	  		Symbol lineSymbol = new Symbol();
	  		Symbol.Color lineColor = lineSymbol.new Color();
	  		lineColor.red = 255;
	  		lineColor.green = 0;
	  		lineColor.blue = 0;
	  		lineColor.alpha = 255;
	  		lineSymbol.setLineSymbol(lineColor, 2);
	  		//生成Graphic对象
		  	lineGraphic = new Graphic(lineGeometry, lineSymbol);
	        ppline.add(lineGraphic);
	    }
	} catch (Exception e) {
		e.printStackTrace();
	}
	
	graphicsOverlay = new GraphicsOverlay(mMapView);
    mMapView.getOverlays().add(graphicsOverlay);
    Log.e("Map", "ppline.size()"+ppline.size());
	//添加折线
    for(int w = 0;w
     
     
    
    
   
   

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值