أكثر

تكوين Geoserver Postgres

تكوين Geoserver Postgres


حجم قاعدة بيانات postgres المستوردة الخاصة بي لـ jet.osm أكثر من 300 جيجابايت في الوضع النحيف.

أضاف أربعة جداول لإنشاء البلاط.

Plan_osm_line ، planet_osm_road ، planet_osm_polygon ، planet_osm_point

يحتوي كل جدول على سمات وهي:

osm_id
التمكن من
العنوان: اسم المنزل
العنوان: رقم المنزل
addr: الاستيفاء admin_level
هوائي
ايرواي
الراحة
منطقة
حاجز
دراجة
ماركة
كوبري
الحدود
بناء
اعمال بناء
مغطى
عبارة
قطع
فئة
مهجور
الجسر
قدم
المولد: المصدر
مرفأ
الطريق السريع
تاريخي
حصان
متقطع
تقاطع طرق
استخدام الأراضي
طبقة
فراغ
قفل
من صنع الإنسان
جيش
سيارة
اسم
طبيعي >> صفة
مكتب
طريقة واحدة
المشغل أو العامل
مكان
تعداد السكان
قوة
مصدر الطاقة
النقل العام
سكة حديدية
المرجع
دين
طريق
الخدمات
متجر
رياضة
سطح - المظهر الخارجي
رسوم
السياحة
البرج: النوع
نوع المسار
نفق
ماء
مجرى مائي
أرض رطبة
العرض
خشب
z_order
الطريق_المنطقة
طريق

الآن أريد تهيئته إلى Geoserver لسمة معينة.

مثال: في المضلع ، أحتاج إلى الاستيرادبناءوحده.

أنا أتابع GeoServer و OpenStreetMap وأقوم بنشر جدول PostGIS ولكن ليس من الواضح بشكل محدد ما ورد أعلاه.

أريد أن أعرف ما إذا كان ذلك ممكنًا في Geoserver؟ وكيف؟


تكوين الطبقة الخاصة بك على أنها عرض SQL - اربط بالمستندات

بالنسبة لحالتك (المباني) ، ستكون عبارة SQL للتصفية:

حدد * من planet_osm_polygon حيث المبنى ليس فارغًا

وبعد ذلك ، انشر الطبقة كالمعتاد.


تكوين Nginx لـ Geoserver

أحاول إنشاء موقع ويب بإمكانية الوصول إلى خدمات WMS من مثيل GeoServer على نفس قطرة DigitalOcean مثل موقع الويب. القطرة عبارة عن خادم Ubuntu 18.04 مع - Tomcat8 - postgresql-10 - openjdk-8-jdk-headless - nginx

قمت بنشر GeoServer من أرشيف الويب وإذا قمت بالاتصال باستخدام ssh من جهازي المحلي وقمت بتعيين منفذ droplets 8080 إلى المنفذ 63334 على جهازي المحلي ، يمكنني الوصول إلى تطبيق الويب GeoServer من http: // localhost: 63334 / bcp_geoserver / web / ويمكنني أيضًا استخدام خدمات WMS في خريطة Leaflet بسيطة باستخدام http: // localhost: 63334 / bcp_geoserver / LCFP / wms كعنوان في ملف HTML على جهازي المحلي. لذلك يبدو أن GeoServer يعمل بشكل صحيح.

ومع ذلك ، إذا قمت بتغيير العنوان في ملف HTML إلى http: // localhost: 8080 / bcp_geoserver / LCFP / wms وقمت بتحميله إلى المجلد الجذر لموقع الويب الخاص بي nginx على القطيرة ، فسأحصل على خطأ رفض الاتصال لخدمات wms إذا كنت حاول الوصول إلى الموقع عبر الإنترنت. أفترض أن السبب في ذلك هو أنني لا أمتلك تهيئة Nginx مناسبة لهذا الموقع. هل هناك طريقة لتهيئة Nginx بحيث يمكن للموقع استخدام خدمات WMS؟

هذا هو تكوين Nginx الحالي الخاص بي لهذا الموقع:

