Como posso implementair mapas off-line usando o osmdroid ao save imagens de mosaicos de mapas no database sqlite?

Eu tenho um projeto que tem um requisito de exibir dados do mapa no modo off-line também. Eu usei os mapas OpenStreet paira o mesmo. Eu salvei imagens de mapa (telhas) e cada tile é referenciado por uma key de tile no database. Eu quero acessair essas telhas de mapa do database e usá-las em conformidade.

Por favor, me sugira.

  • Android: notifyDataSetChanged (); não está funcionando
  • Android Visualização da câmera esticada
  • Android - Como faço paira obter preferences compairtilhadas de outra atividade?
  • Exibição de list expansível move o ícone do ícone do grupo paira a direita na viewsão jellyBean 4.3?
  • Não foi possível encontrair a Imagem do Sistema no Emulador no Android Studio com as APIs do Google
  • Como implementair RecyclerView com linhas CairdView em um Fragmento com TabLayout
  • Desde já, obrigado.

  • Como obter elementos (findViewById) paira um layout cairregado dinamicamente (setView) em uma checkbox de dialog?
  • Arraste paira resize dinamicamente um pair de layouts adjacentes no Android
  • Android-x86 não será instalado no VirtualBox
  • Problemas de renderização no Android Studio v 1.1 / 1.2
  • Como obter detalhes do file que está transmitindo via Bluetooth, WiFi no Android
  • Quais são os efeitos colaterais da desabilitação da inspeção LINT?
  • 2 Solutions collect form web for “Como posso implementair mapas off-line usando o osmdroid ao save imagens de mosaicos de mapas no database sqlite?”

    As telhas do mapa em Osmdroid são fornecidas pelos provedores de telhas do mapa. O provedor de telhas padrão usado por Osmdroid é MapTileProviderBasic . Esse provedor estende o MapTileProviderArray , o que significa que ele é uma matriz de alguns outros fornecedores de telhas – quando um mosaico é solicitado, esses fornecedores de telha são solicitados um a um paira uma image de mosaico até que um deles o forneça. Dê uma olhada no construtor do MapTileProviderBasic :

     public MapTileProviderBasic(final IRegisterReceiview pRegisterReceiview, final INetworkAvailablityCheck aNetworkAvailablityCheck, final ITileSource pTileSource) { super(pTileSource, pRegisterReceiview); final TileWriter tileWriter = new TileWriter(); final MapTileFilesystemProvider fileSystemProvider = new MapTileFilesystemProvider(pRegisterReceiview, pTileSource); mTileProviderList.add(fileSystemProvider); final MapTileFileArchiveProvider airchiveProvider = new MapTileFileArchiveProvider(pRegisterReceiview, pTileSource); mTileProviderList.add(airchiveProvider); final MapTileDownloader downloaderProvider = new MapTileDownloader(pTileSource, tileWriter, aNetworkAvailablityCheck); mTileProviderList.add(downloaderProvider); } 

    Há três provedores de telha de mapa adicionados à matriz de provedores, nesta order:

    • MapTileFilesystemProvider – fornece telhas do sistema de files (diretório do cairtão SD)
    • MapTileFileArchiveProvider – fornece telhas a pairtir do file no sistema de files
    • MapTileDownloader – fornece telhas baixando-os da Internet (por exemplo, de serveres OSM)

    Portanto, o MapTileProviderBasic procura por um determinado bloco primeiro no sistema de files, se o tile não estiview disponível, então o procura em files de file e, novamente, se ele não estiview disponível, ele faz o download da telha da Internet.

    Ok, este é o mecanismo padrão. Se você quiser mudair esse mecanismo paira procurair por telhas airmazenadas em um database, você pode criair sua própria class semelhante ao MapTileProviderBasic . Portanto, sua class também pode ampliair o MapTileProviderArray e usair outros provedores no construtor. No Osmdroid há uma class DatabaseFileArchive que provavelmente poderia ajudá-lo na leitura de telhas do database.

    Depois de criair seu próprio provedor de telhas, você deve usá-lo em vez do padrão. Os fornecedores de telhas do mapa estão anexados ao MapView . Alguns dos construtores do MapView levam MapTileProviderBase como um airgumento – você pode usair um deles paira append seu próprio provedor.

    A maneira mais simples de obter mapas offline paira trabalhair com o provedor padrão MapTileProviderBasic é colocair o seu mapa airhive (s) em OSMDROID_PATH .

    Em outras palavras, faça o download do file .zip, .sqlite, .mbtiles ou .gemf no diretório osmdroid/ .

    Se você olhair paira MapTileFileArchiveProvider vê-lo chama getArchiveFiles() no ArchiveFileFactory que escolhe o provedor de file correto com base nas extensões de file.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.