أكثر

استخدام مشغل PostGIS؟


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

إنشاء أو استبدال وظيفة update_tg2 () إرجاع الزناد AS $$ BEGIN تحديث الأماكن تعيين new.lat = new.st_y (geo :: geometry) ؛ عودة جديدة ؛ نهاية؛ $$ LANGUAGE 'plpgsql'؛ إسقاط الزناد إذا تم إخراج triger_coords2 في الأماكن ؛ إنشاء المشغل triger_coords2 بعد الإدراج أو التحديث على الأماكن لكل صف تنفيذ الإجراء update_tg2 () ؛

وعند الإدراج: أدخل القيم في الأماكن (المعرف ، nombre ، الموقع الجغرافي) (18 ، "مكاني" ، ST_GeomFromText ("POINT (-0.42154 38.38000)" ، 4326))

أتلقى الخطأ:

خطأ: العمود "geo" غير موجود السطر 1: حدد new.st_y (geo :: geometry)

بالطبع ، العمود موجود. اذا اناحدد st_y (geo :: geometry) من الأماكن، يمكنني رؤية تنسيق Y الخاص به.

هل يعرف أي شخص ما يمكن أن يكون الفشل؟

أنا جديد تمامًا مع الوظائف.


هناك عدد قليل من القضايا للنظر فيها. أولاً ، هل فكرت في استخدام عرض؟ بمعنى آخر.

إنشاء أو استبدال عرض أماكن_مع_البضائع AS SELECT gid، ST_Y (geo :: geometry) AS lat، ST_X (geo :: geometry) AS lon FROM places؛

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

إنشاء أو استبدال وظيفة update_tg2 () إرجاع المشغل كـ $$ BEGIN NEW.lat: = ST_Y (NEW.geo :: geometry) ؛ NEW.lon: = ST_X (NEW.geo :: geometry) ؛ عودة جديدة ؛ نهاية؛ $$ LANGUAGE 'plpgsql'؛ إسقاط الزناد إذا تم إخراج triger_coords2 في الأماكن ؛ إنشاء TRIGGER triger_coords2 قبل الإدراج أو التحديث في الأماكن لكل صف من إجراءات التنفيذ update_tg2 () ؛

يستخدمجديدفي حين أن. يجب أن تعمل.


استخدام مشغل PostGIS؟ - نظم المعلومات الجغرافية

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

بعد إنشاء علامات نقطية على طول خط في PostGIS ، تتعمق هذه المشاركة في إحداثيات 4D ووظائف PostGIS والنقطية في PostGIS.

ما أعرضه هنا يتعلق بتلبية متطلبين لفريق تخطيط مسار الماراثون:

  • قم تلقائيًا بتحديث طول المسار بعد كل تعديل بأدق عملية حسابية ممكنة
  • قم بتمكين مستخدم QGIS من الاستعلام عن المسافة على طول الخط في أي نقطة من خلال النقر عليه

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

بالنسبة للثاني ، نريد الاستفادة من وظيفة أداة التحديد QGIS 3.4 التي تعرض إحداثيات X و Y و Z و M لأقرب قمة بالإضافة إلى قيم M و Z المحرفين في القسم "المشتق" ، مثل هذا :

هذه النقطة هي 15.74 كم على طول طريق الماراثون و 7.5 متر فوق مستوى سطح البحر.

سنقوم بتحديث قيم Z (الارتفاع) و M (القياس) لكل قمة في كل مرة يتم فيها تحرير الهندسة وحفظها.

بالنسبة للارتفاع ، سنستخدم DEM النقطي (نموذج الارتفاع الرقمي) داخل قاعدة البيانات. لدى مدينة كيب تاون بوابة بيانات مفتوحة يمكن الوصول إليها ووجدت هناك 10 مليون مارك ألماني هناك. لذلك قمت بتنزيله ثم تحميله في قاعدة بيانات PostGIS الخاصة بي:

الماراثون والطرق الطويلة في QGIS 3D

ثم كان علي التأكد من أن مجال هندسة كل مسار يلبي 4 أبعاد:

بعد ذلك قمت بإنشاء هذه الوظيفة:

