OpenLayers'ta PostGIS rasterlerini görüntüleme seçenekleri


12

Bu soru, bir web haritasında vektör verilerinin görüntülenmesiyle ilgili daha önceki bir soruya benzer . OpenLayers kullanan ve şu anda PostGIS'te bulunan goster gibi bir temel harita kullanarak raster verilerini görüntüleyebilen temel bir web arayüzüne sahip olmak istiyorum. Raster kütüphanesi ile PostGIS2.0'ı yükledim ve belgelerden JPEG, GeoTIFF ve PNG gibi veri çıkışı için çeşitli seçenekler olduğunu gördüm . Kullanmak için önerilen bir format mı?

Vektör verilerini görüntülemek için şu anda kullanıcının tarayıcısından sunucuma koordinatlar göndermek için javascript kullanıyorum ve sonra PostGIS üzerinde PHP / SQL kullanarak bir sorgu gerçekleştiriyorum. Sonuçlar daha sonra temel harita üzerine yerleştirilebilen GeoJSON olarak döndürülür. Benzer bir yaklaşımın rasterler kullanılarak uygulanıp uygulanamayacağını merak ettim ama hangi raster formatının en iyi olduğunu bilmiyorum ya da dikkate almam gereken başka kısıtlamalar varsa.

GeoServer referansları çok gördüm ama bu proje için gerekli olup olmadığından emin değilim (GeoServer ne zaman kullanılacağını veya kullanılamayacağını tamamen emin değilim).

Yanıtlar:


13

Rasterların olan görüntüleri en iyi biçimi bir görüntü formatı (png / jpg / vs) olacak, böylece. Geojson vektörler için iyi bir formattır. Diyelim ki, facebook profil resminiz saf json olarak geri aktarılamaz. Tabii ki, bir url'yi json olarak bir görüntüye döndürmek çok farklı :)

Jpeg vs png vs başka bir görüntü formatı tartışmasına göre, bu konuda tonlarca farklı görüş var . Burada kaybolan şey, bazı görüntü formatlarının kayıpsız , bazılarının ise kayıplı olmasıdır . Kararınız verilerle ne yapacağınıza bağlıdır. Analiz için muhtemelen kaybolmaya tahammül edemeyebilirsiniz, ancak web'de bir şeyler görüntülemek için yapardınız.

PostGIS 2.0 görüntü oluşturabilir mi? Elbette. Bak Raster çıkış bölümüne.

Bu iyi bir fikir mi? Bu gerçekten gerçekten ne yaptığınıza bağlıdır. Bazen görüntü oluşturmak gerçekten çok uzun zaman alabilir ve bunları bir web ortamı üzerinden istediğiniz her seferinde oluşturma ücretini ödememek için önbelleğe almak istersiniz. PostGIS tarafında yapabileceğiniz tek "önbellekleme" sonuçları farklı bir tabloya kaydetmek ve daha sonra gerektiğinde tabloyu sorgulamaktır. Geoserver bunu yapmak için tüm bir altyapıya ( GeoWebCache ) sahiptir.

Yapmanız gerek GeoServer, muhtemelen - ama çok daha kolay kullanarak tüm verilerinizi ortaya bu ortakatmanını varken hayat kılan OGC web hizmetleri , önbelleğe alma yapar , vektör ve raster ait stil bir sürü şey daha .


PostGIS kullanarak nasıl görüntü oluşturacağımı anlıyorum - anlamaya çalıştığım şey Openlayers'a yüklemenin en iyi yolu. Örneğin, ST_AsPNG () kullanıyorsam - yine de bu görüntünün konumlandırıldığı üst ve alt koordinatları belirlemem gerekecek. Doğrudan openlayers (geoserver kullanmak dışında) içine yükleyebilirsiniz bağımsız bir görüntü döndürülmüş düzgün bir yol olabilir düşündüm.
djq

Evet, doğrudan st_aspng'den openlayers'a yükleyebilirsiniz, ancak ekstra çalışma gerektirecektir. Daha sonra bbox'ı takip etmeniz ve yüklediğinizde özellikle dev.openlayers.org/apidocs/files/OpenLayers/Layer/Image-js.html Güven bana, bu uzun yoldur. Geoserver veya mapserver'ın bunu yapmasına izin vermek daha iyidir. Size WMS / WMTS'yi geri verir ve onu açık katmanlara eklemek için iki kod satırı kullanırsınız.
Ragi Yaser Burhum

4

Mapserver verilir temel kurulum için PostGIS raster ve yön için desteği vardır burada (öğe 9.9).

Sizin durumunuzda Mapserver'ı bir WMS sunucusu olarak çalışacak şekilde ayarlayacaksınız, böylece Postgis rasterlerini normal WMS katmanları olarak döndürecektir. Bu durumda, katmanları bir WMS katman nesnesi kullanarak OpenLayers haritanıza eklemek neredeyse önemsizdir .

Bu tür bir çözüm muhtemelen en iyi seçeneğinizdir, çünkü hepsi OpenSource yazılımına dayanmaktadır, kanıtlanmış bir yığın ve kapsamlı ara katman yazılımı gerektirmez. Tüm mapserver ihtiyaçları cgi betikleri çalıştırabilen bir web sunucusu (muhtemelen php için zaten kullandığınız apache tamam). Performans kritik bir sorun değilse, (döşeme) önbellek kullanmaktan kaçınabilir ve sadece harita sunucusunun katmanları her seferinde anında oluşturmasını sağlayabilirsiniz.

Sunucu yükünü en aza indirmek ve yanıt sürelerini iyileştirmek için döşemeleri önbelleğe almak istiyorsanız mapcache veya tilecache kullanmayı düşünün . MapCache Mapserver daha genç bir kardeş projesi olmakla gerektiğini bir apache modülü olarak çalışan diğer tüm önbelleklerini daha üstündür.

Ubuntu kullanıcıları için Mapserver'ın bağımlılıklarını kurmanın en kolay yolu sisteminize Ubuntu GIS PPA eklemektir .


Mapserver kesinlikle GeoServer'dan harika bir alternatif (diğer bazı projeler için kullanıyorum). Genellikle, müşterilerim için geoserver seçiyorum çünkü kullanımı kolay bir arayüze sahip. Yine de, karo önbellekleri sunmanın statik içerik sunduğunu ve nginx (veya herhangi bir engellemeyen herhangi bir sunucu) tabanlı herhangi bir çözümün, işlem tabanlı yalıtım veya iş parçacığı modunda herhangi bir apache çözümünden çok daha hızlı olacağını belirtmek istedim.
Ragi Yaser Burhum

Teşekkürler @unicoletti. Kullanıcılar sorgusuna göre raster oluşturmak istersem Mapserver'ı kullanabilir miyim? Örneğin, kullanıcıların herhangi bir alanı (belirli bir sınır dahilinde) belirtmesine izin verirsem, o alanın uzamsal sorgusunu yapmamı sağlar mı?
djq

@celenius Mapserver ve GeoServer bunu yapmanıza izin verecektir.
Ragi Yaser Burhum

1
@RagiYaserBurhum Mapcache'i diğer önbelleklerle karşılaştırıyorum. Statik döşemeler kesinlikle bir önbellek konuşmuyor.
unicoletti

0

Her şey bağlıdır. Görüntü boyutu, önbellekleme, kullanılabilir kitaplıklar (örneğin bazı tescilli jp2k sürücüleri).

İşte harika bir pdf bağlantısı , steroidler üzerinde Geoserver. Bu sizi çeşitli formatlar, artıları ve eksileri ve bazı temel kurulumlar boyunca yönlendirecektir.

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.