Paquet personnalisé
Aperçu
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 entièrement 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
Le fichier .osf
est un fichier .zip
renommé contenant des fichiers .json
et des dossiers. À 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
en utilisant le 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 :
- À propos du format
.json
. - À propos des éditeurs de texte, avec lesquels vous pouvez ouvrir et éditer des fichiers au format JSON.
- À propos de l'éditeur Sublime Text, qui est utilisé dans OsmAnd comme référence.
- Vous pouvez vérifier votre code dans JSON Editor Online.
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 paquet.
Images du plugin
Pour importer les images d'icônes 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".
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 d' 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 ce faire, exportez les profils de navigation et copiez les él éments nécessaires du fichier profiles.osf (items.JSON) vers le fichier PLUGIN.osf (items.JSON).
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 vos données de carte dans 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.
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.
Fichiers
Dans le type "FILE", vous pouvez ajouter des fichiers de vos dossiers de plugin aux dossiers d'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 en suivant les liens ici et ici.
Lorsque le fichier items.JSON et tous les fichiers du dossier sont prêts, vous pouvez les compresser dans un seul document. Après cela, le fichier .zip doit être renommé en .osf*, et alors votre PLUGIN.osf sera prêt à être ajouté à l'application OsmAnd.
Exemples
Vous pouvez jeter un œil à certains des plugins que les utilisateurs d'OsmAnd ont créés eux-mêmes :
- Le plugin personnalisé The USA Maps (données PAD-US, sentiers et routes USFS, loisirs USFS).
- Le plugin personnalisé Anygis maps.
- Le plugin personnalisé Map Legend.
- La carte UMP-PL de Pologne, plugin personnalisé.
- Le plugin personnalisé OsmAnd Rendering plugin.
- Le plugin personnalisé Outdoor Explorer.