أكثر

كيف تحسب مسافات متعددة بين مجموعة من النقاط وشبكة المتجهات في PostGIS؟


تحتوي مجموعتي على بيانات الإدخال التالية: مجموعة من النقاط وشبكة سداسية (متجهة).


لكل خلية في الشبكة ، أريد حساب مسافة القيادة لكل نقطة. اعتقدت أن هذا سيكون أسلوبًا رائعًا للحساب في قاعدة بيانات PostGIS الممكّنة من pgRouting. في النهاية ، أود تخزين المعلومات في جدول سمات الشبكة!

لسوء الحظ ، لست مهتمًا بـ PostGIS كثيرًا ، لذا لست متأكدًا من كيفية تنفيذ الخوارزمية بشكل صحيح. ما فعلته حتى الآن:

  1. لدي شبكة شوارع قمت بتحميلها في PostGIS. لقد استخدمت pgr لإنشاء طوبولوجيا. يبدو أنه يعمل!

[تحرير 1]

تمكنت من تبسيط هذا قليلاً. أنا الآن أستخدم النقط الوسطى السداسية كنقاط. لقد حسبت أقرب عقدة شبكة لكل centroid وكتبت معرف المصدر في جدول جديد يحتوي على جميع النقط الوسطى ومعرف المصدر لأقرب عقدة من الشبكة.

فعلت الشيء نفسه بالنسبة للنقاط الزرقاء لذا لدي جدولين للعمل بهما. أريد الآن التوجيه من كل النقطه الوسطى إلى كل عقدة زرقاء. نظرًا لأن لدي فهم قليل جدًا لـ PostGIS و Loops ، فقد اعتقدت أن أحدًا يمكنه مساعدتي في الخطوة النهائية. تهدف الحلقة إلى تحديد النقطه الوسطى (معرف المصدر) والتوجيه إلى كل معرف مصدر النقطة الزرقاء. ثم يجب أن تكتب التكلفة في العمود المعني. لذلك يجب أن تبدو إلى حد ما مثل هذا:

معرف HEAXAGON | معرف مصدر HEX | التكلفة أ | التكلفة ب | التكلفة ج | التكلفة د |… | التكلفة ي 1 | 2341 | 250 | 600 | 564 | 993 |… | 1200 2 | 6521 | 260 | 756 | 604 | 870 |… | 1190… |… |… |… |… |… |… |… 4331 | 63525 | 1500 | 1874 | 120 | 451 |… | 145

لدي 10 نقاط و 4331 Hexagons ، لذلك قد يحتاج هذا إلى 43310 Dijsktra Operations. آمل أن تتمكن من مساعدتي بخوارزمية تحل هذا لأنني يائس تمامًا الآن!


شاهد الفيديو: حساب المسافة بين مستويين. الرياضيات. المتجهات والفضاء (شهر اكتوبر 2021).