두 지점 사이에 선을 그려야하는 프로그램이 있습니다. 그런 다음 다른 두 점 사이에 다른 선을 그립니다. 한 줄을 그릴 때 이전 줄이 제거됩니다. 두 줄을 다른 오버레이로 만들려고 시도했지만 여전히 줄을 제거하고 줄 바꿈을합니다. 이 문제를 방지하고 모든 오버레이를 유지하는 방법은 무엇입니까? 어떤 도움이라도 대단히 감사하겠습니다.어떻게 여러 개의지도 오버레이를 화면에 그립니 까?
Activity 클래스 내부의 오버레이 클래스입니다.
이
는 onKeyDown에에()case KeyEvent.KEYCODE_8:
twoPoints.add(a);
twoPoints.add(b);
MapOverlay newOverlay = new MapOverlay();
listOfOverlays = mapView.getOverlays();
listOfOverlays.add(newOverlay);
mapView.postInvalidate();
System.out.println("Test overlays 1 Point");
break;
case KeyEvent.KEYCODE_9:
twoPoints.remove(1);
twoPoints.add(c);
MapOverlay newOverlay1 = new MapOverlay();
listOfOverlays.add(newOverlay1);
mapView.postInvalidate();
System.out.println("Test Overlays 2 Point");
break;
그리고 이것은 오버레이 클래스입니다 : 정말 잠시 동안 지금 나를 혼란 된
public class MapOverlay extends com.google.android.maps.Overlay
{
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow)
{
super.draw(canvas,mapView,shadow);
//-- Create new paint object --
Paint mPaint = new Paint();
mPaint.setDither(true);
mPaint.setColor(Color.RED);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(2);
//System.out.println("Point 1");
//System.out.println("Point 2");
for(int i =0; i < twoPoints.size()-1;i++)
{
Point screenPt1 = new Point();
mapView.getProjection().toPixels(twoPoints.get(i), screenPt1);
Point screenPt2 = new Point();
mapView.getProjection().toPixels(twoPoints.get(i+1), screenPt2);
canvas.drawLine(screenPt1.x, screenPt1.y, screenPt2.x, screenPt2.y, mPaint);
System.out.println("Point 3");
}
//mapView.invalidate();
}
}
.
내가 얻은 질문에 2 점 사이의 길 찾기를 표시하겠습니까? 내가 맞습니까? – Prem
방향을 원한다면 Google지도 웹 서비스를 사용해야합니다. – Prem