Apa cara tercepat (dari segi kinerja) untuk melayani fitur PostGIS?

12

Saya tertarik dengan cara tercepat untuk melayani fitur PostGIS. Saya dapat menemukan beberapa perbaikan dan alternatif WMS (MapProxy, TileCache, Mapnik ...) tetapi tidak begitu banyak perbaikan dan alternatif Open Source WFS. Saya tidak tertarik dengan ubin, tetapi pada poligon di atas lapisan dasar saya. Disajikan dengan cepat.

Bisakah Anda tolong saya arahkan ke arah yang benar?


Memperbarui:

Saya lupa menyebutkan bahwa aplikasi saya menunjukkan informasi kadaster. Dan poligon kadaster harus dapat dipilih (tidak dapat diedit, mereka hanya disorot ketika Anda mengkliknya).

Saya menggunakan sekarang campuran WMS + Django menghasilkan objek GeoJSON ketika pengguna mengklik pada bagian peta, untuk menghindari situasi seperti ribuan poligon pada saat yang sama di klien (OpenLayers).

Saya tidak tahu apakah saya berada di jalan yang benar (haruskah saya menghindari situasi yang berpotensi sulit seperti ribuan pol di klien dengan merendernya melalui WMS atau solusi lain? Apakah saya harus memperbaiki cara poligon dilayani?)

Jorge Arévalo
sumber
1
Perangkat keras apa yang Anda miliki?
Mapperz
Ubuntu 10,04 32 bit RAM 512 MB, berjalan di bawah Server VMWare. Ini mesin pengembangan, tapi saya belum punya akses ke yang lain. Ini seharusnya bekerja dengan cukup baik di sini (syarat)
Jorge Arévalo

Jawaban:

6

GeoServer menyediakan pengaturan pengguna untuk mengontrol jumlah tempat desimal dalam geometri yang diletakkan di sana untuk mempercepat penyajian WFS.

Pastikan juga server mengompresi output hanya jika klien Anda dapat mengompresnya secara efisien.

Akhirnya saya mendengar hal-hal baik tentang OWS kecil dalam hal kecepatan.

Ian Turton
sumber
Saya pernah mendengar tentang OWS kecil tetapi tidak pernah menggunakannya. Terima kasih atas sarannya!
Jorge Arévalo
6

Caching WFS mungkin sesuai dengan kebutuhan Anda. Sejauh yang saya tahu, ada dua solusi open source yang menyediakan caching WFS: TileStache dan GeoWebCache .

Di halaman utama TileStache, bagian fitur dikatakan "Menghasilkan ubin vektor dari sumber data OGR di GeoJSON yang dapat digunakan di Polymaps"

GeoWebCache memiliki beberapa kemampuan caching WFS sejak versi 1.1.0 (yang sekarang 1.2.6):

GeoWebCache 1.1.0 (akhirnya) dirilis

...

1.c caching WFS Dasar GeoWebCache 1.1.0 mendukung caching WFS yang sangat dasar. Hasil dari pertanyaan disimpan ke disk, saat ini tidak ada fungsi untuk memeriksanya atau menghapusnya secara terprogram. Algoritme mengandalkan hash yang dihitung dan tidak memeriksa keunikan, sehingga ada peluang kecil untuk tabrakan. Motivasi untuk pengembangan ini adalah format output SHP-ZIP (zip zip) di GeoServer. File-file ini bisa sangat besar dan sangat mahal untuk dihitung. Layanan WFS ini, dalam kondisi saat ini, tidak dimaksudkan untuk digunakan untuk kasus yang lebih rumit.

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

Sayangnya saya belum pernah bekerja dengan TileStache dan GeoWebCache, jadi saya tidak bisa berbagi pengalaman tentang caching WFS.

dariapra
sumber
Terima kasih. Saya sedang mempertimbangkan 2 opsi: render poligon saya dan sajikan melalui WMS + cache (ada jutaan, mungkin terlalu banyak untuk klien ...) atau coba sajikan poligon saya melalui cache WFS +. Saya sedang bekerja dengan opsi pertama sekarang.
Jorge Arévalo
1
Saya merekomendasikan opsi pertama (rendering WMS di sisi server + cache). Opsi WFS menyiratkan bahwa rendering akan dilakukan di sisi klien. Dalam pengalaman saya ini adalah masalah bagi pengguna yang memiliki browser web atau komputer lama, variabel yang tidak dapat Anda kontrol.
dariapra
3

Saya sedang mengembangkan web-gis besar, saya bekerja dengan banyak data (sekitar 700.000 fitur per lapisan) Satu-satunya solusi adalah yang Anda lakukan, WMS untuk merender fitur dan WFS untuk mendapatkan info fitur. Apa yang saya lakukan (dengan kinerja baik) adalah:

  • Geoserver (dengan perpustakaan JAI asli )
  • Ketika pengguna mengklik peta, getfeatureinfo wms digunakan untuk mendapatkan informasi (baik bentuk dan data) dari fitur yang dipilih (di sini Anda harus menerapkan beberapa fungsi penyaringan, jika Anda memiliki fitur yang tumpang tindih)
  • Hasil getFeatureInfo ditambahkan sebagai fitur pada layer lain untuk mensimulasikan "highlight selection"
Tommaso
sumber
Terima kasih! Proyek itu akhirnya dibatalkan, tetapi saya pikir solusi Anda bagus.
Jorge Arévalo