2017-09-04 5 views
0

私はzipファイルから地図をアップロードしました。ズームレベルを変更すると読み込まれた後、モバイル画面の外にある部分が正しく読み込まれません。 なぜ機能しないのですか? enter image description here地図料金が正しくないのはなぜですか?

ありがとうございます!

+0

ロードされたマップはキャッシュされたデータからのものであり、残りはあなたのスクリーンショットに応じてデータ接続がオフになっている、前提としてロードされていません。また、マニフェストファイルにインターネットパーミッションがありますか? –

+0

私はインターネットに接続する必要はありません。 – marioerro

+1

インターネットを持っていないと地図がどのように読み込まれると思いますか?オフラインのKMLファイルを使用して、インターネットを使わずに地図を読み込むことができます。インターネットが地図を読み込むまでは、その必要があります。 –

答えて

0

実際には、.zipにタイルがない場合、タイルは被写体のズームレベルで表示されません。

タイルがすでに低いズームレベルから表示されている場合は、試してみてください!あなたがあなた自身の

map.getTileProvider().rescaleCache({some parameters olso is here}); 

別で試すことができます方法は、あり

、多分そう簡単な決定は、以下で説明されていません。

それはのような単純なアプローチを使用してyou`reのようになります。あなたはもっと複雑であるステップにオーバー行くことができますしかし

XYTileSource tileSource = new XYTileSource("map", 
MIN_ZOOM_LEVEL, MAX_ZOOM_LEVEL, 256, ".png", new String[]{}); 

map.setTileSource(tileSource); 

XYTileSource tileSource = new XYTileSource("map", 
MIN_ZOOM_LEVEL, MAX_ZOOM_LEVEL,256, ".png", new String[]{}); 

SimpleRegisterReceiver simpleRegisterReceiver = 
      new SimpleRegisterReceiver(getContext()); 

MapTileModuleProviderBase[] mapTileModuleProviderBases = 
      new MapTileModuleProviderBase[1]; 

mapTileModuleProviderBases[0] = 
      new MyMapTileFileArchiveProvider(simpleRegisterReceiver, 
       tileSource, mapArchiveFiles); 
//mapArchiveFiles - your Array of IArchiveFile 
//IArchiveFile iArchiveFile = ArchiveFileFactory.getArchiveFile(file); 
//file - your .zip 

MapTileProviderArray mapTileProviderArray = 
      new MapTileProviderArray(tileSource, 
        simpleRegisterReceiver, mapTileModuleProviderBases); 

map.setTileProvider(mapTileProviderArray); 

質問 - MyMapTileFileArchiveProviderクラスは何ですか? それはちょうどMapTileFileArchiveProviderのサブクラスではないのですが、それらの両方が共通の親持っている:you`reは独自のクラスにMapTileFileArchiveProviderクラスのデフォルトの実装・ペーストコピーするために歓迎し、この方法を探してください。この時点で

public class MyMapTileFileArchiveProvider extends MapTileFileStorageProviderBase {} 

を:

private synchronized InputStream getInputStream(final MapTile pTile, 
     final ITileSource tileSource) { 
    for (final IArchiveFile archiveFile : mArchiveFiles) { 
     if (archiveFile!=null) {final InputStream in = 
      archiveFile.getInputStream(tileSource, pTile); 
      if (in != null) { 
       if (Configuration.getInstance().isDebugMode()) { 
        Log.d(IMapView.LOGTAG, "Found tile " + pTile + " in " + archiveFile); 
       } 

       return in; 
      } 
     } 
    } 

    //Good place for your logic (as we call it - crutch) 
    //to look for available tiles for subject area on lower zoom level 
    //Do not surrender before return null! 

    return null; 
} 

注意を払ってくれてありがとう:)

関連する問題