Добавление видимых «маркеров» для представления географических точек в MapView с помощью ItemizedOverlay в Android - PullRequest
1 голос
/ 31 марта 2010

Я создаю приложение, которое сохраняет местоположения GPS в базе данных SQLite, а затем выводит данные в MapView, используя наложение, рисуя красную линию между точками.

Я хочу иметь возможность показывать графические маркеры (изображения) для каждой из этих точек, а также красную линию. Мой код выглядит следующим образом:

public class MyOverlay extends ItemizedOverlay<OverlayItem> {

// private Projection projection;
private Paint linePaint;
private Vector<GeoPoint> points;

public MyOverlay(Drawable defaultMarker) {
    super(defaultMarker);
    points = new Vector<GeoPoint>();
    //set colour, stroke width etc.
    linePaint = new Paint();
    linePaint.setARGB(255, 255, 0, 0);
    linePaint.setStrokeWidth(3);
    linePaint.setDither(true);
    linePaint.setStyle(Style.FILL);
    linePaint.setAntiAlias(true);
    linePaint.setStrokeJoin(Paint.Join.ROUND);
    linePaint.setStrokeCap(Paint.Cap.ROUND);

}

public void addPoint(GeoPoint point) {
    populate();
    points.addElement(point);

}

//public void setProjection(Projection projection) {
//   this.projection = projection;
// }

public void draw(Canvas canvas, MapView view, boolean shadow) {
    populate();
    int size = points.size();
    Point lastPoint = new Point();
    if(size == 0) return;
    view.getProjection().toPixels(points.get(0), lastPoint);
    Point point = new Point();
    for(int i = 1; i<size; i++){
       view.getProjection().toPixels(points.get(i), point);
        canvas.drawLine(lastPoint.x, lastPoint.y, point.x, point.y, linePaint);
        lastPoint = point;

    }
}

@Override
protected OverlayItem createItem(int arg0) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public int size() {
    // TODO Auto-generated method stub
    return 0;
}
}

Какой самый простой способ реализовать добавление маркеров для каждой GeoPoint?

1 Ответ

2 голосов
/ 31 марта 2010

Взгляните на http://www.vtgroup.com/index.html#MapLocation и посмотрите, отвечает ли он на ваш вопрос.

...