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

لماذا يهم تقريب الإحداثيات أكثر مما يظن الناس

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

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

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

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

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