2012-10-19 4 views
9

현재 학교 프로젝트를 진행 중이고 오프라인에서지도를 볼 수 있도록 OSM지도 타일을 휴대 전화의 로컬 메모리/캐시에 다운로드하는 방법을 배우려고합니다. .OSMDroid에서 특정 캐시를 캐시로 다운로드

특정 위치를 지정하면됩니다. 오프라인에서보기 위해 위치와 특정 반경/거리 내에있는지도 타일이 전화 메모리에 다운로드됩니다 (온라인으로 연결될 때).

그러나 OSMDroid의 API를 이해하는 데 약간의 문제가 있습니다. 나의 이해에서, 관련된 클래스 것 같다 :

내가 잘못 해요 경우에 저를 정정주세요.

또한 MapTileBase (제공자라고 생각하는)에서 getMapTile은 android.graphics.drawable.Drawable을 반환합니다.

이 드로어 블 클래스는 오프라인지도 디스플레이의 개념과 관련이 있습니까?

등의지도는 휴대 전화의 메모리에 다운로드 할 수 호출되고 있으며, 우리는 경로, 핀과 같은 인터페이스 항목을 표시하는지도를 편집 할 수있는 방법을 정확하게 누군가가 나를 계몽 할 수

희망,

+1

가능한 중복 (http://stackoverflow.com/questions/22862534/download-maps-for-osmdroid) – yochannah

답변

1

내가 돈 ' MapView가 아직 탐색하지 않은 영역 외부에서 오프라인으로 캐시하는 방법을 찾고있는 경우 정확하게 대답합니다. 캐싱 지원 기능이 내장되어 있지만 정확히 수행하려는 방식은 아닙니다.

오프라인지도 타일을 제공하지 않고 캐시하려는 경우 온라인 다운로드 기능이 필요합니다. MapTileDownloader를 살펴보고 자신의 버전을 구현하려고합니다. MapTileDownloader.TileLoader.loadTile() 메서드는지도 타일이 필요할 때 MapTileProviderArray가 호출한다고 생각하는 MapTileRequestState를 사용합니다.

기존 MapTileDownloader의 TileLoader 기능을 복제 할 수 있다면 요청한 MapTileRequestState 나 직접 매핑 된 MapTile을 직접 삽입 할 수 있습니다. 예 : MapTileRequestState라는 TileLoader를 가져 와서 검사하고 현재보기 외부에서 타일을 나타내는 새로운 MapTileRequestState/MapTile을 생성하는 방법을 찾습니다. 다양한 줌 레벨을 다루어야하므로 쉽지는 않을 것이며, 줌 레벨에 따라 반경이 더 작아 져야합니다. 18보다 낮은 줌 레벨은 타일 반경이 a higher 10.

개인적으로 나는 최근에 100 % 오프라인으로 작업하려고 노력하고 있었기 때문에 도움을 줄 예제 코드가 없었습니다. 2 개월이 지났지 만 행운을 빈다.

+2

덕분에이 클래스를 사용하여 다운로드 어쨌든 입력 =) 필자는 특정 MapTiles를 다운로드하여이 문제를 해결하고 오프라인 디스플레이를 위해 전화로 압축했다. 나는 하나의 확대/축소 수준에서 작동하는 다운로드를 얻을 수 있었지만 다중 확대/축소 수준 [여기]로 다시 문제가 발생했습니다 (http://stackoverflow.com/questions/13930364/asynctask-not-executing-properly-according-to-logic) – lyk

+0

유감 이네요. 난 그냥 onclreate() 생성자 대신에 activity_main.xml에서 생성 된 OSMDroid MapView를 가지고 최근에 오프라인 타일을 사용하고있다 : http://stackoverflow.com/questions/13894267/how-to-add-a-sliding -drawer-a-mapview-view-thats-created-programmatically – garlicman

0

첫째, 소스 https://github.com/osmdroid/osmdroid

데 도움이되는 몇 위키 기사, 특히 오프라인지도 타일 기사가있다에게 바로 이동합니다. 즉, MOBAC 또는 osmdroid가 제공하는 도구를 사용하십시오. OSMBonuspack에는 장치에서 동일한 작업을 수행 할 수있는 도구가 있습니다.

지도 타일은 실제로 https://github.com/osmdroid/osmdroid/blob/master/osmdroid-android/src/main/java/org/osmdroid/tileprovider/modules/MapTileDownloader.java

[osmdroid에 대한 다운로드지도]의
관련 문제