첨부파일의 기능은
1. 클릭한 위치에 마커 생성
2. 클릭한 곳의 좌표를 좌측 상단에 표시
3. 메뉴 1번을 선택하면 파싱된 XML 파일에서 좌표를 불러들여 해당 위치에 마커 생성
이렇게 두 가지입니다.
제가 궁금한 것은,
메뉴 1번의 파싱을 실행하면 에뮬레이터의 속도가 굉장히 느려지는 겁니다.
그래서 다른 책을 참고해서 백그라운드 스레드로 실행시켰는데 그래도 느립니다.
그리고 마커말고 선을 그리는 것을 모르겠습니다.
캔버스에 그리는 것은 알겠는데 맵위에 그리는 것을 잘 모르겠네요
고수분들의 도움을 받고 싶습니다.
제가 고수는 아니고 아는것만 설명드릴께요.
맵위에서 두점간 선을 긋는 것도 public void draw(Canvas canvas, MapView mapView, boolean shadow) 메서드에서 했는데요
포인트 겍체2개를 만듭니다.
Point targetPosition = new Point();
Point startPosition = new Point();
// draw 메서드에서 drawLine()을 이용해 선을 그을것입니다.
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
// getProjection().toPixels() 메서드를 이용해서 mOverlays에있는 오버레이 아이템의 좌표를 가져와 위에서 생성한 포인트 객체한테 줍니다.
mapView.getProjection().toPixels(mOverlays.get(0).getPoint(), targetPosition);
mapView.getProjection().toPixels(mOverlays.get(1).getPoint(), startPosition);
Paint paintLine = new Paint(); // 선을 긋기 위한 페인트 생성
paintLine.setARGB(70,255, 0, 0); // 빨강색, 쫌 투명하게 하니깐 보기 좋네
paintLine.setStrokeWidth(2); // 굵기
paintLine.setAntiAlias(true); // 부드럽게 처리.
//선을 긋습니다.
canvas.drawLine(targetPosition.x, targetPosition.y, startPosition.x, startPosition.y, paintLine);
반복문을 이용하면 리스트에 저장되있는 0번부터 끝번까지 좌표의 선을 그을 수도있습니다.