لم أنشر جدار حماية ولدي تطبيق Tomcat webapp آخر على نطاق فرعي (أيضًا على المضيف المحلي: 8080) ويقوم Nginx بتقديمه بشكل صحيح مع proxy_pass.


لا تحصل GeoServer في Tomcat على تحديث لملفات الأشكال من PostGis

لدي خوادم جغرافية تعملان في نفس الجهاز Ubuntu Server 9.04. يعمل GeoServer V2.0.1 مع Jetty و GeoServer V2.0.0 آخر هو Tomcat. كلاهما يستخدم نفس مخزن بيانات PostGis.

عندما أنشر ملفًا جديدًا عبر Rest api إلى GeoServer في Jetty ، فإن GeoServer في Tomcat لا يحصل على ملف شكل التحديث من PostGis.

قد يكون لديها طريقة لإخبار GeoServer في Tomcat في التكوين أو الخدمة بإعادة تحميل ملف الشكل.


تغيير دليل ذاكرة التخزين المؤقت¶

سيقوم GeoWebCache تلقائيًا بتخزين المربعات المخزنة مؤقتًا في دليل gwc داخل دليل بيانات GeoServer. لتعيين دليل مختلف ، أوقف GeoServer (إذا كان قيد التشغيل) وأضف الكود التالي إلى ملف GeoServer web.xml (الموجود في دليل WEB-INF):

قم بتغيير المسار داخل & ltparam-value & gt إلى مسار ذاكرة التخزين المؤقت المطلوب (مثل C: temp أو / tmp). أعد تشغيل GeoServer عند الانتهاء.

تأكد من أن GeoServer لديه حق الوصول للكتابة في هذا الدليل.


Geoserver - مشكلة أداء PostGIS

لقد لاحظنا شيئًا غريبًا في التفاعل بين مثيل Geoserver و Postgres / PostGIS.

بعد تعيين مستوى سجل Geoserver ليشمل تصحيح أخطاء المطور ، تمكنت من التقاط طلب واحد من Geoserver WMS إلى PostGIS.

التسلسل (المختصر) للأحداث وطوابعها الزمنية:

ومن المثير للاهتمام ، عندما أقوم بتنفيذ نفس الاستعلام (MSG) مباشرة من PgAdmin3:

أحصل على 6515 صفًا في 380 مللي ثانية.

يمكن لـ Ie Postgres إرجاع نتائج الاستعلام في غضون 380 مللي ثانية إذا تم الاستعلام عنها من PgAdmin3 ولكن Geoserver يستغرق حوالي 48 ثانية للحصول على نفس النتائج.

هل هذا نوع من مشكلة JDBC ربما؟

بعض التفاصيل حول الإعداد لدينا:

قاعدة بيانات Master Postgres موجودة على جهاز افتراضي منفصل من Geoserver ، لكننا نقوم بالنسخ المتماثل إلى مجموعة Postgres التابعة على Geoserver VM (نفس المضيف). لذا ، يشير Geoserver إلى مجموعة Postgres "localhost" للقراءة فقط لطلبات البحث الخاصة بها.

وقت الاستجابة 380 مللي ثانية الموضح أعلاه كان من مجموعة Postgres التابعة للرقيق ، وهو نفس الوقت الذي يستخدمه Geoserver.


د. استيراد مجموعة البيانات

الآن ، دعنا نستورد تفريغ postgis لمجموعة بيانات إلى قاعدة بيانات postresql الخاصة بنا. كمثال ، سنستخدم nyc_buildings.zip مع مجموعة بيانات للمباني من مدينة نيويورك.

1. قم بتنزيل الحزمة nyc_buildings.zip واستخرجها. ستحصل على nyc_buildings.sql ملف.

2. أدخل phppgadmin لـ postgresql باستخدام بيانات الاعتماد الخاصة بك وانتقل مرة أخرى إلى علامة التبويب sql لقاعدة البيانات الخاصة بك بامتداد postgis (في حالتنا ، مدينة نيويورك قاعدة البيانات).

3. تصفح مجموعة البيانات المستخرجة (على سبيل المثال nyc_buildings.sql ) على جهاز الكمبيوتر المحلي الخاص بك وتحميله كبرنامج نصي SQL.

