Skip to main content

Benutzerdefiniertes Paket

Übersicht

In der OsmAnd-Anwendung können Sie viele Anpassungen erstellen und diese in eine .osf-Datei exportieren. Nach dem Hinzufügen einer Beschreibung, eines Bildes und eines Symbols werden diese Anpassungen zu einem vollständig unabhängigen Plugin. Dieses Plugin kann Folgendes enthalten:

  • Alle Profileinstellungen mit einem neuen Profil.
  • Spezifischer Satz von Schnellaktionen und Menü-Layouts für Schublade und Kontextmenü.
  • Benutzerdefinierte Offline-Karte innerhalb des Plugins oder zum Herunterladen vorgeschlagen.
  • Spezifische Online-Routing-Typen und Online-Karten.

Wie man es erstellt

Benutzerdefiniertes Paket

Die .osf-Datei ist eine umbenannte .zip-Datei, die .json-Dateien und Ordner enthält. Als Beispiel können Sie unsere vorbereiteten Dateien von Google Drive oder ein fertiges Plugin über diesen Link herunterladen.

Sie können .json-Dateien mit der items.json-Datei von OsmAnd ändern, die Befehle zum Importieren von .json-Dateien, .obf-Dateien, Symbolen und mehr enthält.

Möglicherweise müssen Sie Folgendes lesen:

items.json

OsmAnds items.json-Datei.
{
"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
}]
}
]
}

Importtypen

Es gibt viele Importtypen für die items.JSON-Datei von OsmAnd. Alle Typen finden Sie hier, und dieser Artikel beschreibt nur einige davon.

Plugin-Beschreibung

Zuerst erstellen Sie Ihr Plugin und fügen es zu items.JSON hinzu. Der erste Importtyp ist "PLUGIN".
HINWEIS. Sie müssen diese Zeile für jeden Typ erstellen und hinzufügen: "pluginId":"test.plugin", wobei test.plugin der Name Ihres Pakets ist.

Benutzerdefiniertes Paket

Plugin-Bilder

Um Ihre Plugin-Symbolbilder in OsmAnd zu importieren, erstellen Sie einen Ordner (in unserem Beispiel der Ordner "res"), in dem die Bilddateien gespeichert werden. Der Name dieses Typs ist "RESOURCES".

Benutzerdefiniertes Paket

Profile

Mit dem Typ "PROFILE" können Sie ein Navigationsprofil für Ihr Plugin hinzufügen. Alle Informationen zu Ihrem Navigationsprofil erhalten Sie in der exportierten JSON-Datei, in der Sie nachlesen können, welche items.JSON-Typen hinzugefügt wurden (“QUICK_ACTIONS”, “POI_UI_FILTERS”, “MAP_SOURCES” oder andere). HINWEIS: Beginnen Sie mit der Erstellung eines Navigationsprofils mit allen Parametern. Exportieren Sie dazu Navigationsprofile und kopieren Sie die erforderlichen Elemente aus der profiles.osf (items.JSON)-Datei der Navigation in die PLUGIN.osf (items.JSON)-Datei.

Benutzerdefiniertes Paket

Downloads

Mit dem Typ "DOWNLOADS" können Sie beliebige Dateien wie SQLite, OBF oder Schriftarten zum Herunterladen hinzufügen. Die Haupttypen herunterladbarer Dateien finden Sie hier.
HINWEIS. Das Tag "isHidden":"true" (standardmäßig ist es false) kann Ihre Kartendaten in Karten & Ressourcen von OsmAnd ausblenden. In "scope-id" können Sie alle notwendigen Informationen über die URL, den Namen, die Beschreibung Ihrer Datei und mehr hinzufügen.

Benutzerdefiniertes Paket

Vorgeschlagene Downloads

Im Typ "SUGGESTED_DOWNLOADS" können Sie die Karten herunterladen, die OsmAnd beim Importieren eines neuen Plugins anbietet.

Benutzerdefiniertes Paket

Dateien

Im Typ "FILE" können Sie Dateien aus Ihren Plugin-Ordnern zu OsmAnd-Ordnern hinzufügen, deren "subtype" hier zu finden ist. Im bereitgestellten Beispiel wurden die Dateien routing.xml und rendering.xml hinzugefügt. Wie Sie diese Dateien erstellen, können Sie unter den Links hier und hier nachlesen.

Benutzerdefiniertes Paket

Wenn die items.JSON-Datei und alle Dateien im Ordner fertig sind, können Sie sie in einem Dokument komprimieren. Danach sollte die .zip-Datei in .osf umbenannt werden, und dann ist Ihre PLUGIN.osf-Datei bereit, zur OsmAnd-Anwendung hinzugefügt zu werden.

Beispiele

Sie können sich einige der Plugins ansehen, die OsmAnd-Benutzer selbst erstellt haben: