2012-11-10 4 views
4

힌트 : 여기에 HTML이 포함 된 similar post입니다.타블렛에서지도 뷰 : 어떻게지도를 오프셋으로 가운데에 배치 할 수 있습니까?

(가 내 레이아웃이 아주 사소한, 그리고 내 생각 : 내 응용 프로그램의 현재 태블릿 구현에서

, 나는 다음과 같이 왼쪽 패널에 RelativeLayout의 표시 몇 가지 정보와 전체 화면지도보기를 나는 특정 지점에지도의 중심하고자 할 때 필요

enter image description here

문제는 온다) 가독성을 위해 게시 없습니다 ... 나는이 코드를 사용하는 경우 :

mapController.setCenter(point); 

물론 화면의 중심에 있고 빈 영역의 중앙에는 포인트가 없습니다. 내가지도에 왼쪽 패널의 오프셋 (offset) 좌표를 설정하기 시작 수있는 곳

나는 ...

감사합니다 당신은 점점하여 목표를 achive 수

답변

3

어떤 도움이나 제안에 대해 많이 정말 아무 생각이 없다 지도 좌표는 top-leftbottom-right 모퉁이에서 화면 크기로 나누어 픽셀 당 값을 얻습니다.

그런 다음 오프셋을 곱하여 원래 중심점에 추가하면됩니다.

예제 코드 :

private void centerMap(GeoPoint center, int offX, int offY){ 
    GeoPoint tl = mapView.getProjection().fromPixels(0, 0); 
    GeoPoint br = mapView.getProjection().fromPixels(mapView.getWidth(), mapView.getHeight()); 

    int newLon = offX * (br.getLongitudeE6() - tl.getLongitudeE6())/mapView.getWidth() + center.getLongitudeE6(); 
    int newLat = offY * (br.getLatitudeE6() - tl.getLatitudeE6())/mapView.getHeight() + center.getLatitudeE6(); 

    mapController.setCenter(new GeoPoint(newLat, newLon)); 

} 

사용하려면 적용 할 원래 센터와 모두 오프셋 (X와 Y)와 위의 메소드를 호출합니다.

Note: 위의 코드는 양수 오프셋 값의 경우 왼쪽으로 이동하고 음수 오프셋 값의 경우 오른쪽으로 이동합니다. 귀하의 질문의 화면에서 당신은지도가 왼쪽으로 이동, 오프셋 부정적인를 사용해야합니다, 그리고 제로 확실히 그것의 대답을 받아위한

+0

좋은 소리 감사합니다

는 이번 주에 의지하려고합니다 Y. 오프셋 (offset) 하지만 정말 좋은 소리. –

+0

시도해 보셨습니까? – Luis

관련 문제