تقوم وظيفة update_ZM () بما يلي:

  • مشاريع الخط إلى CRS المحلية
  • يستخرج كل الرؤوس كنقاط
  • يتقاطع مع النقاط مع ماركا ألمانيا
  • يضيف الارتفاع من DEM إلى قيمة Z لإحداثيات النقطة
  • يعيد النقاط إلى خط
  • يضيف مسافات ثلاثية الأبعاد دقيقة إلى قيمة M للإحداثيات كما هو موضح بمزيد من التفصيل في المقالة السابقة
  • يستبدل الإصدار السابق من السطر بالإصدار الذي تم إنشاؤه بواسطة العملية المذكورة أعلاه

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

الخطوة الأخيرة هي إضافة المشغل إلى أي جدول سطر تريد تشغيل هذه الوظيفة عليه:

يقوم هذا المشغل بتشغيل وظيفة update_ZM () في كل سجل تقوم بإضافته أو تحريره. إذا كنت تقوم بالتحرير في QGIS ، فهذا يعني بمجرد أن تضغط على Save.


قبل تطبيق المرافق المكانية على بياناتنا الحالية ، دعنا نستكشف بعض الوظائف المكانية. ستُسبق جميع وظائف SQL التي يجب إدخالها بـ = # ، ولن يحتوي أي شيء يتم إرجاعه بواسطة قاعدة البيانات على أحرف بادئة.

خلق النقاط

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

يمكننا ضبط نظام الإحداثي المرجعي (CRS) إلى النقطة باستخدام ST_SetSRID.

إذا كنا لا نريد عرض البيانات الوصفية لـ CRS ، فاستخدم ST_AsText

لعرض النقطة في نظام مرجعي مختلف:

GPS إلى كائنات مكانية

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

تحقق من مخطط جدول القياس عن بعد. يوجد عمود جديد يسمى geom وهو من النوع الهندسي (Point ، 4326). قم بتشغيل استعلام التحديد لرؤية البيانات. لاحظ أن ST_AsEWKT مطلوبة لعرض النقاط الفعلية.

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

في عبارة SELECT الثانية نحسب النقطه الوسطى للنقاط باستخدام ST_Centroid. النقطه الوسطى هي المركز الهندسي لجميع النقاط ويتم حسابها بأخذ متوسط ​​خط الطول وخط العرض. & ltp & gt


استخدام مشغل PostGIS؟ - نظم المعلومات الجغرافية

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

بعد إنشاء علامات نقطية على طول خط في PostGIS ، تتعمق هذه المشاركة في إحداثيات 4D ووظائف PostGIS والنقطية في PostGIS.

ما أعرضه هنا يتعلق بتلبية متطلبين لفريق تخطيط مسار الماراثون:

  • قم تلقائيًا بتحديث طول المسار بعد كل تعديل بأدق عملية حسابية ممكنة
  • قم بتمكين مستخدم QGIS من الاستعلام عن المسافة على طول الخط في أي نقطة من خلال النقر عليه

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

بالنسبة للثاني ، نريد الاستفادة من وظيفة أداة التحديد QGIS 3.4 التي تعرض إحداثيات X و Y و Z و M لأقرب قمة بالإضافة إلى قيم M و Z المحرفين في القسم "المشتق" ، مثل هذا :

هذه النقطة هي 15.74 كم على طول طريق الماراثون و 7.5 متر فوق مستوى سطح البحر.

سنقوم بتحديث قيم Z (الارتفاع) و M (القياس) لكل قمة في كل مرة يتم فيها تحرير الهندسة وحفظها.

بالنسبة للارتفاع ، سنستخدم DEM النقطي (نموذج الارتفاع الرقمي) داخل قاعدة البيانات. لدى مدينة كيب تاون بوابة بيانات مفتوحة يمكن الوصول إليها ووجدت هناك 10 مليون مارك ألماني هناك. لذلك قمت بتنزيله ثم تحميله في قاعدة بيانات PostGIS الخاصة بي:

الماراثون والطرق الطويلة في QGIS 3D

ثم كان علي التأكد من أن مجال هندسة كل مسار يلبي 4 أبعاد:

