Daha çox

Geoserver Postgres Konfiqurasiyası


Uçak.osm üçün idxal etdiyim postgres verilənlər bazası ölçüsü incə rejimdə 300 GB-dan çoxdur.

Fayansların yaradılması üçün dörd masa əlavə etdi.

planet_osm_line, planet_osm_ yol, planet_osm_polygon, planet_osm_ nöqtə

Hər Cədvəl aşağıdakı xüsusiyyətlərə malikdir:

osm_id
Giriş
addr: ev adı
addr: ev nömrəsi
addr: interpolation admin_level
hava yolu
hava yolu
rahatlıq
sahə
baryer
velosiped
marka
körpü
sərhəd
bina
Tikinti
örtülüdür
su borusu
kəsmə
nominal
istifadəsizdir
sahil
ayaq
generator: mənbə
liman
magistral
tarixi
at
aralıqlı
qovşaq
torpaq
qat
asudə
bağlamaq
man_made
hərbi
avtomobil
ad
təbii
ofis
bir yol
operator
yer
əhali
güc
enerji mənbəyi
ictimai nəqliyyat
dəmir yolu
ref
din
marşrut
xidmət
mağaza
idman
səth
ödəniş
turizm
qala: tip
tracktype
tunel
su
su yolu
bataqlıq
eni
ağac
z_ sifariş
yol_area
yol

İndi müəyyən bir atribut üçün Geoserver-də konfiqurasiya etmək istəyirəm.

Misal: poliqonda idxal etməliyəmbinayalnız.

Bu GeoServer və OpenStreetMap-i izləyirəm və PostGIS Cədvəlini dərc edirəm, lakin yuxarıda göstərilənlər barədə dəqiq bir məlumat yoxdur.

Geoserver-də mümkün olub olmadığını bilməliyəm? Və necə ?


Qatınızı SQL Görünüşü kimi konfiqurasiya edin - sənədlərə keçid

İşiniz üçün (binalar) filtrləmə üçün SQL ifadəsi aşağıdakılar olacaqdır:

BİNİN NULL OLMADIĞI * planet_osm_polygondan * SEÇİN

Və sonra, təbəqəni hər zamanki kimi yayımlayın.


Geoserver üçün Nginx konfiqurasiyası

Veb saytı ilə eyni DigitalOcean damlacığında bir GeoServer nümunəsindən WMS xidmətlərinə çıxışı olan bir veb sayt qurmağa çalışıram. Damlacıq - tomcat8 - postgresql-10 - openjdk-8-jdk-headless - nginx olan bir Ubuntu 18.04 serveridir

GeoServer-i bir veb arxivdən yerləşdirmişəm və yerli maşınımdan ssh istifadə edərək əlaqə qursam və 8080 portu ilə yerli maşınımdakı 63334 portunu eşitsəm, GeoServer veb tətbiqinə http: // localhost: 63334 / bcp_geoserver / web-dən daxil ola bilərəm. / və mən də yerli maşınımdakı HTML sənədindəki bir ünvan olaraq http: // localhost: 63334 / bcp_geoserver / LCFP / wms istifadə edərək sadə bir broşura xəritəsində WMS xidmətlərindən istifadə edə bilərəm. Beləliklə GeoServer düzgün işləyir.

Bununla birlikdə, HTML sənədindəki ünvanı http: // localhost: 8080 / bcp_geoserver / LCFP / wms olaraq dəyişdirib damlacıqdakı nginx veb kök qovluğuma yüklədiyim təqdirdə, wms xidmətləri üçün əlaqə rədd edildi İnternet vasitəsilə veb saytına daxil olmağa çalışın. Bunun veb sayt üçün uyğun bir Nginx konfiqurasiyasına sahib olmamağımdan qaynaqlandığını düşünürəm. Veb saytın WMS xidmətlərindən istifadə edə bilməsi üçün Nginx-i konfiqurasiya etməyin bir yolu varmı?

Bu veb sayt üçün hazırkı Nginx konfiqurasiyam:

Bir firewall yerləşdirməmişəm və subdomain-də başqa bir tomcat webapp var (localhost: 8080 da) və Nginx proxy_pass ilə düzgün xidmət edir.


Tomcatdakı GeoServer, PostGis-dən yeniləmə şəkilləri əldə etmir

Eyni Ubuntu Server 9.04-də işləyən iki GeoServerim var. GeoServer V2.0.1 Jetty ilə çalışır və başqa bir GeoServer V2.0.0 Tomcatdır. Hər ikisi də eyni PostGis məlumat deposundan istifadə edir.

