2011-03-11 5 views
5

사용자 지정 MKOverlayView를 사용하여 간단한 선을 그립니다. 있음 drawMapRect: 설정 오전 CGContextSetLineWidth(context, 30); 완전히 확대하면 잘 보이지만 축소하면 선이 점점 더 얇아집니다. MKOverlayView 참조는지도의 줌 레벨에 맞게 자동으로 조정된다는 것을 알려줍니다. 내 확대/축소 수준에 관계없이 어떻게 동일한 너비로 그려야합니까? 나는 MKPolylineView (와 MKPolygonView)가 이것을 정확하게 수행한다는 것을 알아 차렸다. 동일한 너비를 유지하기 위해 확대/축소 할 때마다 라인의 너비가 조절되는 것을 볼 수있다. 내 오버레이보기에서 어떻게 할 수 있습니까?사용자 지정 MKOverlayView 선 너비

답변

14

원하는 결과가 명확하지 않습니다. 확대/축소와 관계없이 선 너비를 동일하게 유지 하시겠습니까? 아니면지도보기가 그려지는 도로가 확대/축소 수준에 관계없이 동일한 너비가되도록 하시겠습니까?

CGContextSetLineWidth(context, (30/zoomScale)); 

도로 같은 라인에 동일한 폭을 유지하기 위해 사용 MKRoadWidthAtZoomScale : 라인을 유지하기 위해

는 zoomScale로 나누어 시도 상관없이 어느 정도 일정한 폭 없습니다

CGContextSetLineWidth(context, MKRoadWidthAtZoomScale(zoomScale)); 

당신은 할 수 원하는 경우 도로 폭에 대한 추가 조정을 적용하십시오.

CGContextSetLineWidth(context, 1.5*MKRoadWidthAtZoomScale(zoomScale)); 
+1

원하는 줄을 입력하십시오. 아무리해도. 나는 결코 그것이 zoomscale로 나누는 것이 그것을 할 것이라고 추측했을 것입니다! width와 zoomScale은 반비례 할 필요가 있다는 것을 알았습니다. 그러나 그것이 선형 일 것이라고는 생각하지 않았습니다. – GendoIkari

관련 문제