Skip to main content

الحزمة المخصصة

نظرة عامة

في تطبيق OsmAnd، يمكنك إنشاء العديد من التخصيصات وتصديرها إلى ملف .osf. بعد إضافة وصف وصورة وأيقونة، تصبح هذه التخصيصات مكونًا إضافيًا مستقلاً تمامًا. قد يتضمن هذا المكون الإضافي ما يلي:

  • جميع إعدادات الملف الشخصي بملف شخصي جديد.
  • مجموعة محددة من الإجراءات السريعة وتخطيطات القائمة لـ الدرج و قائمة السياق.
  • خريطة مخصصة غير متصلة بالإنترنت داخل المكون الإضافي أو مقترحة للتنزيل.
  • أنواع توجيه محددة عبر الإنترنت وخرائط عبر الإنترنت.

كيفية الإنشاء

Custom package

ملف .osf هو ملف .zip معاد تسميته يحتوي على ملفات ومجلدات .json. على سبيل المثال، يمكنك تنزيل ملفاتنا المعدة من Google Drive أو مكون إضافي جاهز من هذا الرابط.

يمكنك تعديل ملفات .json باستخدام ملف items.json الخاص بـ OsmAnd، والذي يحتوي على أوامر لاستيراد ملفات .json وملفات .obf والأيقونات والمزيد.

قد تحتاج إلى قراءة:

items.json

ملف items.json الخاص بـ 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
}]
}
]
}

أنواع الاستيراد

هناك العديد من أنواع الاستيراد لملف items.JSON الخاص بـ OsmAnd. يمكن العثور على جميع الأنواع هنا، وتصف هذه المقالة عددًا قليلاً منها فقط.

وصف المكون الإضافي

للبدء، تقوم بإنشاء وإضافة المكون الإضافي الخاص بك إلى items.JSON. النوع الأول من الاستيراد هو "PLUGIN". ملاحظة. يجب عليك إنشاء وإضافة هذا السطر لكل نوع "pluginId":"test.plugin"، حيث test.plugin هو اسم الحزمة الخاصة بك.

Custom package

صور المكون الإضافي

لاستيراد صور أيقونة المكون الإضافي الخاص بك إلى OsmAnd، قم بإنشاء مجلد (في مثالنا هو مجلد "res ”) حيث سيتم تخزين ملفات الصور. اسم هذا النوع هو "RESOURCES".

Custom package

الملفات الشخصية

باستخدام نوع "PROFILE ” يمكنك إضافة ملف تعريف تنقل للمكون الإضافي الخاص بك. يمكنك الحصول على جميع المعلومات حول ملف تعريف التنقل الخاص بك في ملف JSON المصدر، حيث يمكن قراءة أنواع items.JSON التي تمت إضافتها (“QUICK_ACTIONS”, “POI_UI_FILTERS”, “MAP_SOURCES ” أو غيرها). ملاحظة: ابدأ بإنشاء ملف تعريف تنقل بجميع المعلمات، لهذا الغرض قم بتصدير ملفات تعريف التنقل، وانسخ العناصر الضرورية من ملف profiles.osf (items.JSON) الخاص بملفات تعريف التنقل إلى ملف PLUGIN.osf (items.JSON).

Custom package

التنزيلات

يمكنك إضافة أي ملفات مثل SQLite أو OBF أو الخطوط للتنزيل باستخدام نوع "DOWNLOADS". يمكن العثور على الأنواع الرئيسية للملفات القابلة للتنزيل هنا. ملاحظة. يمكن للعلامة "isHidden":"true" (افتراضيًا هي false) إخفاء بيانات الخريطة الخاصة بك من الخرائط والموارد في OsmAnd. في "scope-id" يمكنك إضافة جميع المعلومات الضرورية حول عنوان URL لملفك واسمه ووصفه والمزيد.

Custom package

التنزيلات المقترحة

في نوع "SUGGESTED_DOWNLOADS"، يمكنك تنزيل الخرائط التي يقدمها OsmAnd عند استيراد مكون إضافي جديد.

Custom package

الملفات

في نوع "FILE" يمكنك إضافة ملفات من مجلدات المكون الإضافي الخاص بك إلى مجلدات OsmAnd، ويمكن العثور على "النوع الفرعي" الخاص بها هنا. في المثال المقدم، تمت إضافة ملفي routing.xml و rendering.xml. يمكنك قراءة كيفية إنشاء هذه الملفات في الروابط هنا و هنا.

Custom package

عندما يكون ملف items.JSON وجميع الملفات في المجلد جاهزة، يمكنك ضغطها في مستند واحد. بعد ذلك، يجب إعادة تسمية ملف .zip إلى .osf، وبعد ذلك سيكون PLUGIN.osf الخاص بك جاهزًا للإضافة إلى تطبيق OsmAnd.

أمثلة

يمكنك إلقاء نظرة على بعض المكونات الإضافية التي أنشأها مستخدمو OsmAnd بأنفسهم:

آخر تحديث: يونيو 2024