2012-08-10 2 views
0

나는 mapRectThatFits를 조금이라도 이해하지 못합니다.mapRectThatFits : 그것은 무엇을하나요?

MKMapRect zoomRectNorm = [mapView mapRectThatFits:zoomRect]; 
// BREAKPOINT HERE 

이제 디버거에서보기를 할 수 있습니다 : 여기에 코드의 간단한 라인이다.

인쇄 zoomRect :

(lldb) p zoomRect 
(MKMapRect) $1 = { 
    (MKMapPoint) origin = { 
    (double) x = 4.2997e+07 
    (double) y = 9.36865e+07 
    } 
    (MKMapSize) size = { 
    (double) width = 26493.1 
    (double) height = 148685 
    } 
} 

인쇄 zoomRectNorm :

(lldb) p zoomRectNorm 
(MKMapRect) $2 = { 
    (MKMapPoint) origin = { 
    (double) x = 4.29283e+07 
    (double) y = 9.36379e+07 
    } 
    (MKMapSize) size = { 
    (double) width = 163840 
    (double) height = 245760 
    } 
} 

는 그래서 2 화면 비율을 조정 : 3이지만 폭, 높이, 또는 원점을 유지하지 않았다!?

문서에 따르면, 그것은 반환해야합니다 :

여전히 폭과 높이지도보기의 프레임에 맞게 조정 같은지도 의 시점하지만 중심으로지도 사각형.

무슨 거래요? 나는 원점 (문서에 명시된 바와 같이)과 너비/높이 중 적어도 하나를 유지하기를 기대할 수 있습니까?

답변

0

MapRect는 지역을 포함 할 수있는 확대/축소 수준에 도달 할 때까지 축소되어 기본 해상도로 타일이 표시됩니다.

+0

출처는 어떻습니까? 왜 그것을 바꿀까요? – mark

+0

귀하의 지역을 기반으로하는 곳이 어디입니까 (mkmapview가 교차 할 수없는) 날짜 표시 줄에 너무 가까워서 센터가 뒤로 밀면 옆으로 밀어 넣을 수 있습니까? – Craig

0

mapview에서 setVisibleMapRect을 사용하면 얻게 될지도 직사각형을 다시 제공합니다. 센터는 동일해야합니다. 그 기원은 아마 그렇지 않을 것이다. 이유를 이해하려면 원점과 중심점의 차이점을 생각해야합니다. 이해해야 할 또 다른 점은, 특정지도 rect를 설정하라고 요청하더라도지도 뷰는 항상 가장 좋은 점에 대한 자체 아이디어를 설정한다는 것입니다. 가장 좋은 점은 확대/축소없이 타일을 표시 할 수 있다는 것입니다.