إنشاء خرائط نقطية ومتجهية دون اتصال بالإنترنت
OsmAndMapCreator
يمكن استخدام OsmAndMapCreator لإنشاء أي خرائط يدعمها OsmAnd بنفسك. يمكنك تنزيل أحدث إصدار من الموقع الإلكتروني. يتمتع OsmAndMapCreator بقدرات واجهة المستخدم لإنشاء خرائط نقطية ومتجهية. لإنشاء خريطة متجهية، ستحتاج إلى ملف OSM (*.pbf, *.osm.gz, *.osm.bz2
)، ولإنشاء ملف خريطة sqlite عبر الإنترنت، ستحتاج إلى عنوان URL للبلاط الأساسي
.
الخرائط النقطية (بسيطة)
بمجرد تحديد البلاط الذي تريد إنشاء خريطة منه في قائمة مصدر البلاط وتم تحميله بنجاح إلى OsmAndMapCreator، يمكنك النقر بزر الماوس الأيمن على المنطقة التي تريد تحميلها مسبقًا. بعد ذلك، يمكنك إنشاء ملف .sqlitedb
في مصدر البلاط ← إنشاء قاعدة بيانات sqlite.
لإنشاء خريطة متجهية، ستحتاج إلى ملف OSM (*.pbf, *.osm.gz, *.osm.bz2)، ولإنشاء خريطة sqlite عبر الإنترنت، ستحتاج إلى عنوان URL للبلاط الأساسي.


الخرائط المتجهية (بسيطة)
خطوات إنشاء خريطة متجهية عبر واجهة مس تخدم OsmAndMapCreator:
- ملف OSM
- قم بتنزيله من Geofabrik أو تصدير صغير من OpenStreetMap
- تحويل Shapefile إلى OSM
- قم بإنشاء OSM XML بنفسك باستخدام أي أدوات برمجية، يمكنك المتابعة بتحويله إلى تنسيق OBF الذي يمكن لـ OsmAnd فهمه
- حدد مربعات الاختيار سواء كنت تريد إنتاج خرائط تتضمن معلومات العنوان / التوجيه / النقل / بيانات الخريطة
- حدد في ملف ← إنشاء .obf من ملف.
- بمجرد اكتمال العملية، سيكون لديك ملف
.obf
في دليل العمل.

