Skip to content

v0.9.4-beta

Pre-release
Pre-release

Choose a tag to compare

@SalehGNUTUX SalehGNUTUX released this 17 Aug 11:02
· 4 commits to main since this release

أُصلح: التنبيه الصوتيّ الذي «أحيانًا يعمل وأحيانًا لا»

عطلان مستقلّان اجتمعا، وكلاهما يُنتج الشكوى نفسها:

  • نغمةٌ ميّتة تُترك ميّتة. ToneGenerator كان يُنشأ مرّةً ويُخزَّن بعمر
    العمليّة، وstartTone تُعيد Boolean كنّا نُهمله. فحين يموت مسارُ الصوت — عند
    وصل سمّاعة بلوتوث أو فصلها، أو حين يخطف تطبيقٌ آخر المسار، أو حين يستردّ النظام
    المسارات — تصير كلّ صفيرةٍ بعدها لا شيء إلى الأبد، بلا خطأٍ ولا أثر. وهذا
    بعينه «عمل مرّةً ثمّ لم يعد». صار المشغّل يقرأ نتيجة التشغيل، ويُعيد بناء نفسه
    ويحاول مرّةً واحدة عند الفشل.

  • بوّابة الدقّة كانت تُعمي التنبيه. كانت العيّنة تُرفض كلّها حين تسوء دقّة
    التموضع، فيقع أمران معًا تحت الأشجار وبين الأبراج: العدّاد يتجمّد على آخر رقمٍ
    مقبول فيرى السائق «‎62‎» ثابتةً فوق حدّ ‎60‎، والتنبيه يُحرَم العيّنات فلا يصفّر —
    الشاشة تشهد بالتجاوز والصوت صامت. بل إنّ جهازًا لا يبلّغ دقّةً أصلًا كان يُرفض
    على الدوام، فلا تنبيه فيه البتّة.

    والفصل الآن صريح: دقّة التموضع تحمي المسار لا السرعة. السرعة تأتي من إزاحة
    دوبلر في الإشارة لا من فرق موضعين، فدقّتها مستقلّة. العيّنة المرفوضة لا تُكتب في
    ملفّ المسار بحال — فمسافة الرحلة وأقصى سرعتها كما كانتا — لكنّها إن جاءت سرعتها
    من الشريحة حُسبت في العدّاد وفي الطبقة المحروقة وفي التنبيه.

  • ومزلقٌ ثالث في حارس التذبذب. العودة تحت الحدّ لم تكن تُعتدّ إلّا بنزول
    كيلومترين تحته بالكسور، فسائقٌ هبط إلى ‎48.7‎ — وعدّاده يقول ‎48‎، أي «عدتُ»
    بعينه — ثمّ عاد فوق ‎50‎ لم يسمع صفيرة عبورٍ ثانية. صار الحكم كلّه على الرقم
    الذي يراه السائق
    لا على الكسر العائم تحته، عبورًا وعودةً معًا.

أُضيف

  • خمس نغمات للتنبيه (صفيرة · نبضتان · جرس · رنّة رقميّة · نبضة خفيفة)
    وشدّةٌ تُضبط من ‎20‎ إلى ‎100‎، مع زرّ «استمع» يشغّل النغمة من مسار التنبيه
    الحقيقيّ
    لا من مسارٍ ثانٍ — فمعاينةٌ تعمل بينما التنبيه معطّل أسوأ من لا شيء.
    والملفّات الخمسة مجتمعةً دون ‎25‎ كيلوبايت. والشدّة نسبةٌ من مجرى «المنبّه» في
    النظام لا مستوًى مطلقًا؛ ولذلك يظهر تحذيرٌ صريح حين يكون مجرى المنبّه صفرًا، إذ
    لا يُسمع شيءٌ عندئذٍ مهما ضُبط هنا.

  • ستّة تصاميم للعدّاد — كلاسيكيّ · مؤشّر تناظريّ · مقتضب · شرات مضيئة · حلقتان
    · شريط — تُختار من الإعدادات بمنتقٍ يُري التصميم لا اسمه، وتسري على شاشة
    العدّاد وطبقة الكاميرا والنافذة المصغّرة. و«كلاسيكيّ» هو الافتراضيّ وهو تصميم ما
    قبل هذا الإصدار بحذافيره: من لم يختر شيئًا لا يتبدّل عليه شيء.

    والقاعدة التي تحكم الستّة: المعنى واحدٌ والشكل مختلف. المدى والعتبة والحدّ
    وألوان المناطق تخرج كلّها من SpeedScale نفسه، فلا يقول تصميمٌ «تجاوزتَ»
    ويسكت آخر في المشهد نفسه.

  • النافذة المصغّرة: أربعة أشكال (رقم · حلقة · مؤشّر · شريط)، وثلاثة أحجام
    للرقم، وخلفيّةٌ شفّافة تُفعَّل وتُضبط كثافتها من ‎10‎٪ إلى ‎100‎٪.

  • قائمةٌ بما في مجلّد الخرائط داخل الإعدادات: كلّ ملفٍّ باسمه وحجمه وتصنيفه —
    أرشيفٌ يُرسم، أم ‎.obf‎ متجهيّة، أم بياناتٌ خام — مع مشاركته أو حذفه. والحذف
    بتأكيد، ومقصورٌ على مجلّدنا: المسح يقرأ مجلّدات OsmAnd وLocus وosmdroid، وحذفُ
    ملفٍّ من هناك يمحو خريطةً نزّلها صاحبها في تطبيقٍ آخر ودفع فيها من حزمته. القراءة
    ضيافةٌ والحذف اعتداء.

  • مصدر الخريطة صار قائمةً منسدلة بأربعة أسماء صريحة: تلقائيّ · إنترنت ·
    OsmAnd · محلّيّة. وكان زرًّا يدور بين الخيارات، وكان «إنترنت» و«محلّيّة» قيمةً
    واحدة تختار بينها التغطية — فلم يكن للمستعمل سبيلٌ يقول به «ارسم من ملفّي أنا».
    وما لا يعمل الآن يُعرض معطَّلًا ومعه سببه («لا اتّصال»، «لا أرشيف يغطّي هذا
    المسار») لا يُخفى: إخفاؤه هو ما جعل صاحب المشروع يظنّ الخيار غير موجود.

