جودة البيانات

دقة الإحداثيات وأخطاء تقريب الفاصلة العائمة

هناك فئة من أخطاء الإحداثيات لا علاقة لها بجودة الترميز الجغرافي الأساسي، بل ترتبط كليًا بطريقة تخزين الأرقام الناتجة ونقلها وإجراء الحسابات عليها بعد ذلك. فزوج الإحداثيات الدقيق تمامًا قد يكتسب خطأ تقريب ملموسًا لمجرد تمثيله بنوع رقمي غير كافي الدقة في مكان ما خلال رحلته عبر نظامك، وهذا النوع من الأخطاء يمكن تجنبه تمامًا بقدر بسيط من الانتباه المقصود.

تحمل الأعداد ذات الفاصلة العائمة أحادية الدقة، المعروفة عادةً باسم float32، ما يقارب سبعة أرقام عشرية معنوية من الدقة. وبالنسبة إلى قيمة خط عرض أو خط طول، التي تحتاج إلى عدة أرقام قبل الفاصلة العشرية لمجرد تمثيل الجزء الصحيح من الدرجات، يترك ذلك أرقامًا أقل بشكل ملحوظ من الدقة الفعلية بعد الفاصلة العشرية مقارنة بما توفره الأعداد ذات الفاصلة العائمة مزدوجة الدقة، المعروفة عادةً باسم float64، للقيمة نفسها. ومن الناحية العملية، قد يُدخل تخزين الإحداثيات بصيغة float32 بدلًا من float64 خطأ تقريب في حدود متر أو أكثر، بحسب خط العرض بالضبط، وهو خطأ منفصل تمامًا عن أي قيود في الدقة كانت موجودة في تطابق الترميز الجغرافي الأصلي نفسه، ويُضاف إليها.

من السهل إدخال هذا النوع من الأخطاء عن غير قصد ومن السهل أن يفوتك، لأنه لا يبدو خطأً بأي شكل واضح، فالإحداثية الناتجة تظل رقمًا معقولًا وسليم الصياغة، لكنها انحرفت بصمت انحرافًا طفيفًا عن القيمة الأصلية. وغالبًا ما يتسلل عبر عمود في قاعدة البيانات مُعرّف بدقة رقمية غير كافية، أو عبر صيغة تسلسل بيانات تستخدم افتراضيًا نوعًا رقميًا أضيق من المقصود، أو عبر عملية حسابية وسيطة، كمعادلة مسافة أو تحويل إحداثيات، تُجرى بنوع أقل دقة من النوع الذي تستخدمه بقية المعالجة.

التوجيه العملي بسيط: استخدم الأعداد ذات الفاصلة العائمة مزدوجة الدقة، أو نوعًا عشريًا ثابت الفاصلة مكافئًا بعدد كافٍ من الأرقام، لتخزين الإحداثيات وإجراء الحسابات عليها في كل أنحاء نظامك من البداية إلى النهاية، لا فقط عند استلامها أول مرة. تحقق من مخطط قاعدة بياناتك تحديدًا، لأن العمود المُعرّف بنوع أضيق من المقصود من أكثر مصادر هذه المشكلة بعينها شيوعًا وأسهلها إغفالًا، وغالبًا ما يُدخل في مرحلة مبكرة من المشروع ولا يُراجع أبدًا بعد أن يعمل بشكل يكفي لاجتياز الاختبارات الأولية. وتحقق كذلك من أي طبقة تسلسل أو API بين الأنظمة، لأن بعض الصيغ والمكتبات تستخدم افتراضيًا الدقة الأحادية ما لم يُطلب منها غير ذلك صراحة، فتخفض الدقة بصمت عند الحد الذي تكون فيه أقل ما تتوقع أن تبحث عنده.

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