현재 제가 S57 해양데이터를 파싱하여 해양지도를 그리는 작업을 진행중입니다.

 

Android OpenGL ES에 대해 완전 초보자라 책보면서 따라 해보고 공부해보고 있는데요(타블렛 기준입니다)

 

지도제작과 관련해 두가지 궁금한점이 있어서 질문을 드렸습니다.

 

1. 지도에는 축적이라는게 있습니다. 1:25000 이런식으로 25000키로당 지도상에선 1센치 이런식으로 단위 환산을 해 놓은것입니다. 이를  Android OpenGL ES 에서 최대 캔버스 크기를 어떻게 잡아야할지 궁금해서 질문드려습니다. 현재 의심가는건

@Override
 public void onSurfaceChanged(GL10 gl, int width, int height)

이 함수에서 width, height값을 찍어본 결과 단말기 화면을 나타내 주는거 같고

gl.glViewport(0, 0, width, height);

요 함수를 써서  캔버스를 초기화 해주는거 같은데 그럼 width, height만 바꾸면 되는 것인가요?

 

2.  카메라 구현에 관한 질문인데요.

 

현재 단말기의 터치 이벤트 좌표와 OpenGL ES에서의 카메라의 LookAt 좌표를 일치시키기 위해

float x = (event.getX()/(getWidth()/2)) - 1;
float y = 1-((event.getY()/(getHeight()/2)));

이런식으로  단위를 환산해서 카메라의 표시위치를 출력하고 있습니다.

 

단 이렇게 하니 문제가 뭐랄까..... 안드로이드의 터치 좌표는 일정하자나요

 

예를들어 어느 한곳을 손으로 터치했는데 포인트가 20, 20 이라면 다시 그곳을 터치해도 20, 20!!!  즉, 계속해서 드래그해서 우측으로 이동하고 싶을경우(구글 맵 같은것 처럼) 는 어떻게 하여야 하나요?

 

현재 터치해서 드래그하면 카메라 이동은 돼지만 다시 터치해서 드래그 하면 그림이 계속 다시 원점으로 갔다가 이동하는 문제가 생겨서요.....

 

 

위의 두가지에 대해 질문좀 드리겠습니다~

 

좋은하루 되세요~