ItemizedOverlay를 확장하는 자체 클래스를 만들어야하고 그리기 메서드에서 Canvas에 선을 그립니다. 예를 들어
: onLocationChanged()
에서
public class MyOverlay extends ItemizedOverlay<OverlayItem> {
private Projection projection;
private Point linePaint;
private Vector<GeoPoint> points;
public MyOverlay(Drawable defaultMarker) {
points = new Vector<GeoPoint>()
linePaint = new Paint();
//set color, stroke width etc.
}
public void addPoint(GeoPoint point) {
points.addElement(point);
}
public void setProjection(Projection projection) {
this.projection = projection;
}
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
int size = points.size();
Point lastPoint = new Point();
projection.toPixels(points.get(0), lastPoint);
Point point = new Point();
for(int i = 1; i<size; i++){
projection.toPixels(points.get(i), point);
canvas.drawLine(lastPoint.x, lastPoint.y, point.x, point.y, linePaint);
lastPoint = point;
}
}
}
당신은 overlay.addPoint
을 통해 새로운 GeoPoint의 추가해야합니다. 지도보기가 표시됩니다 활동의 onCreate()
에서 당신은 추가해야합니다
overlay = new MyOverlay(null); //overlay must be accessible from onLocationChanged
map.getOverlays().add(overlay); //map = (MapView) findViewById(R.id.mapview)
점 그리기 속도를 높이기 위해 눈에 보이는 사각형에있을 것입니다 경우도 (또는 다른 곳) 무승부로 확인해야합니다.
나는 약간의 실수가있을 때 이것을 비난하지 않으므로 이것을 비난하지 않았다.
답장을 보내 주셔서 감사합니다. 그러나 WaypointsOverlay 클래스를 구현했지만, onLocationChanged() 아래에 있어야하는 addPoint 키워드에 대해서는 아무 것도 찾을 수 없습니다. – jcrowson