بعد ذلك قمت بإنشاء هذه الوظيفة:

تقوم وظيفة update_ZM () بما يلي:

  • مشاريع الخط إلى CRS المحلية
  • يستخرج كل الرؤوس كنقاط
  • يتقاطع مع النقاط مع ماركا ألمانيا
  • يضيف الارتفاع من DEM إلى قيمة Z لإحداثيات النقطة
  • يعيد النقاط إلى خط
  • يضيف مسافات ثلاثية الأبعاد دقيقة إلى قيمة M للإحداثيات كما هو موضح بمزيد من التفصيل في المقالة السابقة
  • يستبدل الإصدار السابق من السطر بالإصدار الذي تم إنشاؤه بواسطة العملية المذكورة أعلاه

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

الخطوة الأخيرة هي إضافة المشغل إلى أي جدول سطر تريد تشغيل هذه الوظيفة عليه:

يقوم هذا المشغل بتشغيل وظيفة update_ZM () في كل سجل تقوم بإضافته أو تحريره. إذا كنت تقوم بالتحرير في QGIS ، فهذا يعني بمجرد أن تضغط على Save.


المزيد من دراسات الحالة

معهد هوارد هيوز الطبي

بصفتي مهندس برمجيات في معهد هوارد هيوز الطبي ، أعمل على برنامج تعاوني لإعادة بناء الخلايا العصبية وتحليلها يسمى CATMAID 1 (لقطة الشاشة: 3) ، والذي يستخدم في أبحاث علم الأعصاب. نستخدم PostGIS لتمثيل الخلايا العصبية في مساحة ثلاثية الأبعاد.

تقييمات الطليعة

تقييمات الطليعة جديدة في عالم نظم المعلومات الجغرافية. في الواقع ، نحن لسنا حقًا في عالم نظم المعلومات الجغرافية ، فنحن نواجهه نوعًا ما. نحن نقوم بتقييم شامل للممتلكات لكامل الولايات القضائية في المقاطعة والمدن ، ونقوم بتطوير برنامج لجمع القيم وتسعيرها والحفاظ عليها. نستضيف أيضًا بيانات التقييم عبر الإنترنت بحيث يمكن لأصحاب المنازل البحث والعثور على معلومات الملكية بشكل أبسط بكثير من منازلهم المريحة. تُستخدم برامجنا ومواقعنا الإلكترونية في 7 ولايات (IA و IL و MN و MO و NE و ND و SD).

دراسة حالة Nautilytics

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


لا يمكن DropTopology بسبب تشغيل الحدث

لدي قاعدة بيانات postgres مع جدول واحد لكل ولاية أمريكية. أحاول إنشاء برنامج يتكرر عبر كل جدول ويتعامل مع الهندسة. للقيام بذلك ، في بداية الحلقة أقوم بإنشاء طوبولوجيا بالخط

SELECT topology.CreateTopology ('state_topo'، find_srid ('schema'، 'stateTable'، '' geom ''))

منذ أن & # 8217m التكرار ، أريد حذف الهيكل قبل إعادة التشغيل ، لذلك قمت & # 8217 بتضمين السطر:

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

خطأ: لا يمكن إسقاط الجدول "edge_data" لأنه يحتوي على أحداث تشغيل معلقة
السياق: عبارة SQL "DROP SCHEMA state_topo CASCADE"

إجابة واحدة

تلقى نفس الخطأ المحبط ، المشكلة غير واضحة.

تمديد القطارة بالكامل لا يوجد حل. تم إنهاء جميع الاتصالات & quotQGIS & quot ، وعمل الإسقاط أخيرًا.

النظرية: في حالتي ، يحدث الانخفاض أثناء معاملة تسقط وتعيد إنشاء مخطط topo بالاقتران مع خطأ معالجة جغرافية ، مما يؤدي إلى حدوث انخفاض في بعض الخطوات لاحقًا ، محاصرين في بنية تحكم BEGIN / EXCEPTION / END. اشتبه في أن حدث السلسلة المتعلق بالهبوط الذي يتم تشغيله أثناء المعاملة يتأثر بالخطأ الذي أدى إلى التراجع عن نفس المعاملة. .