4. قم بإلغاء تحديد ملف نتائج ترقيم الصفحات خط تحت النموذج و نفذ - اعدم النص.


نظم المعلومات الجغرافية التقليدية مقابل الخدمات الدقيقة المكانية الحديثة

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

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

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

تحتاج التطبيقات التي تدرك مكانيًا أيضًا إلى ضمان قدرتها على التعامل مع الخصائص الفريدة للبيانات المكانية (مثل الأشكال الهندسية والإسقاطات وما إلى ذلك). قد يكون القيام بكل هذا في الخدمات المصغرة المستقلة أمرًا صعبًا ما لم يكن لديك قاعدة بيانات عالية القدرة للقيام بمعظم العمل نيابة عنك. هذا هو المكان الذي يساعد فيه كل من pg_tileserv و pg_featureserv ، حيث يستفيد كلا المشروعين من قوة PostGIS ، وهو امتداد جغرافي مكاني مفتوح المصدر لـ PostgreSQL ، لتوفير إمكانات مكانية متقدمة من إطار عمل REST بسيط


تكوين Geoserver Postgres - نظم المعلومات الجغرافية

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

نفترض أن لديك بالفعل معرفة عملية بـ Geoserver و PostGIS في هذه المقالة. Docker هي أداة تسمح لك بتشغيل التطبيقات في حاويات معزولة عن النظام المضيف. أحد الأشياء الرائعة في docker هو أنه يمكنك نشر وصفات مسبقة الصنع للتطبيقات في مستودعهم المركزي. في Kartoza.com ننشر عددًا من حاويات الرصيف على https://registry.hub.docker.com/repos/kartoza/.

تين هي أداة تزامن لـ docker تتيح لك تحديد وإدارة تعريفات الخدمة الخاصة بك. لتحديد خدماتنا المنسقة ، يمكننا ببساطة الاستفادة من حاويات Postgis و geoserver المنشورة لدينا ، ثم استخدام ميزات وحدات التخزين الخاصة بعمال السفن لاستمرار أدلة البيانات (مجموعة postgis وبيانات الخادم الجغرافي) بحيث يمكن عرض الخدمات لأعلى ولأسفل مع الحفاظ على حالتها . يتم تحديد تعريفات الخدمة في ملف يسمى التين. أول شيء سأفعله هو إنشاء بيئة افتراضية للبيثون وتثبيت التين فيها:

أولاً ، دعنا نحدد خدمة قاعدة البيانات الخاصة بنا في fig.yml:

تسمى خدمتنا "db" ونقوم بتركيب دليل في الحاوية باسم / var / lib / postgresql - سيتم تهيئة مجموعة قاعدة البيانات الخاصة بنا هناك ، ونحدد متغيرات البيئة التي سيتم استخدامها لإعداد مستخدم postgres. بشكل افتراضي ، تقوم صورة PostGIS الخاصة بنا بتهيئة قاعدة بيانات تسمى "gis" مع تثبيت ملحقات postgis فيها. بعد ذلك نحدد خدمة geoserver بتنسيق التين:

