Filtre Parametreleri URL aracılığıyla GeoServer WFS'ye aktarılıyor mu?


17

Bir GeoServer örneğinden geoJSON bilgilerini almak için PHP'nin CURL işlevini kullanmaya çalışıyorum. Bunu tam xml GetFeature isteği oluşturmaya çalışmak yerine url değişkenlerini kullanarak yapıyorum.

Ancak, bazı özellik alanlarının içeriğine dayalı sonuçların bir alt kümesini almak istiyorum.

Yani, ben bu url kullanarak tüm sonuçları alabilirsiniz iken:

http://www.myURL.com/geoserver/namespace/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=layername&outputFormat=json&BBOX=1,2,3,4

sonuçları "Alan LIKE değeri" veya "field = değer" ile de sınırlayabilir miyim?

Geoserver / ECQL belgeleri ile trol bir saat geçirdim ve hiçbiri açıkça "fonksiyonları bu biçimde URL'nize ekleyin" belirtir. Sonuç olarak, bu görevleri gerçekleştirmek için url değişkenlerini kullanmak mümkün olup olmadığından emin değilim, ancak bazı insanlar bunu öneriyor gibi görünüyor.

URL parametreleriyle GeoServer'ın WFS'sini kullanarak açık bir çalışma filtresi örneğine kimse yardımcı olabilir mi?

Yanıtlar:


25

Sanırım şu http://docs.geoserver.org/latest/en/user/tutorials/cql/cql_tutorial.html

Burada, Boundless demo sunucusu için sorgular gönderen ancak demo katmanı topp: durumları yüklüyse kendi sunucunuzla benzer şekilde çalışması gereken bazı örnek istekler gelir.

STATE_NAME adlı yerin Illinois olduğunu seçin

http://demo.opengeo.org/geoserver/wfs?service=wfs&version=1.0.0&request=getfeature&typename=topp:states&PROPERTYNAME=STATE_NAME&CQL_FILTER=STATE_NAME='Illinois'

Burada çıkışı kısaltmak için kullanılan standart WFS parametresi PROPERTYNAME kullanıldığına dikkat edin. Tüm nitelikleri istiyorsanız, dışarıda bırakın veya bazı nitelikleri seçmek için bir liste yazın.

Ardından "I" ile başlayan ada sahip durumları seçin

http://demo.opengeo.org/geoserver/wfs?service=wfs&version=1.0.0&request=getfeature&typename=topp:states&PROPERTYNAME=STATE_NAME&CQL_FILTER=STATE_NAME LIKE 'I%25'

Karşılaştırma dizesinin '% 1' olduğuna dikkat edin ancak en azından tarayıcımla (Firefox 31.0) URL kodlamalı olması gerekir ve '% 25' gelir. Bu CQL eğitiminde belirtilmemiştir. Kendi filtreleriniz başarısız olursa, filtrenizdeki diğer bazı karakterleri de URL kodlamanız gerektiği anlamına gelebilir.

Geojson'a ihtiyacınız varsa add & outputformat = application / json

http://demo.opengeo.org/geoserver/wfs?service=wfs&version=1.0.0&request=getfeature&typename=topp:states&PROPERTYNAME=STATE_NAME&CQL_FILTER=STATE_NAME LIKE 'I%25'&outputformat=application/json

10
Bununla mücadele eden herkes için, biçimi kullanarak URL'ye birden fazla CQL filtresi de ekleyebilirsiniz &CQL_FILTER=field=value AND field=value AND field=value- ancak boşlukların kodlanması için URL'yi "VE" olarak kodlamanız gerekir. Umarım bu zamandan tasarruf etmenize yardımcı olur.
Ambulare

Çok yararlı bir cevap, geoserver öğretici sadece çok şey bırakıyor. XY koordinatları olan özelliği döndürmek için sorguyu nasıl genişletirsiniz? Veya bir sınırlayıcı kutunun içindeki tüm özellikler?
17'de Luffydude
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.