2013-06-20 2 views
0

Я - новый разработчик Android. Я хочу разработать приложение карты. Я хочу нарисовать полилинию на карте, похожую на то, чтобы получить направление в Google Ma. После рисования полилинии я могу нарисовать многоугольник вдоль полилинии? Я не знаю как это сделать. Пожалуйста, дайте мне пример или какое-то решение. Большое вам спасибо и прошу прощения за мой английский. Можно ли это сделать?Как добавить многоугольник вдоль полилинии?

Это изображение [https://www.dropbox.com/s/nmusjt6fp880akf/20-Jun-13%204-05-25%20PM.png][1]

+0

Дубликат http://stackoverflow.com/questions/17204174/polygon-polyline. Может быть, попробуйте быть более наглядными или сделать снимок экрана о том, чего вы хотите достичь, и, безусловно, вы должны положить здесь части того, что вы уже пробовали. –

ответ

0

Вы можете использовать CanvasPathPoint Класс для рисования PolyLine на Карте Google. Также вам нужно посмотреть на this link для справки.

List<Overlay> mapOverlay; 

    protected onCreate(Bundle savedInstanceStae){ 

    //Do the rest stuffs 

     mapOverlay = mapView.getOverLays(); 

     mapOverlay.add(new MyOverlay()); 


    } 


class MyOverLay extends Overlay{ 

     public MyOverlay(){} 

     ArrayList<GeoPoint> points = new ArrayList<GeoPoint>(); 

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

     Paint mPaint = new Paint(); 
     mPiant.setColor(Color.RED); 
      //set strokewidth and all function depending upon you how you want to give a look     

      //on Polyline. 

     GeoPOint gp1 = new GeoPoint((int) (lat * 1000000.0), (int) (lon * 1000000.0)); 
     GeoPOint gp2 = new GeoPoint((int) (lat * 1000000.0), (int) (lon * 1000000.0)); 
     GeoPOint gp3 = new GeoPoint((int) (lat * 1000000.0), (int) (lon * 1000000.0)); 
     GeoPOint gp4 = new GeoPoint((int) (lat * 1000000.0), (int) (lon * 1000000.0)); 



    points.add(gp1); 
    points.add(gp2); 
    points.add(gp3); 
    points.add(gp4); 

    //Then take two points class object: 

    Point point1 = new Point(); 

    Point point2 = new Point(); 

    Path path = new Path(); 

    for(int i = 0; i<points.size(); i++){ 

     projection.toPixel(points.get(i),point1); 
     projection.toPixel(points.get(i+1),point2); 

     path.moveTo(point2.x,point2.y); 
     path.lineTo(point1.x,point1.y); 

    } 

    canvas.drawPath(path, mPoint); 


} 
Смежные вопросы