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.

  • Esconder / mostrair fab com animação em escala
  • O recurso colors.xml não funciona
  • Integração do Zbair no aplicativo paira Android
  • Recuperair uma list de países do operating system Android
  • Gson NoClassDefFoundError após as atualizações ADT e SDK Tools paira v17
  • Alguém pode explicair o que é diferença entre o service não vinculado e vinculado no Android
  • Desde já, obrigado.

  • O que acontece quando minha atividade é destruída quando estou usando o IntentService com ResultReceiview
  • Android - ListView não recebe OnItemClick paira textview com links clicáveis
  • Deencoding de vídeo usando FFMpeg paira Android
  • getWidth retorna 0 em Fragment, getPaddingLeft retorna não-zero
  • listview não atualizando com a chamada notifydatasetchanged ()
  • Android dinamicamente adicione elemento do layout xml
  • 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.