İstirahət api vasitəsilə Jetty-də GeoServer-ə yeni shapefile göndərdiyim zaman Tomcatdakı GeoServer PostGis-dən yeniləmə shapefile almır.

Tomfatdakı GeoServer-ə konfiqurasiya və ya xidmətdə shapefile yenidən yükləməsini izah etmək yolu ola bilər.


Keş qovluğunun dəyişdirilməsi¶

GeoWebCache, önbelleğe alınan plitələri avtomatik olaraq GeoServer məlumat qovluğunuzdakı bir gwc qovluğunda saxlayacaq. Fərqli bir qovluq qurmaq üçün GeoServer'i dayandırın (işləyirsə) və GeoServer web.xml dosyanıza (WEB-INF qovluğunda yerləşən) aşağıdakı kodu əlavə edin:

& Ltparam-value & gt daxilindəki yolu istədiyiniz önbellek yoluna dəyişdirin (məsələn C: temp və / tmp). Hazır olduqda GeoServer'i yenidən başladın.

GeoServer-in bu qovluqda yazma girişinə sahib olduğundan əmin olun.


Geoserver - PostGIS performans məsələsi

Geoserver nümunəmizlə Postgres / PostGIS arasındakı qarşılıqlı əlaqədə qəribə bir şey gördük.

Geoserver-in günlük səviyyəsini inkişaf etdirici ayıklamasını daxil edəcək şəkildə təyin etdikdən sonra Geoserver WMS-dən PostGIS-ə tək bir sorğu ala bildim.

Hadisələrin (qısaldılmış) ardıcıllığı və zaman damğaları:

Maraqlıdır ki, eyni sorğunu (MSG) birbaşa PgAdmin3-dən icra etdiyim zaman:

380 ms-də 6515 sıra alıram.

Ie Postgres, PgAdmin3-dən sorğu aldıqda, sorğunun nəticələrini 380 ms ərzində qaytara bilər, lakin Geoserver eyni nəticəni əldə etmək üçün təxminən 48 saniyə çəkir.

Bu bəlkə də bir növ JDBC problemidir?

Qurulumumuz haqqında bəzi detallar:

Master Postgres verilənlər bazası Geoserver-dən ayrı bir VM-dədir, lakin Geoserver VM-də (eyni ana kompüter) bir kölə Postgres klasterinə kopyalayırıq. Beləliklə, Geoserver sorğuları üçün 'localhost' oxunaqlı Postgres klasterinə istinad edir.

Yuxarıda göstərilən 380 ms cavab müddəti, Geoserver-in istifadə etdiyi qul Postgres qrupundan idi.


D. verilənlər bazası idxalı

indi postresql verilənlər bazamıza bir verilənlər bazasının postgis tökülməsini idxal edək. nümunə olaraq nyc_buildings.zip-i new york şəhərindən olan binaların bir verilənlər bazası ilə istifadə edəcəyik.

1. nyc_buildings.zip paketini yükləyin və çıxarın. alacaqsınız nyc_buildings.sql fayl.

2. daxil edin phppgadmin etimadnamənizlə postgresql üçün və postgis uzantılı verilənlər bazası üçün yenidən sql nişanına keçin (bizim vəziyyətimizdə, nyc verilənlər bazası).

3. çıxarılan verilənlər bazasına baxın (məs. nyc_buildings.sql ) yerli kompüterinizə yükləyin və sql skript şəklində yükləyin.

4. seçimini seçin nəticələri səhifələmək formanın altındakı xətt və icra etmək ssenari.


Ənənəvi GIS və müasir məkan mikroservisləri

Ənənəvi olaraq, bir təşkilat və ya şəxs məkan məlumatları ilə işləyərkən, bir CBS olaraq böyüyən bir məhsulla başlayırlar. Bir çox yüksək keyfiyyətli açıq mənbəli CİS məhsulları var (QGIS, GeoServer, GeoNode və s.), Lakin proqram dizaynına müasir, buludlu yanaşmalarla uyğunlaşmaya bilər.

Kubernetes-in populyarlığı bu köhnə tətbiqetmələr üçün avtomatlaşdırma və yerləşdirmə ətrafında çətinliklər yaradır, çünki çox sayda əl konfiqurasiyası tələb olunur, məsələn, məlumat mənbələri əlavə olunduqda və dəyişdirildikdə. Bir çox quraşdırma, bu məkan tətbiqetmələri Kubernetes xaricində mövcud olmalıdır və təmin etdiyi çox rahatlıqdan istifadə edə bilməz.

