Paquete personalizado
Descripción general
En la aplicación OsmAnd, puedes crear muchas personalizaciones y exportarlas a un archivo .osf
. Después de añadir una descripción, una imagen y un icono, estas personalizaciones se convierten en un plugin completamente independiente. Este plugin puede incluir:
- Todas las configuraciones de perfil con un nuevo perfil.
- Conjunto específico de acciones rápidas y diseños de menú para el Cajón y el Menú contextual.
- Mapa offline personalizado dentro del plugin o sugerido para descargar.
- Tipos de rutas online y mapas online específicos.
Cómo crear
El archivo .osf
es un archivo .zip
renombrado que contiene archivos y carpetas .json
. Como ejemplo, puedes descargar nuestros archivos preparados desde Google Drive o un plugin ya hecho desde este enlace.
Puedes modificar los archivos .json
usando el archivo items.json de OsmAnd, que contiene comandos para importar archivos .json
, archivos .obf
, iconos y más.
Puede que necesites leer:
- Sobre el formato
.json
. - Sobre los editores de texto, con los que puedes abrir y editar archivos en formato JSON.
- Sobre el editor Sublime Text, que se utiliza en OsmAnd como referencia.
- Puedes verificar tu código en JSON Editor Online.
items.json
Archivo items.json de OsmAnd.
{
"version":1,
"items":[
{
"type":"PLUGIN",
"pluginId":"test.plugin",
"version" : 1,
"icon": {
"" : "@plugin-id.png"
},
"image": {
"" :"@plugin-image.webp"
},
"name":{
"":"Test Plugin",
"ru":"Test Plugin: RU language"
},
"description":{
"":"This package is a test package and displays test information.",
"ru":"This package is a test package and displays test information. RU language."
}
},
{
"type":"RESOURCES",
"pluginId":"test.plugin",
"file":"res"
},
{
"type":"DOWNLOADS",
"pluginId":"test.plugin",
"items":[
{
"path":"test",
"name":{
"":"My offline maps",
"ru":"RU: My offline maps"
},
"icon":{
"":"ic_world_globe_dark"
},
"header-color":"#002E64",
"description":{
"text":{
"":"This package is a collection of online and offline map sources of various types.",
"ru":"RU: This package is a collection of online and offline map sources of various types."
},
"button":[
{
"":"Telegram chat OsmAnd",
"url":"https:\/\/t.me\/OsmAndMaps"
}
]
}
},
{
"scope-id":"offline-maps",
"path":"test/Waterway",
"header-color":"#002E64",
"name":{
"":"Waterway",
"ru":"RU: waterway"
},
"icon":{
"":"ic_world_globe_dark"
},
"items":[
{
"name":{
"":"Offline Waterway map SA",
"ru":"RU: Offline Waterway map SA"
},
"filename":"waterway.obf.zip",
"type":"map",
"isHidden":"true",
"timestamp":1582994500,
"containerSize":28195301,
"contentSize":28195301,
"description":{
"text":{
"":"Zoom min: 0<br />Zoom max: 19<br />Countries: SA",
"ru":"RU: Zoom min: 0<br />Zoom max: 19<br />Countries: SA"
},
"image":[
"https://drive.google.com/uc?id=16HjUHsSWNgeQI0bmuup9ohpyrg6rWkHH&export=download"
]
},
"downloadurl":"https://drive.google.com/uc?id=10iP2VZexHtHC0QLhACZ1QoEy-duNN5Wg&export=download",
"firstsubname":{
"":"Waterway",
"ru":"RU: Waterway"
},
"secondsubname":{
"":"",
"ru":""
}
}
]
}]
},
{
"type":"PROFILE",
"pluginId":"test.plugin",
"file":"bicycle_test.json",
"appMode":{
"iconColor":"RED",
"iconName":"ic_action_motorcycle_dark",
"locIcon":"BENTLEY",
"navIcon":"BENTLEY",
"order":32,
"parent":"bicycle",
"stringKey":"bicycle_test",
"userProfileName" : "Test Prof"
},
"prefs" : {
"drawer_logo": { "" : "@logo.png"},
"drawer_url" : { "" : "https://osmand.net"},
"drawer_items" : { "hidden" : ["dashboard"], "order" : ["map_markers", "my_places", "search"] },
"context_menu_items" : {},
"configure_map_items" : {},
"route_service":"OSMAND",
"renderer":"test-rendering.render.xml",
"routing_profile":"routing-test.xml/test-car"
}
},
{
"type":"FILE",
"pluginId":"test.plugin",
"subtype" : "rendering_style",
"file":"\/rendering\/test-rendering.render.xml"
},
{
"type":"FILE",
"pluginId":"test.plugin",
"subtype" : "routing_config",
"file":"\/routing\/routing-test.xml"
},
{
"type":"SUGGESTED_DOWNLOADS",
"pluginId":"test.plugin",
"comment-1" : "search-type are latlon (closest by latlon), worldregion (by boundaries if name matches worldRegion downloadName as we do for default types), by default natural order, limit finds first N elements",
"comment-2" : "predefined scope-id are @type of indexes.xml map, srtm_map, road_map, wikimap, wikivoyage, hillshade, slope, fonts, voice, depth ",
"comment-3" : "names filters ignore case by name.contains(filterName)",
"items": [{
"scope-id" : "test-downloads",
"limit" : 1,
"search-type" : "latlon"
}, {
"scope-id" : "road_map",
"names" : [
"Poland_lesser-poland_europe_2.obf.zip", "netherlands_noord-holland_europe"]
}, {
"scope-id" : "wikimap",
"search-type" : "worldregion"
}]
},
{
"type":"NAVIGATION_ICONS",
"pluginId":"test.plugin",
"items" : [{
"locationIcon": {
"" : "@bentley-car.png"
},
"locationIconId": "BENTLEY",
"navigationIcon": {
"" : "@bentley-car-moving.png"
},
"navigationIconId": "BENTLEY"
}]
},
{
"type":"QUICK_ACTIONS",
"pluginId":"test.plugin",
"items": [{
"name": "Test quick action",
"actionType": "osmbug.add",
"params": "{\"dialog\":\"false\",\"message\":\"Message\"}"
}]
},
{
"type":"POI_UI_FILTERS",
"pluginId":"test.plugin",
"items": [{
"name": "Test Search",
"filterId": "test_search",
"acceptedTypes": "{\"sustenance\":[\"bar\",\"alpine_hut\"]}"
}]
},
{
"type":"MAP_SOURCES",
"pluginId":"test.plugin",
"items": [{
"sql": false,
"name": "OsmAnd (test)",
"minZoom": 1,
"maxZoom": 19,
"url": "https:\/\/tile.osmand.net\/hd\/{0}\/{1}\/{2}.png",
"ellipsoid": false,
"inverted_y": false,
"timesupported": false,
"expire": -1,
"inversiveZoom": false,
"ext": ".png",
"tileSize": 512,
"bitDensity": 8,
"avgSize": 18000
}]
}
]
}
Tipos de importación
Existen muchos tipos de importación para el archivo items.JSON de OsmAnd. Todos los tipos se pueden encontrar aquí, y este artículo describe solo algunos de ellos.
Descripción del plugin
Para empezar, crea y añade tu plugin a items.JSON. El primer tipo de importación es "PLUGIN". NOTA. Debes crear y añadir esta línea para cada tipo "pluginId":"test.plugin", donde test.plugin es el nombre de tu paquete.
Imágenes del plugin
Para importar las imágenes del icono de tu plugin a OsmAnd, crea una carpeta (en nuestro ejemplo es la carpeta "res") donde se almacenarán los archivos de imagen. El nombre de este tipo es "RESOURCES".
Perfiles
Usando el tipo "PROFILE" puedes añadir un perfil de navegación para tu plugin. Puedes obtener toda la información sobre tu perfil de navegación en el archivo JSON exportado, donde es posible leer qué tipos de items.JSON se añadieron ("QUICK_ACTIONS", "POI_UI_FILTERS", "MAP_SOURCES" u otros). NOTA: Empieza a crear un perfil de navegación con todos los parámetros, para ello exporta los perfiles de navegación y copia los elementos necesarios del archivo profiles.osf (items.JSON) de navegación al archivo PLUGIN.osf (items.JSON).
Descargas
Puedes añadir cualquier archivo como SQLite, OBF o fuentes para descargar usando el tipo "DOWNLOADS". Los principales tipos de archivos descargables se pueden encontrar aquí. NOTA. La etiqueta "isHidden":"true" (por defecto es false) puede ocultar los datos de tu mapa de Mapas y Recursos de OsmAnd. En "scope-id" puedes añadir toda la información necesaria sobre la URL, el nombre, la descripción de tu archivo y más.
Descargas sugeridas
En el tipo "SUGGESTED_DOWNLOADS", puedes descargar los mapas que OsmAnd ofrece al importar un nuevo plugin.
Archivos
En el tipo "FILE" puedes añadir archivos de las carpetas de tu plugin a las carpetas de OsmAnd, cuyo "subtipo" se puede encontrar aquí. En el ejemplo proporcionado, se han añadido los archivos routing.xml y rendering.xml. Puedes leer cómo crear estos archivos en los enlaces aquí y aquí.
Cuando el archivo items.JSON y todos los archivos de la carpeta estén listos, puedes comprimirlos en un solo documento. Después de eso, el archivo .zip debe renombrarse a .osf, y entonces tu PLUGIN.osf estará listo para ser añadido a la aplicación OsmAnd.
Ejemplos
Puedes echar un vistazo a algunos de los plugins que los usuarios de OsmAnd han creado por su cuenta:
- Plugin personalizado USA Maps (datos PAD-US, senderos y carreteras USFS, recreación USFS).
- Plugin personalizado Anygis maps.
- Plugin personalizado Map Legend.
- UMP-PL Polonia plugin personalizado de mapa.
- Plugin personalizado OsmAnd Rendering plugin.
- Plugin personalizado Outdoor Explorer.
Artículos relacionados
Última actualización: junio de 2024