2012-02-03 78 views
1

是否有人有教程或示例如何使用逗号分隔的经度坐标的csv文件在地图覆盖图上绘制路线以供在山地徒步应用程序中使用。 csv文件将被存储在资产文件夹中。Android地图路线覆盖示例

我是新开发的android开发人员,并且一直在搜索最高和最低的成功。

非常感谢提前。

许多坦克的评论 - 我已经到了可以绘制路径但只有其他每一点的地步,我的下一个问题是如何通过csv文件循环显示连续路径 - 下面的代码。

class WalkOverlay extends Overlay{ 

    public void draw(Canvas canvas, MapView mapv, boolean shadow){ 
     super.draw(canvas, mapv, shadow); 

     Paint mPaint = new Paint(); 
     mPaint.setDither(true); 
     mPaint.setColor(Color.RED); 
     mPaint.setStyle(Paint.Style.FILL_AND_STROKE); 
     mPaint.setStrokeJoin(Paint.Join.ROUND); 
     mPaint.setStrokeCap(Paint.Cap.ROUND); 
     mPaint.setStrokeWidth(5); 

     // start csv parser   
     try { 
      InputStream is = getAssets().open("CSV/Mountain Walks/llanberisPath.csv"); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
      try { 
       String line; 

       while ((line = reader.readLine()) != null) { 

       String[] RowData = line.split(","); 
       longitude = RowData[0]; 
       latitude = RowData[1]; 

       Double lat = new Double(latitude); 
       Double lng = new Double(longitude); 

       geoPoint1 = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));                      
      gP1 = geoPoint1; 
      gP2 = geoPoint2; 

      p1 = new Point(); 
      p2 = new Point(); 

       path = new Path(); 

       Projection projection = mapv.getProjection(); 
      projection.toPixels(gP1, p1); 
      projection.toPixels(gP2, p2); 

      path.moveTo(p2.x, p2.y); 
      path.lineTo(p1.x,p1.y); 

      canvas.drawPath(path, mPaint); 

       } 

      } 
      catch (IOException ex) { 
       // handle exception 
      } 
      finally { 
       try { 
        is.close(); 
       } 
       catch (IOException e) { 
        // handle exception 
       } 
      } 

     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 
} 

回答