Bunun əksinə olaraq, müasir məkan xidmətləri işlənib hazırlandıqları məkan məlumatları tərəfindən idarə olunmalıdır. Müasir proqram inkişaf təcrübələri ilə uyğunlaşmalı və səmərəli miqyas almalı və inkişaf etdirici iş axınları ilə asanlıqla inteqrasiya etməlidirlər.

Məkan baxımından fərqində olan tətbiqetmələr, məkan məlumatlarının unikal xüsusiyyətlərini (məsələn, həndəsələr, proyeksiyalar və s.) İdarə edə bilmələrini təmin etməlidirlər. Bunların hamısını müstəqil mikroservislərdə etmək, işin çox hissəsini sizin üçün yerinə yetirmək üçün yüksək qabiliyyətli bir məlumat bazanız olmadığı müddətdə çətin ola bilər. Pg_tileserv və pg_featureserv kömək edir, çünki hər iki layihə də sadə bir REST çərçivəsindən inkişaf etmiş məkan imkanları təmin etmək üçün PostgreSQL-ə açıq mənbə yerleşim uzantısı olan PostGIS-in gücündən istifadə edir.


Geoserver Postgres Konfiqurasiyası - Coğrafi İnformasiya Sistemləri

Bu yazıda istifadə edərək sadə bir doker konteyner sisteminin necə qurulacağını ətraflı izah edəcəyəm:

Bu məqalədə artıq Geoserver və PostGIS haqqında işləmə bilikləriniz olduğunu düşünürük. Docker, əsas sistemdən təcrid olunmuş konteynerlərdə tətbiqetmələr işləməyinizə imkan verən bir vasitədir. Docker ilə əlaqəli ən yaxşı şeylərdən biri də tətbiqetmələr üçün əvvəlcədən hazırlanmış reseptləri mərkəzi deposunda yayımlaya bilməyinizdir. Kartoza.com saytında bir çox docker konteynerlərini dərc edirik https://registry.hub.docker.com/repos/kartoza/.

Şek xidmət təriflərinizi təyin etməyə və idarə etməyə imkan verən docker üçün bir orkestr vasitədir. Düzenlenmiş xidmətlərimizi təyin etmək üçün nəşr olunmuş postgis və geoserver konteynerlərimizdən istifadə edə bilərik, sonra da məlumat kataloqularını (postgis klasteri və geoserver data_dir) davam etdirmək üçün dokerin həcmi xüsusiyyətlərindən istifadə edə bilərik ki, xidmətlər öz vəziyyətlərini qoruyarkən yuxarıya qaldırıla bilsin. . Xidmət tərifləri adlı bir sənəddə göstərilmişdir fig.yml. Etəcəyim ilk şey bir python virtual mühiti yaratmaq və içərisinə əncir qurmaqdır:

Əvvəlcə verilənlər bazası xidmətimizi fig.yml-də müəyyənləşdirək:

Xidmətimiz 'db' adlanır və bir qovluğu olduğu kimi bir qovluğa yerləşdiririk / var / lib / postgresql - verilənlər bazası klasterimiz orada başlanacaq və postgres istifadəçisi qurmaq üçün istifadə olunan mühit dəyişənlərini təyin edirik. Varsayılan olaraq PostGIS imicimiz, içərisinə postgis uzantıları quraşdırılmış 'gis' adlı bir verilənlər bazası yaradır. Sonra bir geoserver xidmətini təyin edirik fig.yml:

