Aller au contenu principal

Package personnalisé

Vue d'ensemble

Dans l'application OsmAnd, vous pouvez créer de nombreuses personnalisations et les exporter dans un fichier .osf. Après avoir ajouté une description, une image et une icône, ces personnalisations deviennent un plugin complètement indépendant. Ce plugin peut inclure :

  • Tous les Paramètres de profil avec un nouveau profil.
  • Un ensemble spécifique d'actions rapides et de dispositions de menu pour le Tiroir et le Menu contextuel.
  • Une carte hors ligne personnalisée à l'intérieur du plugin ou suggérée au téléchargement.
  • Des types de routage en ligne et des cartes en ligne spécifiques.

Comment créer

Package personnalisé

Le fichier .osf est un fichier .zip renommé contenant des fichiers et des dossiers .json. À titre d'exemple, vous pouvez télécharger nos fichiers préparés depuis Google Drive ou un plugin prêt à l'emploi depuis ce lien.

Vous pouvez modifier les fichiers .json à l'aide du fichier items.json d'OsmAnd, qui contient des commandes pour importer des fichiers .json, des fichiers .obf, des icônes, et plus encore.

Vous pourriez avoir besoin de lire :

items.json

Fichier items.json d'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
}]
}
]
}

Types d'importation

Il existe de nombreux types d'importation pour le fichier items.JSON d'OsmAnd. Tous les types peuvent être trouvés ici, et cet article n'en décrit que quelques-uns.

Description du plugin

Pour commencer, vous créez et ajoutez votre plugin à items.JSON. Le premier type d'importation est "PLUGIN". NOTE. Vous devez créer et ajouter cette ligne pour chaque type "pluginId":"test.plugin", où test.plugin est le nom de votre package.

Package personnalisé

Images du plugin

Pour importer les images de l'icône de votre plugin dans OsmAnd, créez un dossier (dans notre exemple, c'est le dossier "res") où les fichiers image seront stockés. Le nom de ce type est "RESOURCES".

Package personnalisé

Profils

En utilisant le type "PROFILE", vous pouvez ajouter un profil de navigation pour votre plugin. Vous pouvez obtenir toutes les informations sur votre profil de navigation dans le fichier JSON exporté, où il est possible de lire quels types items.JSON ont été ajoutés ("QUICK_ACTIONS", "POI_UI_FILTERS", "MAP_SOURCES" ou autres). NOTE : Commencez par créer un profil de navigation avec tous les paramètres, pour cela exportez les profils de navigation, et copiez les éléments nécessaires du fichier profiles.osf (items.JSON) de navigation vers le fichier PLUGIN.osf (items.JSON).

Package personnalisé

Téléchargements

Vous pouvez ajouter n'importe quel fichier tel que SQLite, OBF ou des polices à télécharger en utilisant le type "DOWNLOADS". Les principaux types de fichiers téléchargeables peuvent être trouvés ici. NOTE. La balise "isHidden":"true" (par défaut, elle est false) peut masquer les données de votre carte dans les Cartes et ressources d'OsmAnd. Dans "scope-id", vous pouvez ajouter toutes les informations nécessaires sur l'URL, le nom, la description de votre fichier, et plus encore.

Package personnalisé

Téléchargements suggérés

Dans le type "SUGGESTED_DOWNLOADS", vous pouvez télécharger les cartes qu'OsmAnd propose lors de l'importation d'un nouveau plugin.

Package personnalisé

Fichiers

Dans le type "FILE", vous pouvez ajouter des fichiers de vos dossiers de plugin aux dossiers OsmAnd, dont le "subtype" peut être trouvé ici. Dans l'exemple fourni, les fichiers routing.xml et rendering.xml ont été ajoutés. Vous pouvez lire comment créer ces fichiers aux liens ici et ici.

Package personnalisé

Lorsque le fichier items.JSON et tous les fichiers du dossier sont prêts, vous pouvez les compresser en un seul document. Après cela, le fichier .zip doit être renommé en .osf, et votre PLUGIN.osf sera alors prêt à être ajouté à l'application OsmAnd.

Exemples

Vous pouvez jeter un coup d'œil à certains des plugins que les utilisateurs d'OsmAnd ont créés eux-mêmes :

Cet article a été mis à jour pour la dernière fois en juin 2024