الحقائق: عادةً ما يضع QGIS اتصالات الأقفال التي يمكن أن تسبب توقفًا في حالات pg. في بعض الحالات ، أجد نفسي مضطرًا إلى التحقق من بعض هذه الاتصالات وإنهائها.


استخدام مشغل PostGIS؟ - نظم المعلومات الجغرافية

عرض المشاركات لفئة PostGIS

إعداد PostgreSQL SSL في docker-postgis

قواعد البيانات هي حجر الزاوية لمعظم تطبيقات الويب وتعمل أيضًا كمستودع مركزي لتخزين البيانات.

QGIS Road to Nerdvana الحلقة 18: مقدمة إلى PostgreSQL و PostGIS

هذه جولة توضح كيف يمكن استخدام PostgreSQL و PostGIS كمخزن بيانات جغرافي مكاني ، ثم يتم استهلاك البيانات الموجودة في هذا المتجر وإنشاؤها بواسطة geopandas.

QGIS Road to Nerdvana الحلقة 7: تسجيل مكالمات Postgres

في هذه الحلقة ، سيوضح لك Tim Sutton كيفية تمكين تسجيل PostgreSQL والاستعلامات الأساسية التي يتم إنشاؤها بواسطة QGIS أو أي عميل PostgreSQL آخر.

FOSS4G 2019 و QGIS في بوخارست

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

إنشاء مرآة حية لموضوع محدد لخريطة الشارع المفتوح في PostGIS

مقدمة

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

استخدام NOTIFY لتحديث الطبقات تلقائيًا في QGIS