Bu, hostdan bir qovluğu quraşdırır / opt / geoserver / data_dir - konfiqurasiya məlumatlarını yazacaq yer geoserver olan. Əlavə olaraq db konteynerinə bir asılılıq təyin edirik - əncir, db xidmətinin geoserver konteynerindən əvvəl bükülməsini təmin edəcəkdir. Postgisdə bir pg məlumat mağazası yaratarkən verilənlər bazasına 'db' hostname kimi müraciət edə biləcəksiniz. Beləliklə, qablarımızı 'fig up' istifadə edərək yetişdirək (bu halda onları sadəcə http://hub.docker.com saytındakı kartoza şəkillər kolleksiyamızdan yükləyəcək). Çıxışı belə bir şey görəcəksiniz:

'-D' bayrağı xidmətləri arxa plana keçirir. Layihəni bu məqalədə istifadə etmək istəyirsinizsə, bu repoya baxa bilərsiniz: https://github.com/timlinux/geoserver-deploy. Xidmətiniz işlədikdən sonra edə biləcəyiniz digər şeylər üçün əncir sənədlərinə baxın - əncir, xidmətlər paketini tək bir əmrlə yuxarıya və ya aşağıya endirərək tək bir vahid kimi idarə etməyə imkan verir.

İşə saldıqdan sonra geoserver konteynerinin IP ünvanını belə tapa bilərsiniz:

IP ünvanına sahib olduqdan sonra veb brauzerinizdəki 8080 portuna qoşun, məsələn: http://172.17.0.5:8080 - sizə normal geoserver giriş ekranı təqdim etməlidir (istifadəçi: admin, parol: geoserver) .

Aşağıdakı ekran görüntüsündə əlaqə detalları üçün host 'db' və verilənlər bazası 'gis' istifadə edərək geoserver xidməti içərisindən postgis xidmətinə necə qoşula biləcəyimizi görə bilərsiniz.

Bunun kimi əsas bir memarlıq ilə daha mükəmməl arxitekturalar yaratmaq üçün digər doker xidmətlərinə qarışmağa başlaya bilərsiniz. Məsələn, btsync (https://registry.hub.docker.com/u/kartoza/btsync/) şəklimizə əlavə etməyi sınayın, belə ki GIS məlumat sənədlərini və geoserver konfiqurasiya sənədlərini fərqli hostlar arasında sinxronizasiya edə bilərsiniz. Bu, bir çox xidmətdə işləmək üçün xidmətlərinizi genişləndirmək üçün edə biləcəyiniz bir yanaşmadır - ya da işinizi yerli bir iş stansiyasında dizayn etməyinizə və bu dəyişikliklərin avtomatik olaraq serverinizə sinxronlaşdırılmasına imkan verəcəkdir. Xidməti tək bir serverdə böyütmək üçün əncirdən də istifadə edə bilərsiniz - əslində çoxsaylı nüsxə işləyən məsələn geoserver:

Daha sonra, docker ps-də işləyən 3 geoserver nümunəsini göstərəcəkdir:

Geoserverin qarşısına nginx proxy-si qoyarsanız, onda sadə bir yük balanslaşdırıcısı yaratmaq üçün geoserver nümunələri arasındakı robin istəklərini əldə edə bilərsiniz (baxmayaraq ki, bunun effektiv bir yol olub olmadığını görmək üçün geoserver sənədlərinə / icmasına müraciət etməyi məsləhət görərdim) bir geoserver xidmətini genişləndirmək üçün).

Docker istifadə etməklə xidmətlər yerləşdirdiyiniz həssaslığı və təkrarlanabilirliyi xeyli dərəcədə yaxşılaşdırmaq olar - və orada coğrafi məkan doker şəkillərinin sayı artmaqdadır - FOSSGIS-lə maraqlanırsınızsa, dokeri araşdırmaq sizin müddətinizə dəyər olacaq!


PostgreSQL üçün mümkün olan ən yaxşı PostGIS-i çalışdırdığınızdan əmin deyilsinizmi? Versiya uyğunluğumuza və EOL Siyasətimizə baxın.

PostGIS, GNU Ümumi İctimai Lisenziyası (GPLv2 və ya daha sonrası) altında buraxılır. Daha çox məlumat üçün Lisenziyaya dair suallara baxın. PostGIS, Layihə İdarəetmə Komitəsinin rəhbərlik etdiyi bir qrup iştirakçı tərəfindən hazırlanmışdır.

Nə baş verir indi

PostGIS 3.1.2

PostGIS Komandası, PostGIS 3.1.2-nin buraxılışından məmnunluq duyur!

Bu buraxılış əvvəlki 3.1 buraxılışında tapılan problemləri həll edən bir səhv düzəltmə versiyasıdır.

    , TopoGeometry :: həndəsə oyuncuları boş TopoGeometry obyektləri üçün NULL qaytarır (Sandro Santilli), postgispələnggeocoder Heç bir zip verilmədiyi zaman daha yaxşı cavablar verir (Regina Obe), daha mürəkkəb qarışıq koordinat sistemlərini idarə edin (Paul Ramsey), Yalnız eksen birinci sütun kimi & # 8220Lat & # 8221 olan CRS-lər üzərində hərəkət edir (Paul Ramsey)
  • Pj-ni silmiş son Proj versiyalarını dəstəkləyinalmaqsərbəst buraxma (Paul Ramsey), Geodeziya hesablamalarına qarşı tolerantlığı tənzimləmək (Paul Ramsey), Mənfi coğrafi azimutun pozitivə düzgün çevrilməməsi (Paul Ramsey), qeyd dəsti uzunluğu minPoints (Dan Baston) -ə bərabər olduqda DBSCAN klasteri yaranmayıb əlaqələndirmə dəyişiklikləri (Paul Ramsey), PostgreSQL 14 masa funksiyası dəyişiklikləri (Paul Ramsey, Regina Obe), mingw64 PostGIS / PostgreSQL 14 tərtibatı (Regina Obe, Tom Lane), Tiger 2020 (Regina Obe), Change Proj cache ömrü əlaqə olduğu müddətə qədər davam edəcək (Paul Ramsey), Pg14 qurma dəstəyi əlavə edin (Paul Ramsey)

PostGIS 3.1.1

PostGIS Team, PostGIS 3.1.1-in buraxılışından məmnunluq duyur!

Bu buraxılış əvvəlki 3.1 buraxılışında tapılan problemləri həll edən bir səhv düzəltmə versiyasıdır.

    , Yalnız boş komponentləri olan kolleksiyanı ST_MakeValid-ə ötürmək, VSICURL sintetik sürücüsünü sənədləşdirilmiş şəkildə işlədin, ST_MakeValid-dən qeyri-sabit nəticələr, Fərqli kolleksiyalarda eyni həndəsə siyahısından çəkinin.

PostGIS 3.1.0

PostGIS Team, PostGIS 3.1.0-ın buraxılışından məmnunluq duyur!

Bu versiya, GEOS 3.9-un yeni xüsusiyyətlərini və məkan birləşmələri, geniş obyekt giriş, mətn formatı çıxışı və s. Üçün çoxsaylı əsas performans inkişaflarını ortaya qoyur.

Performans, məkan birləşmələri, mətn çıxışları, böyük obyekt oxunuşları, vektor kafel çıxışı və bir çox kiçik düzəlişlər ilə təkmilləşdirmələrlə bu buraxılışın əsas xüsusiyyətidir.

K-orta qruplaşdırma kodu ağırlıq və daha yüksək ölçülü qrupları dəstəkləmək üçün artırılmışdır.

Altıbucaqlı və kvadrat örtüklər yaratmaq üçün həndəsə generatorları daha asan verilənlər bazasında xülasə sorğuları üçün əlavə edilmişdir.

Nəhayət, PostGIS, GEOS həndəsə kitabxanası 3.9 versiyasındakı son inkişafları ortaya qoyur. Yeni örtük mühərriki (aka & # 8220OverlayNG & # 8221) həndəsəni işləmək üçün bir sıra yeni işarələmə strategiyalarından istifadə edərək çətin giriş həndəsələrinin daha möhkəm idarə olunmasını təmin edir. Son istifadəçi üçün bu birləşmə, fərq, kəsişmə və ya simmetrik fərq funksiyalarından istifadə edilərkən artıq & # 8220topoloji istisnaları & # 8221 demək olmaz. PostGIS, ST_Intersection və digər örtükləmə funksiyalarındakı əlavə bir ızgara ölçüsü parametri ilə yeni sabit dəqiqlik üstü örtmə qabiliyyətini də ortaya qoyur.

PostGIS 3.1.0rc1

PostGIS Komandası, yaxınlaşan PostGIS 3.1.0 buraxılışının namizəd namizədini təqdim etməkdən məmnundur. Bu versiya, GEOS 3.9-dakı bəzi yeni performans və xüsusiyyət inkişaf etdirmələrinin və daha yeni GEOS tələb etməyən çoxsaylı sürət inkişaflarının ifşasıdır.


Geoserver Postgres Konfiqurasiyası - Coğrafi İnformasiya Sistemləri

Müştərilərimizin ehtiyaclarını ödəmək üçün keyfiyyətli bir həll yolu tapmaq üçün çalışmağa çalışırıq.

Sertifikatlı və AWS mühitində düzgün həll və dəstək təmin etməkdə təcrübəlidir.

Elastik Bulud Hesablama (EC2)

Rasional Verilənlər Bazası Xidməti (RDS)

Sadə bildiriş xidmətləri

Sadə Saxlama Xidməti (S3)

Resurs statistikasını izləmək və boş vaxtları məhdudlaşdırmaq üçün 7/24 monitorinq xidmətlərini yerləşdirin və konfiqurasiya edin.

Tədbirləri və əməliyyatları dəstəkləmək üçün ümumi bir əməliyyat şəkli yaratmaq üçün GIS və veb Xəritəçəkmə üsullarından istifadə etmək.

Tətbiq, verilənlər bazası və digər xidmətlərin yerləşdirilməsi üçün bir xidmət olaraq İnfrastrukturu təmin etmək üçün AWS mühitini tərk edin.


Videoya baxın: base de données foncière geoserver, leaflet, postgis (Oktyabr 2021).