WMS kullanarak Geoserver'da Kayıp Nokta Özellikleri


10

WMS kullanarak Geoserver 2.2.1 ile hizmet vermeye çalışıyorum dünya çapında yaklaşık 6.500 puan ile bir şekil dosyası var. Broşür kullanan istemci uygulamamda bir filtreleme özelliği uygulayana kadar her şey onunla iyi görünüyor. WMS sorgusuna bir CQL_FILTER (özellik filtresi, uzamsal değil) eklediğimde, uzaklaştırdığımda eksik özellikleri fark ettim. Tekrar yakınlaştırdığımda bazen tekrar ortaya çıkıyorlardı, ama her zaman değil. Aşağıdaki resme bakın -

Yan yana karşılaştırma

Soldaki yakınlaştırma düzeyinde Atlanta görüntülenmiyor. Yakınlaştırdığımda, öyle. Ancak, bazen Tampa'daki nokta bile soldaki yakınlaştırma düzeyinde görüntülenmez. 3 seviye daha uzaklaştırırsam, hiçbir nokta gösterilmez. Sorunun CQL_FILTER parametresi olduğundan emin değilim, 6.500 puanla küresel ölçekte birkaç eksik noktayı fark etmek zor, ancak burada gösterdiğim belirli filtre sadece 3 özelliğe kadar filtreliyor ve ne zaman 1 ila 3 tanesi özellikle yakınlaştırma seviyesine bağlı olarak eksik.

Aynı davranışı gelişmiş harita seçeneklerinde CQL Filtresini kullanarak geoserver'ın kendi katman önizlemesinde yeniden oluşturabilirim, bu yüzden istemci uygulamam olmadığından oldukça eminim.

Bu sorunu ayıklamada kendi adımlara gelince, kendi katman stilimi dışlamak için varsayılan Points stili / sld dosyasını denedim. Farkında olduğum tüm önbelleği kapattım. Projeksiyonlarımın doğru olduğunu iki kez kontrol ettim - projeksiyon olarak WGS_1984_Web_Mercator_Auxiliary_Sphere kullanarak ArcGIS 10'da şekil dosyasını oluşturdum ve katman geoserver'da EPSG: 3857 olarak ayarlandı, ki bu eşdeğer olduğunu düşünüyorum. Ayrıca geoserver 2.2'den 2.2.1'e yükseltme yaptım ve her ikisinde de aynı sorunu yaşadım. Ayrıca geoserver'ın uzamsal dizin dosyasını (.qix) sildim ve Arc'da bozuk uzamsal dizinlerle benzer sorunlar gördüm, ancak açıkçası bu da işe yaramadı.

Burada, CQL Filtresi açık ve yukarıda gösterilenle aynı alana yakınlaştırılmış Geoserver'ın kendi katman önizlemesinden bir anlık görüntü. Kırmızı daire yaklaşık olarak başka bir nokta görmem gereken yerdedir (Atlanta).

Openlayers Örneği

Aklıma gelen her ayarı değiştirmeye çalıştım, ama şansım yok. Ayrıca geoserver günlükleri yukarı ve aşağı baktı ve ayrıntılı günlük kaydı etkinleştirdim ve herhangi bir hata / istisna görmüyorum. Chrome'un geliştirici araçlarında da kötü bir istek görmüyorum.

Herhangi bir kritik bilgiyi kaçırırsam, elimden geleni yapacağım, ancak bu dahili / halka açık olmayan bir uygulamadır.


1
Bariz olanı dışlamak: Herhangi bir şansla, ölçeğe bağlı stiller var mı? (yani bir nokta yalnızca belirli ölçekler arasında görüntülenir)
unicoletti

1
VENUE_TYPE içindeki değerlerin geçerli / tutarlı olduğunu doğrulayabilir misiniz? Gördüğünüz tutarsız sonuçlar, özelliklerin farklı bir sırayla döndürülmesinden kaynaklanıyor olabilir (bbox'taki küçük farklılıklar nedeniyle) ve bunlardan biri bir şekilde 'kötü' olduğundan, işlemenin Atlanta'ya çarpmadan önce durmasına neden olabilir. Verilerinizi farklı bir formata aktarmayı test etmek daha sonra 1) beklendiği gibi taşınan her şeyi kontrol etmek ve daha sonra 2) filtrenizi /
renderinizi

1
@unicoletti Ekran görüntüsünde görüntülenen katman üzerinde ölçek bağımlılıkları var, ancak Geoserver tarafından sağlanan, ölçek bağımlılıkları olmayan varsayılan 'nokta' stilini kullandığımda aynı sonucu görüyorum, aynı ölçeklerde aynı ölçeklerde kaybolan noktaların aynısını görüyorum .
MWrenn

1
@tomfumb VENUE_TYPE sütunundaki değerlere baktım ve ara sıra ileri eğik çizgi '/' veya "ve" ve '&' hariç hepsi İngilizce alfasayısal. Eğik çizgiler ve "ve" işaretler ile kayıtları çıkaracağım ve bunun bir fark yaratıp yaratmadığını göreceğim. Bir yan not olarak, bu şekil dosyasının DBF'si geoserver'da da ayarladığım UTF-8'de kodlanmıştır. Bu bir fark yaratabilir mi?
MWrenn

4
@MWrenn Bu yüzden bir cevap girişiminde bulunmayacağımdan emin değilim, ancak verileri başka bir formata aktarmak, mevcut deponun / formatın sorun olup olmadığını belirlemeye yardımcı olacaktır. Belki de Shp'nizi ArcMap veya QGIS'de açmayı, alanı örneğinizin bbox'ıyla sınırlandırmayı ve ardından içerilen özelliklerin özelliklerini kontrol etmeyi deneyin - bunlar kodlamadan etkilenebilecek özel karakterler içeriyor mu?
tomfumb

Yanıtlar:


1

Uyguladığım "çözüm" shp2pqsql kullanarak bir CGF Filtresi kullanırken kaybolan nokta özelliklerini çözen şekil dosyalarını bir postGIS veritabanına aktarmaktı. Aynı CQL filtre isteğini yapabilir ve şimdi tüm yakınlaştırma seviyelerinde tüm noktaları görebilirim. Daha sonra şekil dosyaları yerine postGIS veritabanını güncellemek için birkaç otomatik işlemi değiştirmek zorunda kaldım, ancak sadece birkaç saat sürdü.

Hala kaybolan nokta özelliklerinin kök nedeninden emin değilim. Her seferinde aynı kesin sonuç ile farklı projeksiyonlar ve şekil dosyası yazarları (QGis, ESRI, şekil dosyası.py veya pyShape vb.) Denedim. Geoserver konusunda uzman değilim, bu yüzden bir hata olarak adlandırmaktan çekiniyorum ve muhtemelen kurulumum için özel bir şey, ancak 2.2 ve 2.2 çalıştıran iki farklı geoserver bilgisayarında çalışan iki farklı örnekte çoğaltabiliyordum. 1, her ikisi de Windows'da (One Xp, Server 2003'te).

Kaynak şekil dosyalarını da gönderemiyorum, bu yüzden kök neden bir gizem olarak kalacak.

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.