2012-09-19 4 views
3

으로 확대/축소합니다. MapView가 있습니다.안드로이드 MapView는 내 응용 프로그램에서 반지름

사용자가 설정 한 반경에 따라지도의 줌을 변경하고 싶습니다. 나는 대답을 this 링크에서 찾았지만 문제는이 함수가 화면의 너비만을 고려한다는 것입니다. 높이도 고려해야합니다.

예를 들면 : 1km의 반경을보고 싶으면 링크의 기능에 1km의 너비가 표시되지만 1km의 높이는 표시되지 않습니다. 두 가지 모두에 표시되는 것이 중요합니다. 높이가 1km 인 경우 폭과 높이가 1.5km 인 경우에도

어떻게 할 수 있습니까?

+0

당신이 할 수있는 방법을 얻을 수의 줌 레벨 을 설정 이? – Zeba

+0

정말로 ... 질문의 링크는 지금까지 찾은 최고의 대답입니다. –

답변

4

다음은 정확한 작동 코드입니다.

1)) 원하는 반경

Circle circle = mGoogleMap.addCircle(new CircleOptions().center(new LatLng(latitude, longitude)).radius(getRadiusInMeters()).strokeColor(Color.RED));   
     circle.setVisible(true); 
     getZoomLevel(circle); 

2 개체에 원 확인이 함수에 해당 개체를 전달하고 여기에 a link

public int getZoomLevel(Circle circle) { 
if (circle != null){ 
    double radius = circle.getRadius(); 
    double scale = radius/500; 
    zoomLevel =(int) (16 - Math.log(scale)/Math.log(2)); 
} 
return zoomLevel; 
} 
관련 문제