osmdroid를 사용하여 OpenStreetMap에서 오프라인지도에 대한 타일 가져 오기

osmdroid를 사용하여 Android에서 오프라인지도보기
계속됩니다.

CacheManager 클래스



타일의 캐쉬를 관리하기 위한 클래스입니다.

참고 : Cache Manager

OSM 서버에서 타일 이미지를 다운로드하고 오프라인 타일 파일을 만드는 메소드가 있습니다.
downloadAreaAsync(Context ctx, BoundingBox bb, final int zoomMin, final int zoomMax, final CacheManagerCallback callback)

CacheManagerCallback 메서드
  • onTaskComplete()
    성공할 때 호출됩니다
  • onTaskFailed(int errors)
    실패 할 때 호출됩니다
  • updateProgress (int progress, int currentZoomLevel, int zoomMin, int zoomMax)
    주기적으로 호출되기 때문에 중간 경과를 표시하는 데 도움이됩니다
  • downloadStarted()
    다운로드가 시작될 때 호출됩니다
  • setPossibleTilesInArea(int total) {
    다운로드가 시작되기 직전에 호출됩니다

  • 기본 사용법


    //String outputName : 出力ファイルのパス名
    // 例 /storage/emulated/0/osmdroid/archive.sqlite
    
            // MapView から表示範囲を取得する
            BoundingBox bb = mMapView.getBoundingBox();
    
    // ダウンロードする
     SqliteArchiveTileWriter writer =new SqliteArchiveTileWriter(outputName);
    CacheManager mgr = new CacheManager(mMapView, writer);
                        mgr.downloadAreaAsync( context, bb, zoommin, zoommax, new CacheManager.CacheManagerCallback() {
                        // コールバックの処理
                        });
    
    

    줌 레벨을 지정하는 UI 추가


    // SeekBar sb;シークバーの view
    
    // MapView からズームレベルを取得して、シークバーの最大値を設定する
        int max = (max)mMapView.getMaxZoomLevel();
        sb.setMax( max);
    
    // シークバーから指定されたズームレベルを取得する
        int zoom =sb.getProgress();
    

    스크린샷



    범위 선택을 위한 지도





    매개변수를 지정하기 위한 대화상자



    위 탐색 바는 최소 줌. 아래는 최대 줌.


    github에 소스를 게시했습니다.

    좋은 웹페이지 즐겨찾기