هذا يتصاعد دليل من المضيف إلى / opt / geoserver / data_dir - وهو الموقع الجغرافي الذي سيكتب إليه الخادم الجغرافي بيانات التكوين الخاصة به. بالإضافة إلى ذلك ، نحدد اعتمادًا على حاوية db - سيضمن التين تشغيل خدمة db قبل حاوية الخادم الجغرافي. ستتمكن أيضًا من الإشارة إلى قاعدة البيانات باسم المضيف "db" عند إنشاء مخزن بيانات pg في postgis. لذلك دعونا نحضر حاوياتنا باستخدام 'fig up' (والتي في هذه الحالة سوف تقوم ببساطة بتنزيلها من مجموعة صور kartoza الخاصة بنا على http://hub.docker.com). سترى الإخراج شيئًا مثل هذا:

تضع العلامة "-d" الخدمات في الخلفية. يمكنك التحقق من هذا الريبو: https://github.com/timlinux/geoserver-deploy إذا كنت ترغب في الحصول على المشروع المستخدم في هذه المقالة. راجع وثائق التين للأشياء الأخرى التي يمكنك القيام بها بمجرد تشغيل خدمتك - يتيح لك الشكل بشكل أساسي إدارة مجموعة الخدمات كوحدة واحدة ، ورفعها أو خفضها بأمر واحد.

بمجرد بدء التشغيل ، يمكنك معرفة عنوان IP الخاص بحاوية الخادم الجغرافي على النحو التالي:

بمجرد حصولك على عنوان IP ، ما عليك سوى الاتصال به على المنفذ 8080 في متصفح الويب الخاص بك ، على سبيل المثال: http://172.17.0.5:8080 - والتي يجب أن تقدم لك شاشة تسجيل الدخول إلى الخادم الجغرافي العادي (المستخدم: المسؤول ، كلمة المرور: الخادم الجغرافي) .

في لقطة الشاشة أدناه ، يمكنك أن ترى كيف يمكننا الاتصال بخدمة postgis من داخل خدمة geoserver باستخدام المضيف "db" وقاعدة البيانات "gis" للحصول على تفاصيل الاتصال.

مع وجود بنية أساسية كهذه ، يمكنك البدء في المزج في خدمات عامل الميناء الأخرى لإنشاء هياكل أكثر اكتمالاً. على سبيل المثال ، حاول إضافة صورة btsync (https://registry.hub.docker.com/u/kartoza/btsync/) بحيث يمكنك مزامنة ملفات بيانات GIS وملفات تهيئة الخادم الجغرافي بين مضيفين مختلفين. هذا هو أحد الأساليب التي يمكنك اتباعها لتوسيع نطاق خدماتك لتعمل على خدمات متعددة - أو للسماح لك بتصميم عملك على محطة عمل محلية ومزامنة هذه التغييرات مع الخادم الخاص بك تلقائيًا. يمكنك أيضًا استخدام التين لتوسيع نطاق خدمة على خادم واحد - في الواقع تشغيل نسخ متعددة من على سبيل المثال الخادم الجغرافي:

والذي سيُظهر بعد ذلك 3 مثيلات لخادم الجغرافيا قيد التشغيل في Docker ps:

إذا وضعت وكيل nginx أمام geoserver ، فيمكنك حينئذٍ جعله يقوم بتدوير طلبات robin بين مثيلات geoserver لتشكيل موازن تحميل بسيط (على الرغم من أنني أقترح استشارة مستندات / مجتمع خادم geoserver لمعرفة ما إذا كانت هذه طريقة فعالة لتوسيع نطاق خدمة geoserver).

يمكن أن يؤدي استخدام عامل الإرساء إلى تحسين الكفاءة والتكرار اللذين تنشر بهما الخدمات بشكل كبير - وهناك عدد متزايد من صور عامل الإرساء الجغرافي المكاني - إذا كنت حريصًا على FOSSGIS ، فإن استكشاف عامل الإرساء يستحق وقتك!


ألست متأكدًا مما إذا كنت تقوم بتشغيل أفضل PostGIS ممكن لـ PostgreSQL؟ راجع توافق الإصدار وسياسة موسوعة الحياة.

تم إصدار PostGIS بموجب رخصة جنو العمومية العامة (GPLv2 أو أحدث). راجع الأسئلة المتداولة حول الترخيص للحصول على مزيد من المعلومات. تم تطوير PostGIS من قبل مجموعة من المساهمين بقيادة اللجنة التوجيهية للمشروع.

ماذا يحدث الآن

PostGIS 3.1.2

يسر فريق PostGIS إطلاق إصدار PostGIS 3.1.2!

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

    ، TopoGeometry :: إرجاع المصبوب الهندسي NULL لكائنات TopoGeometry الفارغة (Sandro Santilli) ، postgisنمرالمشفر الجغرافي إجابات أفضل عندما لا يتم توفير الرمز البريدي (ريجينا أوبي) ، تعامل مع أنظمة إحداثي معقدة أكثر تعقيدًا (بول رامزي) ، لا ينقلب المحور إلا على CRS الذي يحتوي على & # 8220Lat & # 8221 كالعمود الأول (بول رامزي)
  • دعم إصدارات Proj الأخيرة التي أزالت Pjاحصل علىالإصدار (Paul Ramsey) ، وضبط التسامح للحسابات الجيوديسية (Paul Ramsey) ، والتحويل غير المناسب للسمت الجغرافي السالب إلى الموجب (Paul Ramsey) ، ولم تتشكل مجموعة DBSCAN عندما يكون طول مجموعة السجلات مساويًا للنقاط الدنيا (Dan Baston) ، وتحديث bboxes بعد المقياس / الأفيني تنسيق التغييرات (Paul Ramsey) ، إصلاح مشكلات البيانات النقطية المتعلقة بتغييرات جدول PostgreSQL 14 (Paul Ramsey ، Regina Obe) ، تجميع mingw64 PostGIS / PostgreSQL 14 (Regina Obe ، Tom Lane) ، التحديث لدعم Tiger 2020 (Regina Obe) ، Change Proj عمر ذاكرة التخزين المؤقت لتستمر طالما الاتصال (بول رامزي) ، أضف دعم بناء Pg14 (بول رامزي)

PostGIS 3.1.1

يسر فريق PostGIS إطلاق إصدار PostGIS 3.1.1!

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

    ، مجموعة تمرير الأعطال مع المكونات الفارغة فقط لـ ST_MakeValid ، اجعل محرك VSICURL الاصطناعي يعمل كما هو موثق ، نتائج غير مستقرة من ST_MakeValid ، تجنب إدراج نفس الهندسة في مجموعات مختلفة

PostGIS 3.1.0

يسر فريق PostGIS إطلاق إصدار PostGIS 3.1.0!

يعرض هذا الإصدار الميزات الجديدة لـ GEOS 3.9 بالإضافة إلى العديد من تحسينات الأداء الأساسية للوصلات المكانية والوصول إلى الكائنات الكبيرة وإخراج تنسيق النص والمزيد.

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

تم تحسين كود التجميع k-mean لدعم الترجيح ومجموعات الأبعاد الأعلى.

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

أخيرًا ، يعرض PostGIS أحدث التحسينات في إصدار 3.9 من مكتبة GEOS الهندسية. يوفر محرك التراكب الجديد (المعروف أيضًا باسم & # 8220OverlayNG & # 8221) معالجة أكثر قوة لهندسة الإدخال الصعبة ، باستخدام مجموعة من استراتيجيات الإيماء الجديدة لمعالجة الهندسة. بالنسبة للمستخدم النهائي ، يجب ألا يعني هذا المزيد & # 8220topology & # 8221 عند استخدام وظائف الاتحاد أو الاختلاف أو التقاطع أو الاختلاف المتماثل. يعرض PostGIS أيضًا إمكانية التراكب الدقيق الثابت الجديد عبر معلمة حجم الشبكة الإضافية في ST_Intersection ووظائف التراكب الأخرى.

PostGIS 3.1.0rc1

يسر فريق PostGIS إطلاق سراح المرشح للإصدار القادم PostGIS 3.1.0. يعرض هذا الإصدار بعضًا من تحسينات الأداء والميزات الجديدة في GEOS 3.9 بالإضافة إلى العديد من تحسينات السرعة التي لا تتطلب نظام GEOS أحدث.


تكوين Geoserver Postgres - نظم المعلومات الجغرافية

نسعى جاهدين للعمل مع عملائنا لإيجاد حل عالي الجودة يلبي احتياجاتهم.

معتمدين وذوي خبرة في تقديم الحل والدعم المناسبين في بيئة AWS.

حساب السحابة المرنة (EC2)

Rational Database Service (RDS)

خدمات الإعلام البسيطة

خدمة التخزين البسيطة (S3)

قم بنشر وتكوين خدمات المراقبة على مدار الساعة طوال أيام الأسبوع لتتبع إحصائيات الموارد والحد من وقت التوقف عن العمل.

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

بيئة AWS Levegaring لتوفير البنية التحتية كخدمة لاستضافة التطبيقات وقاعدة البيانات والخدمات الأخرى.


شاهد الفيديو: WebGIS Development from scratch using Geoserver, Openlayers 6 and Postgis