واحدة من أكثر الميزات الرائعة ولكن غير المعروفة في QGIS هي القدرة على تشغيل تحديثات وأحداث الطبقة استجابةً للإشعارات الواردة من PostgreSQL. تم تطوير هذا بواسطة المعالجات من Oslandia ويمكن إضافته بسهولة إلى أي جدول موجود في قاعدة بيانات PostgreSQL - بما في ذلك جداول PostGIS. تمت إضافة هذه الميزة في الإصدار 3.0 (راجع https://qgis.org/en/site/forusers/visualchangelog30/#feature-trigger-layer-refresh-or-layer-actions-from-postgresql-notify-signal). خذ على سبيل المثال هذا الجدول البسيط:

إضافة ارتفاع إلى خط من DEM في PostGIS والحفاظ على مقاييس دقيقة

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

كيفية إنشاء طبقة علامة مسافة نقطية على طول خط في PostGIS

هذا هو الجزء الأول من سلسلة مكونة من 3 أجزاء.

إنشاء geogig في بيئة الإنتاج

لطالما اهتم ممارسو ومطورو نظم المعلومات الجغرافية بإصدار البيانات المكانية. لحسن الحظ ، مكننا القوم في LocationTech من القيام بذلك من خلال توفير GeoGig (المعروف سابقًا باسم geogit). علاوة على ذلك ، يمكن لـ Geogig التفاعل مع GeoServer بسلاسة. في Kartoza ، نستخدم Docker لتنسيق خدماتنا وعلى هذا النحو فإنه سيشكل العمود الفقري لهذه المقالة.

بدائل محرك خرائط جوجل

ستدعم Google محرك خرائط Google (GME) لمدة عام واحد فقط. إذا كانت شركتك تستخدم GME أو كانت تفكر في ذلك ، فستحتاج إلى التفكير في البدائل. تقدم Kartoza بدائل مختلفة حسب حالة الاستخدام الخاصة بك. نحن شركاء BoundlessGeo ونقدم الدعم لـ OpenGeo Suite في جنوب إفريقيا. لمزيد من التفاصيل حول إعلان Google ، بما في ذلك السيناريوهات المختلفة التي يجب أن تفكر فيها في OpenGeo Suite ، راجع BoundlessGeo's. تقدم Kartoza أيضًا خدمات التطوير والدعم والتدريب عبر المكونات الأخرى لحزمة FOSS GIS التي تقدم بدائل لـ Google ومنتجات الملكية الأخرى - نود أن نسمع منك!

تنظيم GeoServer مع Docker و Fig

في هذه المقالة سأشرح بالتفصيل كيفية إعداد نظام منظم بسيط لحاويات الرصيف باستخدام:


لسنوات كنت أسمع كل شخص يتحدث عن Enterprise GIS ، لكني لم أر أي شخص يفعل ذلك. بعد هذه الدورة ، يمكنني الآن أن أقول "لقد قمت بإنشاء GIS لمؤسسة متعددة المستخدمين بمفردي!" - جون من كاليفورنيا.

وبالتالي. هل أنت على استعداد لتعلم كيفية إنشاء نظام معلومات جغرافي خاص بالمؤسسات من البداية باستخدام برنامج مجاني ومفتوح المصدر لـ GIS (FOSS4g)؟

استجابةً للتكلفة العالية والتعقيدات التي ينطوي عليها تطبيق نظام المعلومات الجغرافية الخاص بالمؤسسات ، فقد أنشأت هذه الدورة التدريبية العملية سهلة المتابعة والتعلم السماح للمتعلمين (الطلاب والمهنيين ، إلخ) ببناء نظام معلومات جغرافي متعدد المستخدمين من البداية باستخدام Postgres / PostGIS (مجانًا) و QGIS (مجانًا).

بالإضافة إلى ذلك ، سأوضح في هذا التدريب كيف يمكنك إضافة منتجات GIS أخرى (مثل برامج GIS التجارية) إلى مجموعة الشركات كعملاء GIS.

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

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


استخدام مشغل PostGIS؟ - نظم المعلومات الجغرافية

عرض المشاركات لفئة PostGIS

إعداد PostgreSQL SSL في docker-postgis

قواعد البيانات هي حجر الزاوية لمعظم تطبيقات الويب وتعمل أيضًا كمستودع مركزي لتخزين البيانات.

QGIS Road to Nerdvana الحلقة 18: مقدمة إلى PostgreSQL و PostGIS

هذه جولة توضح كيف يمكن استخدام PostgreSQL و PostGIS كمخزن بيانات جغرافي مكاني ، ثم يتم استهلاك البيانات الموجودة في هذا المتجر وإنشاؤها بواسطة geopandas.

QGIS Road to Nerdvana الحلقة 7: تسجيل مكالمات Postgres

في هذه الحلقة ، سيوضح لك Tim Sutton كيفية تمكين تسجيل PostgreSQL والاستعلامات الأساسية التي يتم إنشاؤها بواسطة QGIS أو أي عميل PostgreSQL آخر.

FOSS4G 2019 و QGIS في بوخارست

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

إنشاء مرآة حية لموضوع محدد لخريطة الشارع المفتوح في PostGIS

مقدمة

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

استخدام NOTIFY لتحديث الطبقات تلقائيًا في QGIS

واحدة من أكثر الميزات الرائعة ولكن غير المعروفة في QGIS هي القدرة على تشغيل تحديثات وأحداث الطبقة استجابةً للإشعارات الواردة من PostgreSQL. تم تطوير هذا بواسطة المعالجات من Oslandia ويمكن إضافته بسهولة إلى أي جدول موجود في قاعدة بيانات PostgreSQL - بما في ذلك جداول PostGIS. تمت إضافة هذه الميزة في الإصدار 3.0 (راجع https://qgis.org/en/site/forusers/visualchangelog30/#feature-trigger-layer-refresh-or-layer-actions-from-postgresql-notify-signal). خذ على سبيل المثال هذا الجدول البسيط:

إضافة ارتفاع إلى خط من DEM في PostGIS والحفاظ على مقاييس دقيقة

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

كيفية إنشاء طبقة علامة مسافة نقطية على طول خط في PostGIS

هذا هو الجزء الأول من سلسلة مكونة من 3 أجزاء.

إنشاء geogig في بيئة الإنتاج

لطالما اهتم ممارسو ومطورو نظم المعلومات الجغرافية بإصدار البيانات المكانية. لحسن الحظ ، أتاح لنا القوم في LocationTech القيام بذلك من خلال توفير GeoGig (المعروف سابقًا باسم geogit). علاوة على ذلك ، يمكن لـ Geogig التفاعل مع GeoServer بسلاسة. في Kartoza ، نستخدم Docker لتنسيق خدماتنا وبالتالي سيشكل العمود الفقري لهذه المقالة.

بدائل محرك خرائط جوجل

ستدعم Google محرك خرائط Google (GME) لمدة عام واحد فقط. إذا كانت شركتك تستخدم GME أو كانت تفكر في ذلك ، فستحتاج إلى التفكير في البدائل. تقدم Kartoza بدائل مختلفة حسب حالة الاستخدام الخاصة بك. نحن شركاء BoundlessGeo ونقدم الدعم لـ OpenGeo Suite في جنوب إفريقيا. لمزيد من التفاصيل حول إعلان Google ، بما في ذلك السيناريوهات المختلفة التي يجب أن تفكر فيها في OpenGeo Suite ، راجع BoundlessGeo's. تقدم Kartoza أيضًا خدمات التطوير والدعم والتدريب عبر المكونات الأخرى لحزمة FOSS GIS التي تقدم بدائل لـ Google ومنتجات الملكية الأخرى - نود أن نسمع منك!

تنظيم GeoServer مع Docker و Fig

في هذه المقالة سأشرح بالتفصيل كيفية إعداد نظام منظم بسيط لحاويات الرصيف باستخدام:


استخدام مشغل PostGIS؟ - نظم المعلومات الجغرافية

دعنا نحاول نقل نقطة مطور الكائن إلى مكان آخر. لقد فعلنا ذلك ، ولكن مع أشياء أخرى لم يحدث شيء حتى الآن. اضغط على زر "تبديل التحرير" واحفظ التغييرات في قاعدة البيانات.

تم استخدام صورتنا بعض التغييرات:

1. ركض المستطيل الرمادي لنقل وجهة نظرنا لأن
تحتوي الدالة mygis.objects_trigger () على الأسطر التالية
إذا كان (TG_WHEN = "قبل").
ELSIF (TG_OP = "تحديث") بعد ذلك
NEW.geom_polygon = ST_Translate (mygis.obj_geom_polygon (NEW.object_type) ، X (NEW.geom_point) ، Y (NEW.geom_point))
عودة جديدة
أي تغيير تغييرات geom_point و geom_polygon ، والتي تحدد موضع المستطيل الرمادي

2. ركض مستطيل رمادي خمسة أخضر صغير لأن
تحتوي الدالة mygis.objects_trigger () على الأسطر التالية
ELSIF (TG_WHEN = "بعد").
ELSIF (TG_OP = "UPDATE").
تحديث mygis.objects
SET geom_point = ST_Translate (geom_point، X (NEW.geom_point) -X (OLD.geom_point)، Y (NEW.geom_point) -Y (OLD.geom_point))
أين المعرف & lt & gt NEW.id و ST_Covers (OLD.geom_polygon ، geom_polygon)
عودة جديدة
أي هندسة جميع الكائنات التي تمت تغطيتها بأغلفة مستطيل رمادي ST_C (OLD.geom_polygon ، geom_polygon) ، تتحرك معها.

3. تم إرفاق نهاية الخط الأخضر بالمربع الأخضر (أسفل اليسار) بسبب
تحتوي الدالة mygis.objects_trigger () على الأسطر التالية
ELSIF (TG_WHEN = "بعد") بعد ذلك.
ELSIF (TG_OP = "تحديث") بعد ذلك.
UPDATE mygis.links SET geom_line = ST_SetPoint (geom_line، 0، NEW.geom_point) WHERE obj_start_id = NEW.id
UPDATE mygis.links SET geom_line = ST_SetPoint (geom_line، ST_NPoints (geom_line) - 1، NEW.geom_point) حيث obj_end_id = NEW.id
عودة جديدة
أي هندسة محدثة للخطوط من روابط الجدول

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


شاهد الفيديو: Lessons on GDB and Interactive Maps No. 2. Getting, installing and configuring PostGIS PostgreSQL. (شهر اكتوبر 2021).