2013-04-19 7 views
1

나는 wms에서 타일을 표시하기 위해 Google Maps v2를 사용하고 있습니다. 타일이 올바르게 표시됩니다. 모든 것이 지금까지 모두 잘되었습니다. 이제 캐시 기능이 필요합니다. 코드를 사용하여 I'am는 여기서 제공 : http://www.azavea.com/blogs/labs/2013/01/wms-on-android/Google지도 v2 Android 맞춤 타일 wms

Google지도는 기본적으로 타일을 캐싱하지만 모든 것을 캐시 아니에요, 타일은 "중간에 아주 높고 낮은 줌 레벨 (재 다운로드) 만 타일에로드되지 않습니다 "캐시에서로드됩니다. 주요 문제는 앱을 닫고 다시 열 때입니다. Google지도는 캐시에서 타일을로드하지 않지만 모든 것을 다시 다운로드합니다. 왜 캐시가 지워지지 않았는지 확실하지 않습니다.

누구든지 Google지도에서 타일 캐시를 "수정"하는 아이디어가 있다면 좋습니다. 그렇지 않다면 링크의 예에서 다운로드 한 타일을 어떻게 가져올 수 있습니까?

+0

나는 또한 동일한 사이트를 참조하고 있습니다. 하지만 getTileUrl (int x, int y, int zoom)이 호출되지 않는 이유를 알고 계십니까? – Pradeep

답변

1

자신 만의 다운로드 및 캐싱 알고리즘을 작성하고 TileProvider을 구현해야합니다 (예 : UrlTileProvider).

+0

답변 해 주셔서 감사합니다. 나 자신의 다운로더와 캐싱을 만들었습니다. 몇 가지 테스트를 마치면 타일 이미지를 비동기로 다운로드해야한다는 것을 알게되었습니다. 나는 운없이 이것을하려고 노력했다. 비동기에서 다운로드 한 타일 이미지를 getTile에 반환하려면 어떻게해야합니까? (그것은 어떤 의미가 있었는지) 어떤 제안입니까? – user16930

+0

자신 만의 threds/async 작업을 만들 필요가 없습니다. [TileProvider] (https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/model/TileProvider) "이 인터페이스의 메소드 호출은 여러 스레드에서 수행 될 수 있으므로 이 인터페이스의 구현은 thread 세이프가 아니면 안됩니다. –

+0

감사합니다. 간단한 HttpURLConnection을 사용하여 이미지를 다운로드하고 getTile에서 바이트 배열을 반환합니다. getTileUrl을 사용할 때 타일은 getTile과 내 다운로더를 사용하는 것보다 더 빨리 (캐시 없음) 다운로드하고 표시합니다. 차이는 10 초 이상 될 수 있습니다. 이것에 대한 생각도 있나? – user16930