2016-06-20 9 views
0

MKMileView를 사용하여 OpenStreetMap 맵을 표시하려면 MKTileOverlay를 사용합니다. 예 : MKTileOverlay기구, 로딩, 캐싱을 사용하여MKTileOverlay : 타일 캐시를 지우는 방법 및 타일을 다시로드하는 방법

MKTileOverlay *overlay = [[MKTileOverlay alloc] initWithURLTemplate:@"http://tile.openstreetmap.org/{z}/{x}/{y}.png"]; 
[self.mapView addOverlay:overlay level:MKOverlayLevelAboveLabels]; 

는 MKTileOverlay RESP에 의해 처리된다. MKMapView. 이제 우리는 이상한 행동을 관찰 할 수 있습니다.

더 오래 사용하면 성능이 저하 된 것 같습니다 (메모리 문제 일 수 있습니까?). 그런 경우 일부 타일은 비어 있어야합니다.

사람이 메모리 문제를 해결하기 위해 타일 캐시를 삭제하는 방법을 알고 있나요 :

따라서, 우리는 다음과 같은 질문이? 이전에 문제가 발생한 경우 특정 타일을 다시로드하는 방법을 아는 사람이 있습니까?

귀하의 의견과 제안에 감사드립니다. 이

https://developer.apple.com/library/mac/documentation/MapKit/Reference/MKTileOverlayRenderer_class/#//apple_ref/occ/instm/MKTileOverlayRenderer/reloadData

거기에서

마이클

답변

0

보기는 데이터

를 다시로드 MKTileOverlayRenderer (렌더러가 아닌 오버레이)에 대한 functionCall 내가 방법을 설명하는 this tutorial 발견 MKTileOverlayRenderer를 구현합니다. 이 렌더러를 사용하면 setNeedsDisplayIn (areaToRedraw) (Swift3)을 호출하여 원하는 타일 만 업데이트 할 수 있습니다.