أُصلح أيضًا

  • «وُجدت خريطة محلّيّة» كانت تُقال عن ملفٍّ لا يُرسم. ملفّ
    morocco-latest-free_shp.zip من Geofabrik أرشيفُ أشكال ESRI لا بلاطات،
    فكان يُقبل لأنّ امتداده ‎.zip‎ ثمّ لا يظهر منه شيء. صار الأرشيف المضغوط
    يُفتح فهرسُه ويُبحث فيه عن بلاطةٍ حقيقيّة بهيئة ‎z/x/y.png‎، فإن لم تُوجد
    صُنّف «بياناتٍ خامّة» وقيل ذلك صراحةً بدل ادّعاء خريطة. ومثله ‎.osm.pbf‎
    و‎.gpkg‎ و‎.shp‎. والبحث محدودٌ بأوّل ‎2000‎ مُدخَل كي لا يُعطّل فهرسُ أرشيفٍ
    بحجم ‎468‎ ميغابايت المسحَ كلَّه.
  • زرّا التأكيد كانا متطابقين في المظهر. «أنهِ» و«تراجَع» نصّان باهتان
    متشابهان، والقرار بينهما يقع بإبهامٍ واحد وسيّارةٌ سائرة. صارا زرًّا مملوءًا
    بعرض المربّع وبأيقونة، لونه لون معناه، وارتفاعه ‎56‎ نقطة. ومع مربّع الإنهاء سطرٌ
    يقول «ما صُوّر حتّى الآن محفوظٌ ولن يضيع»، وهو ما يحتاجه المتردّد فعلًا.

Geofabrik: ما وجدتُه، ولماذا لم يُعتمد مصدرًا يُرسم منه

طلب صاحب المشروع اعتماد download.geofabrik.de مصدرًا. فحصتُ ما يقدّمه لكلّ بلد:

الصيغة ما هي أتُرسم عندنا؟
‎.osm.pbf‎ بيانات OSM خام لا
‎.shp.zip‎ أشكال ESRI لا
‎.gpkg.zip‎ GeoPackage لا
‎*-shortbread-*.mbtiles‎ MBTiles متجهيّة (MVT) لا

محرّكنا osmdroid نقطيٌّ لا غير: يرسم صورًا مرصوفة، ولا يفهم بياناتٍ متجهيّة
بحال. وأرشيفاتٌ نقطيّة مجّانيّة لكلّ بلد لا وجود لها عمليًّا، لأنّ توليدها وحفظها
مكلفان. فالرابط مضافٌ إلى «من أين أجلب أرشيفًا؟» موصوفًا بصدق: هذه الملفّات لا
تُرسم اليوم، وتحويل ‎.osm.pbf‎ إلى ‎.obf‎ ببرنامج OsmAndMapCreator يجعلها تُقرأ
عبر OsmAnd.

والحلّ الحقيقيّ مقصدُ الإصدار 0.10.0: محرّك رسمٍ متجهيّ (MapLibre Native)
يرسم ملفّات Geofabrik الـshortbread داخل التطبيق. وهو الطريق الوحيد إلى خرائط
بلدٍ كاملة دون اتّصال.

يُعرف عنه

  • الطبقة المحروقة في الفيديو تبقى على التصميم الكلاسيكيّ أيًّا كان التصميم
    المختار. من يختار «مؤشّر» يراه على الشاشة ويجد القوس الكلاسيكيّ في الملفّ.
    والاختلاف في الشكل وحده: المدى والعتبة والحدّ وحكم اللون واحدةٌ في الاثنين، فلا
    يقول أحدهما «تجاوزتَ» ويسكت الآخر. وتوحيدُهما يقتضي نقل التصاميم الستّة إلى
    راسم الفيديو، وهو تغييرٌ في مسارٍ مُختبَرٍ يُخرج ملفّات المستعملين — أُجّل عمدًا.
  • شفافيّة النافذة المصغّرة غير مضمونة على كلّ جهاز. نافذة «صورة في صورة»
    يركّبها النظام لا التطبيق، وبعض المصنّعين يرسم تحتها خلفيّةً صمّاء مهما فعلنا.
    فُعّل لها كلُّ ما تسمح به المنصّة (setTranslucent من أندرويد ‎11‎، وصيغةُ سطحٍ
    شفّافة، وخلفيّةُ نافذةٍ خالية)، ومع ذلك يبقى الأمر بيد الجهاز — ولذلك المفتاح
    مطفأٌ افتراضًا ونصُّه يقول ذلك صراحةً. وحين تتعذّر الشفافيّة يكون الأثر صندوقًا
    أغمق لا صندوقًا مكسورًا، والرقم فوقه بظلٍّ يبقيه مقروءًا.