Descarga de mapas específicos para caché en OSMDroid
Actualmente estoy trabajando en un proyecto escolar y estoy tratando de aprender las técnicas de descarga de mosaicos de mapa OSM en la memoria / caché local del teléfono, para que los usuarios puedan ver los mapas cuando están fuera de línea.
Esto se realizará asignando una ubicación específica y los mosaicos del mapa que están dentro de un radio / distancia específico de la ubicación se descargarán en la memoria del teléfono (cuando hay conexión en línea) para la visualización sin conexión.
- Cómo utilizar OSM mapa en una aplicación de Android. ¿Hay algún tutorial para aprender sobre el uso de OSM en android.
- Agregar Overlay a un MapView en osmdroid
- Osmdroid, API de Google Maps v2 y fragmentos
- OSMDroid PathOverlay
- ¿Tiene OpenStreetMap punto (fuente) a punto (destino) dirección uri para utilizar en Android?
Sin embargo, estoy teniendo un pequeño problema en la comprensión de las API de OSMDroid. Desde mi entendimiento, parece que las clases involucradas son:
- MapTileBase
- MapDownloader
- IFilesystemCache
Por favor corrija si estoy equivocado.
Además, en MapTileBase (que creo que es el proveedor), el getMapTile devuelve android.graphics.drawable.Drawable .
¿Es esta clase Drawable incluso relacionada con el concepto de visualización de mapas fuera de línea?
Espero que alguien pueda iluminarme sobre dónde se están llamando exactamente los mapas para descargarlos en la memoria del teléfono, y cómo podemos editar los mapas para mostrar los elementos de la interfaz, como rutas, clavijas, etc.
- ¿Cómo se puede descargar el mapa en osmdroid?
- Cómo girar un marcador en OSMDroid para Android?
- MyLocationOverlay está obsoleto, ¿alguna alternativa?
- Limitar el desplazamiento en mapas sin conexión, en Android
- ParseException para org.osmdroid.DefaultResourceProxyTest
- ¿Existe una alternativa a OSMDROID?
- ¿Cómo caché / descargar google map v2 tile programmatically?
- Encontrar la posición actual en OSMdroid
No tengo una respuesta exacta como usted está buscando un método de caché fuera de línea fuera de un área que el MapView no ha navegado hasta. El soporte de almacenamiento en caché está ahí, pero no exactamente cómo desea hacerlo.
Vas a necesitar capacidades de descarga en línea si planeas almacenar en caché y no solo suministrar tus propias fichas de mapas sin conexión. Me gustaría echar un vistazo a la MapTileDownloader y tal vez tratar de implementar su propia versión de la misma. El método MapTileDownloader.TileLoader.loadTile () toma un MapTileRequestState que creo que las llamadas MapTileProviderArray cuando se necesita un mosaico de mapa.
Si puede replicar la funcionalidad de TileLoader de MapTileDownloader existente, probablemente puede inyectar su propio MapTileRequestState relativo o MapTile hacia arriba a uno solicitado. Por ejemplo, tomar el TileLoader llamado MapTileRequestState, inspeccionarlo, averiguar cómo construir nuevos MapTileRequestState / MapTile que representan los azulejos fuera de la vista actual. No será fácil, ya que tendrás que lidiar con los diferentes niveles de zoom, y dependiendo del nivel de zoom, el radio debe ser más pequeño, etc … Un nivel de zoom menor de 18 tendría un radio de mosaico mayor que Un 10 más alto.
Personalmente, recientemente estuve trabajando en intentar trabajar 100% sin conexión, así que no tengo ningún código de ejemplo para ayudar. Buena suerte, aunque ha sido un par de meses.
En primer lugar, vaya a la derecha de la fuente https://github.com/osmdroid/osmdroid
Hay algunos artículos de wiki que ayudarán, especialmente el artículo de mosaicos de mapas sin conexión. En resumen, utilice MOBAC o la herramienta que proporciona osmdroid. OSMBonuspack también tiene una herramienta para realizar la misma tarea en el dispositivo.
Los mosaicos de mapa se descargan realmente utilizando esta clase https://github.com/osmdroid/osmdroid/blob/master/osmdroid-android/src/main/java/org/osmdroid/tileprovider/modules/MapTileDownloader.java
- Desplazamiento de títulos como en Google Play
- La configuración LOAD_NO_CACHE de WebView aún guarda archivos en el disco?