يمكن تحديد المزيد من المعلمات حول كيفية إنشاء الخرائط المتجهية في shell utilities.sh
.
الخرائط المتجهية (برنامج نصي shell)
الطريقة الأكثر شيوعًا والأكثر قوة لإنشاء الخرائط التي يستخدمها المطورون هي عبر برنامج shell النصي utilities.sh
المضمن في OsmAndMapCreator. كما يحتوي على العديد من طرق الأدوات المساعدة الأخرى لإنشاء بعض الخرائط المخصصة مثل الخريطة الأساسية أو الخريطة بأسماء المناطق وحدودها (regions.ocbf).
مثال على البرنامج النصي:
wget -N http://download.osmand.net/latest-night-build/OsmAndMapCreator-main.zip
wget https://creator.osmand.net/osm-extract/albania_europe/albania_europe.pbf
unzip OsmAndMapCreator-main.zip -d OsmAndMapCreator
OsmAndMapCreator/utilities.sh generate-poi albania_europe.pbf --chars-build-poi-nameindex=3
يستغرق برنامج الإنشاء النصي ملف OSM واحدًا فقط للمعالجة في كل مرة (.pbf, .osm.gz, osm.bz2, .osm) والعديد من المعلمات الاختيارية المحددة كـ --xxxxxx
.
الأمر الرئيسي | الوصف |
---|---|
generate-obf | ينشئ ملف obf كاملًا بمعلومات الخريطة والعنوان ونقاط الاهتمام والنقل والتوجيه |
generate-obf-no-address | ينشئ ملف obf كاملًا ولكن بدون معلومات العنوان |
generate-address | ينشئ خريطة بمعلومات العنوان فقط |
generate-poi | ينشئ خريطة بمعلومات نقاط الاهتمام فقط |
generate-map | ينشئ خريطة بمعلومات عرض الخريطة فقط |
generate-roads | ينشئ خريطة بمعلومات التوجيه فقط |
يمكن العثور على جميع المعلمات الإضافية في الكود في حال عدم توثيقها بشكل صحيح الأدوات الرئيسية. جميع المعلمات اختيارية!
المعلمات | الوصف |
---|---|
--add-region-tags | يبطئ عملية إنشاء الخريطة عن طريق إضافة علامة اسم المنطقة إلى كل طريق حيث تمت معالجته. هذا مطلوب فقط للخريطة الأساسية العالمية أو عند معالجة مناطق متعددة الجنسيات، في جميع الحالات الأخرى من الأسهل أن يكون لديك اسم مناسب لملفك، أي germany_...، us_.... إذا لم يكن لديك هذه المعلمة ولم تحدد هذه المعلمة، فمن المحتمل أن ترى شارات طرق / نقل عام غير مترجمة في OsmAnd. |
--keep-only-sea-objects | يزيل الكائنات التي ليست جزءًا من المحيط / البحر، ويستخدم لإنتاج خريطة بحرية |
--ram-process | يحدد أن الإنشاء سيستخدم قاعدة بيانات RAM SQlite بدلاً من القرص - مزيد من المعلومات. |
--srtm=<FOLDER> | يحدد المجلد الذي يحتوي على صور TIF-DEM، بحيث يتم ترميز معلومات الارتفاع والانحدار في الطرق |
--rendering-types=<FILE> | موقع rendering_types.xml مع القواعد وعلامات OSM التي تحتاج إلى ترميزها في OBF - مزيد من المعلومات. |
--poi-types=<FILE> | موقع poi_types.xml مع القواعد وعلامات OSM التي تحتاج إلى ترميزها في OBF لنقاط الاهتمام - مزيد من المعلومات. |
--extra-relations=<FILE> | ملف OSM يحتوي على مضلعات مثل مناطق الانبعاثات المنخفضة التي يجب نشر علاماتها على الطرق. |
ملاحظة: إنشاء الخرائط باستخدام batch.xml قديم، يرجى استخدام طرق shell المذكورة أعلاه والجمع مع التنزيلات / دورات for باستخدام قدرات برنامج shell النصي القياسي.
ذاكرة الوصول العشوائي لمعالجة الخرائط
يتطلب إنشاء الخرائط الكثير من الذاكرة وكثافة في الإدخال/الإخراج. بعبارة أخرى: يستغرق وقتًا طويلاً جدًا وقد ينفد من الذاكرة! يرجى التحقق من الإنشاء على الخرائط الصغيرة أولاً. لإعطاء المزيد من الذاكرة لـ JVM، يمكنك الإعلان عن متغير البيئة JAVA_OPTS.
export JAVA_OPTS="-Xms256M -Xmx6400M"
OsmAndMapCreator/utilities.sh generate-obf ....
ما الذي يمكنك فعله لتحسين الأداء:
- استخدم أقراص SSD.
- استخدم أقراص متعددة.
- استخدم المعالجة "في الذاكرة".
إذا كنت ترغب في تجنب استخدام مساحة القرص واستخدام ذاكرة الوصول العشوائي فقط لتسريع العملية - حدد معلمة
--ram-process
. ستسرع هذه المعالجة "في الذاكرة" من إنشاء الخريطة بنسبة 10-50%، ولكنها تتطلب الكثير من الذاكرة. تعتمد نسبة 10% إلى 50% على حجم الخريطة. تستفيد الخرائط الأصغر حجمًا بشكل أقل من المعالجة في الذاكرة مقارنة بالخرائط الأكبر حجمًا، حيث يلعب الوصول إلى القرص للقراءة الأولية وكتابة الخريطة النهائية دورًا أكبر، بينما تتطلب الخرائط الأكبر حجمًا "حسابات" أكثر.
في المعالجة العا دية "على القرص"، يتم إنشاء ملف nodes.tmp.odb من ملف .osm أو .osm.pbf. ملف nodes.tmp.odb هذا هو ملف قاعدة بيانات sqlite وهو أكبر بحوالي 15 إلى 25 مرة من ملف .osm.pbf الأصلي الذي قمت بتنزيله من geofabrik.de. لذا إذا كان ملف .osm.pbf الأصلي الخاص بك 300 ميجابايت، فسيكون ملف nodes.tmp.odb الخاص بك من 5 جيجابايت إلى 6 جيجابايت! لاحظ أن الخرائط الأصغر ستكون حوالي 15 ضعفًا بينما ستنتهي الخرائط الكبيرة (>350 ميجابايت) بزيادة مساحة تتراوح من 20 ضعفًا إلى 25 ضعفًا.
مع المعالجة "في الذاكرة"، سيتم إنشاء ملف nodes.tmp.odb هذا في ذاكرة العمل الخاصة بك. ستحتاج إلى "حجم nodes.tmp.odb" + 20-25%. يرجى ملاحظة أنك لا تحتاج إلى زيادة معلمة -Xmx
لأن SQLite في الذاكرة لن يشغل ذاكرة JVM وسيستخدم ذاكرة التشغيل الأصلية فقط.
مثال: لملف .osm.pbf بحجم 250 ميجابايت، سيتم إنشاء ملف nodes.tmp.odb بحجم ~4.5 جيجابايت.
خريطة متجهية مخصصة (علامات)
يعتمد عرض OsmAnd والبحث عن نقاط الاهتمام على المعلومات المكتوبة في OBF. لها بنية مختلفة عن تنسيقات OSM الأخرى ومُحسّنة للاستخدام على الأجهزة المحمولة. يمكنك فحص المحتويات باستخدام مفتش ثنائي. أهم 3 أجزاء من ملف OBF هي:
- قسم الخريطة المستخدم لعرض الخريطة والمحدد بواسطة أنواع العرض
- قسم نقاط الاهتمام المستخدم للبحث عن نقاط الاهتمام ومعلومات الكائن والمحدد بواسطة أنواع نقاط الاهتمام
- قسم التوجيه المستخدم للتوجيه والمحدد بواسطة أنواع التوجيه - نفس الملف مثل أنواع العرض ولكن له قسم خاص به
<category name="routing"> - routing_type
.
يمكن تجاوز rendering_types.xml
و poi_types.xml
أثناء عملية إنشاء الخريطة في إعدادات واجهة مستخدم OsmAndMapCreator أو كمعلمات سطر الأوامر --rendering-types=<path>
، --poi-types==<path>
إلى utilities.sh generate-obf
(المضمنة مع OsmAndMapCreator).
- يتم تسجيل نوع كائن الخريطة الرئيسي (
<type tag="abandoned:highway" value="track" minzoom="13"/>
) لكل كيان OSM (عقدة أو طريق أو مضلع متعدد). يمكن أن يكون هناك العديد من الأنواع الرئيسية المسجلة لكل كيان واحد (مثل الطريق + الترام + مسار الحافلة)، وستقوم علامةorder
بفرز الأنواع داخل الكيان. - نوع كائن الخريطة الإضافي (
<type tag="service" value="driveway" minzoom="13" additional="true"/>
) هو معلومات إضافية مرفقة لكيان OSM، لذلك في حالة عدم تسجيل كيان OSM بنوع رئيسي، فلن يتم تخزينه داخل OBF. عادةً ما يخزن معلومات لعرض ميزات إضافية مثل اللون والنعومة. - نوع كائن خريطة النص (
<type tag="int_ref" additional="text" minzoom="1" order="32"/>
)، يخزن معلومات نصية حول الكائن بحيث يمكن عرضها لاحقًا على الخريطة. - تمثل
entity_convert
نصوص تحويل علامات بسيطة (<entity_convert pattern="tag_transform" from_tag="bridge" if_tag1="highway" if_value1="proposed" routing="no"/>
). غالبًا ما تستخدم لدمج العلامات في أنواع محددة، بحيث يكون من الأسهل عرضها بنمط عرض مخصص. كما يسمح بإجراء تحويل علامات خاص بالمنطقة ويسمح بعرض ميزات مختلفة لكل بلد. - نشر علامة العلاقة. لا يقوم OsmAnd بفهرسة كائنات العلاقة (باستثناء المضلعات المتعددة - المخزنة ككائنات منطقة) ولكنه يسمح بنشر العلامات من العلاقة إلى الأعضاء. من الواضح أن عضوًا واحدًا يمكن أن يكون له علاقات أصل متعددة وقد تحدث تعارضات في العلامات. يدعم OsmAnd 3 طرق للتعامل مع التعارضات:
- دمج جميع العلامات كسطر طويل مفصول بفاصلات (جيد لعرض أسماء مسارات الحافلات كسلسلة طويلة على الطريق -
nameTags
،namePrefix
). - فرز القيم والاحتفاظ بأعلى قيمة (جيد لعرض المسارات المحلية مقابل الدولية -
relationGroupSort
،additionalTags
،additionalNamePrefix
). - ينشئ علامات فريدة لكل علاقة (غير مستخدمة حاليًا ولكنها تخزن المعلومات دون فقدان -
relationGroupNameTags
،relationGroupAdditionalTags
،relationGroupPrefix
). مزيد من المعلومات يمكنك العثور عليها في أنواع العرض.
- دمج جميع العلامات كسطر طويل مفصول بفاصلات (جيد لعرض أسماء مسارات الحافلات كسلسلة طويلة على الطريق -
اقرأ المزيد: عادةً ما يتم دمج الخرائط المتجهية المخصصة مع نمط عرض مخصص.
الخرائط النقطية (متقدمة)
OSM هي قاعدة بيانات كبيرة للخرائط، ولكنها لا تحتوي دائمًا على المعلومات التي تحتاجها (على سبيل المثال، حول الصحاري). أحيانًا يمكنك الحصول على المعلومات التي تحتاجها من مصادر أخرى، مثل الخرائط الورقية أو صور الأقمار الصناعية.
هناك برامج خاصة لإعداد وتحويل ومعايرة أي خرائط مصدر (خرائط بتنسيق صور، تنسيق pdf، خرائط نقطية عبر الإنترنت) إلى خرائط OsmAnd عبر الإنترنت.
حول بعضها أدناه.
موباك
Mobile Atlas Creator (MOBAC) هو برنامج مفتوح المصدر (GPL) لإنشاء أطالس غير متصلة بالإنترنت. يمكن لـ Mobile Atlas Creator استخدام عدد كبير من الخرائط المختلفة عبر الإنترنت، مثل OpenStreetMap ومقدمي الخرائط الآخرين، كمصدر لإنشاء أطلس غير متصل بالإنترنت.
ما عليك سوى تنزيل البرنامج، ثم تشغيله.
في مربع حوار اختيار التنسيق، اختر OsmAnd SQLite أو OsmAnd tile storage. SQLite هو ملف واحد يحتوي على المنطقة المحددة بينما البلاط هو قطع منفصلة من الخريطة مجمعة على جهازك. غالبًا ما يكون SQLite أكثر ملاءمة لأنه يتم تخزينه في مكان واحد ويشغل مساحة تخزين أقل.
اختر مصدر الخريطة ومستويات التكبير/التصغير والميزات الأخرى. حدد منطقة، ثم اختر القائمة تحديد -> إضافة تحديد.
بعد ذلك، يمكنك إنشاء ملف SQLite الخاص بك: "أطلس" -> "إنشاء أطلس".
MAPC2MAPC
MAPC2MAPC هو برنامج يعمل بنظام Windows لمعالجة الخرائط الرقمية وتحويلها بين المنصات والبرامج المختلفة.
على سبيل المثال، يمكنك تحويل ومعايرة أي تنسيق صورة وخرائط PDF إلى خريطة OsmAnd عبر الإنترنت.
فيديو تعليمي لاستخدام البرنامج.
SASPlanet
SASPlanet هو برنامج مجاني ومفتوح المصدر للملاحة مع القدرة على عرض وتنزيل الخرائط وصور الأقمار الصناعية للأرض من خدمات متنوعة عبر الإنترنت إلى خريطة OsmAnd عبر الإنترنت.
تنزيل البرنامج، دليل باللغة الإنجليزية.