Skip to main content

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

Paquete personalizado

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:

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.

Paquete personalizado

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".

Paquete personalizado

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).

Paquete personalizado

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.

Paquete personalizado

Descargas sugeridas

En el tipo "SUGGESTED_DOWNLOADS", puedes descargar los mapas que OsmAnd ofrece al importar un nuevo plugin.

Paquete personalizado

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í.

Paquete personalizado

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:

Última actualización: junio de 2024