PostGIS özelliklerine hizmet vermenin en hızlı (performans açısından) yolu nedir?


12

PostGIS özelliklerinin en hızlı şekilde sunulmasıyla ilgileniyorum. Birkaç WMS iyileştirmesi ve alternatifi (MapProxy, TileCache, Mapnik ...) bulabilirim, ancak pek çok WFS Açık Kaynak iyileştirmesi ve alternatifi bulamıyorum. Fayanslarla ilgilenmiyorum, ancak taban katmanımdaki çokgenlerle ilgileniyorum. Hızlı servis.

Lütfen doğru yönü gösterebilir misiniz?


Güncelleme:

Uygulamamın kadastro bilgilerini gösterdiğini belirtmeyi unuttum. Ve kadastro çokgenleri seçilebilir olmalıdır (düzenlenebilir değil, sadece üzerlerine tıkladığınızda vurgulanır).

Şu anda kullanıcı aynı anda binlerce poligon gibi istemcilerde (OpenLayers) durumlardan kaçınmak için kullanıcı haritanın bir bölümünü tıkladığında WMS + Django üreten bir karışımını kullanıyorum.

Doğru şekilde olup olmadığımı bilmiyorum (WMS veya başka bir çözüm aracılığıyla istemcide binlerce pol gibi potansiyel olarak zor durumlardan kaçınmalı mıyım? Çokgenlerin sunulma şeklini iyileştirmeli miyim?)


1
Hangi donanıma sahipsiniz?
Mapperz

Ubuntu 10.04 Bir VMWare Sunucusu altında çalışan 32 bit 512 MB RAM. Bu bir geliştirme makinesi, ancak henüz başka bir makineye erişimim yok. Burada oldukça iyi çalışmalı (bir zorunluluk)
Jorge Arévalo

Yanıtlar:


6

Geometrileri basitleştirmeye ne dersiniz?

http://www.bostongis.com/postgis_simplify.snippet

/programming/1849928/how-to-intelligently-degrade-or-smooth-gis-data-simplifying-polygons

Ya da belki WFS, basitleştirilmiş özelliklere sahip WFS ve WMS'nin bir kombinasyonu?


Kulağa iyi geliyor. Şu anda polleri oluşturuyorum ve onlara WMS aracılığıyla hizmet veriyorum. Müşteri aynı anda milyonlarca çokgenle başa çıkmayacağını düşünüyorum, ama yanılıyor olabilirim ...
Jorge Arévalo

6

GeoServer, WFS sunumunu hızlandırmak için oraya yerleştirilen geometrilerdeki ondalık basamak sayısını kontrol etmek için bir kullanıcı ayarı sağlar.

Ayrıca, sunucunun çıktıyı yalnızca istemciniz etkin bir şekilde sıkıştırabiliyorsa sıkıştırdığından emin olun.

Sonunda küçük OWS hakkında hız açısından iyi şeyler duydum.


Küçük OWS duydum ama hiç kullanmadım. Öneri için teşekkürler!
Jorge Arévalo

6

WFS önbellekleme ihtiyaçlarınıza uygun olabilir. Bildiğim kadarıyla, WFS önbellekleme sağlayan iki açık kaynaklı çözüm var: TileStache ve GeoWebCache .

TileStache ana sayfasında, özellikler bölümünde "Polymaps'te kullanılabilen GeoJSON'da OGR veri kaynaklarından vektör karoları oluşturur"

GeoWebCache, 1.1.0 sürümünden bu yana bazı WFS önbellekleme özelliklerine sahiptir (geçerli olan 1.2.6'dır):

GeoWebCache 1.1.0 (sonunda) yayınlandı

...

1.c Temel WFS önbelleğe alma GeoWebCache 1.1.0 çok temel WFS önbelleğe almayı destekler. Sorguların sonuçları diske depolanır, şu anda bunları denetlemek veya programlı olarak kaldırmak için hiçbir işlev yoktur. Algoritma hesaplanmış karmaları temel alır ve benzersiz olup olmadığını kontrol etmez, bu nedenle çarpışmalar için bir dakika şans vardır. Bu gelişme için motivasyon GeoServer'daki SHP-ZIP (sıkıştırılmış şekil dosyası) çıktı biçimidir. Bu dosyaların hesaplanması büyük ve pahalı olabilir. Bu WFS hizmetinin şu anki durumunda daha karmaşık durumlar için kullanılması amaçlanmamıştır.

http://old.nabble.com/GeoWebCache-1.1.0-(finally)-released-td22870524.html

Ne yazık ki ne GeoWebCache TileStache ile hiç çalışmadım, bu yüzden WFS önbellekleme hakkında herhangi bir deneyim paylaşamıyorum.


Teşekkürler. Ben 2 seçenek düşünüyorum: çokgenlerimi render ve onlara WMS + önbellek (milyonlarca var, belki müşteri için çok fazla ...) ile hizmet veya çokgenlerimi WFS + önbellek ile hizmet etmeye çalışın. Şu anda ilk seçenekle çalışıyorum.
Jorge Arévalo

1
İlk seçeneği öneririm (sunucu tarafında + önbellekte WMS oluşturma). WFS seçeneği, oluşturma işleminin istemci tarafında yapılacağını belirtir. Deneyimlerime göre bu, eski web tarayıcılarına veya bilgisayarlara sahip olan ve kontrol edemediğiniz bir değişken olan kullanıcılar için bir sorundur.
dariapra

3

Büyük bir web-gis geliştiriyorum, çok fazla veri ile çalışıyorum (katman başına yaklaşık 700.000 özellik) Tek çözüm, yaptığınız çözümdür, özellikleri oluşturmak için WMS ve özellik bilgilerini almak için WFS. Ne yapıyorum (iyi performans ile):

  • Geoserver ( yerel JAI kütüphanesi ile)
  • Kullanıcı haritayı tıkladığında, seçilen özelliğin bilgisini (hem şekil hem de veri) almak için bir wms getfeatureinfo kullanılır (burada üst üste binen özellikleriniz varsa, bazı filtreleme işlevi uygulamanız gerekir)
  • GetFeatureInfo sonucu, "seçim vurgusunu" taklit etmek için başka bir katmana özellik olarak eklenir

Teşekkürler! Proje sonunda iptal edildi, ancak çözümünüzün iyi olduğunu düşünüyorum.
Jorge Arévalo

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.