كيف يمكنني تقسيم العالم في لشبكات صغيرة بحيث يتيح لي الفرصة لتعيين كل موقع خطوط الطول / العرض لشبكة؟ [مغلق]

StackOverflow https://stackoverflow.com/questions/1824790

سؤال

في لاحتساب أقرب المواقع التي يمثلها خط العرض / خط الطول، وكنت تفكر في تقسيم الخريطة إلى شبكات صغيرة، حوالي 100x100 شبكات متر. في الأساس أن يتم تعيين كل نقطة على الشبكة.

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

وماذا سيكون أفضل وسيلة لخلق مثل هذا النظام شبكة ورسم خرائط المواقع المكانية 2-D لذلك؟

وEdit1: قد تكون على ما يرام إذا الشبكات ليست تماما موحدة، أكثر من ذلك حول القطبين

.
هل كانت مفيدة؟

المحلول

يمكن شبكات مستطيلة يكون تقدير معقول، ولكن فقط على منطقة صغيرة نسبيا والتي ليست قريبة جدا من القطبين. حل كامل العالم يتطلب نهجا مختلفا.

نصائح أخرى

ورسم الخرائط من الإحداثيات المكانية ثنائية الأبعاد إلى حسابك المكانية مؤشر / geohash هو مشكلة مثيرة للاهتمام. كنت قد ننظر في هذا المادة على quadtrees، geohashes ومنحنيات هيلبرت . و هيلبرت منحنى هو منحنى الفضاء ملء التي توفر المكان. لأغراضك، وهذا يعني أن العناصر القريبة في مؤشر المكاني ذات بعد واحد سيكون قريب في فضاء ثنائي الأبعاد.

والهدف (كما هو موضح من قبل المستجيبين أخرى) هو تقليل عدد الاستعلامات اللازمة لتغطية المساحة في السؤال دون طلب طن من البيانات غير الضرورية من الخادم. كيف يمكنك أن تفعل التعيين من 2-د الفضاء لمؤشر 1-د سيؤثر هذا الهدف.

ودون معرفة متطلبات التطبيق الدقيق الخاص بك قد يكون Geohashing تقنية المناسبة: HTTP: //en.wikipedia. غزاله / ويكي / Geohash

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

ولا يمكنك إنشاء شبكة مستطيلة التي تقوم بتعيين بشكل موحد على العالم. إذا كانت الشبكة يجب أن تكون موحدة، يجب عليك استخدام المثلثات بدلا من ذلك. ولكن بصفة عامة، وأشك في أن هذا سوف يحل مشكلتك. ما تحتاجه هو 2D octree (وهذا هو رابط البحث جوجل؛ تحقق من الصور لفكرة سهلة كيفية عمل هذا) من نوع: يجب تقسيم الإحداثيات في التسلسل الهرمي (على سبيل المثال شمال / جنوب / شرق / غرب أصل للمستوى الأول ثم بين 90 درجة، الخ)

.

وبعد ذلك يمكنك القيام به بضع يختار والتي سوف تسفر بسرعة أصغر المستطيل التي لا تحتوي على الإحداثيات الحالية. الآن، يمكنك التحقق من حجم المستطيل. إذا كان <100M، وبعد ذلك كنت قد وجدت الحل. خلاف ذلك، سيكون لديك فقط بضع مواقف للتحقق ضد (واحد عادة).

وجوجل ل "قاعدة بيانات SQL octree" للتطبيقات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top