URL के माध्यम से GeoServer WFS में फ़िल्टर पैरामीटर पास करना?


17

मैं जियोसर्वर उदाहरण से जियोजन्स जानकारी प्राप्त करने के लिए PHP के CURL फ़ंक्शन का उपयोग करने का प्रयास कर रहा हूं। मैं एक पूर्ण xml GetFeature अनुरोध के निर्माण के बजाय url चर का उपयोग कर रहा हूँ।

हालांकि, मैं कुछ संपत्ति फ़ील्ड की सामग्री के आधार पर परिणामों का सबसेट प्राप्त करने में सक्षम होना चाहूंगा।

इसलिए, जब मैं इस url का उपयोग करके सभी परिणाम प्राप्त कर सकता हूं:

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

क्या मैं "जहाँ LIKE मान" या "फ़ील्ड = मान" के परिणामों को सीमित कर सकता हूँ?

मैंने जियोसर्वर / ECQL प्रलेखन के माध्यम से एक घंटे की यात्रा बिताई है और इसमें से कोई भी स्पष्ट रूप से नहीं बताता है "इस प्रारूप में आपके URL के कार्यों को संलग्न करता है"। नतीजतन, मैं स्पष्ट नहीं हूं कि अगर इन कार्यों को करने के लिए url चर का उपयोग करना संभव है, लेकिन कुछ लोग यह सुझाव देते हैं कि यह है।

क्या कोई भी URL पैरामीटर के साथ GeoServer के WFS का उपयोग करके एक कार्यशील फ़िल्टर के स्पष्ट उदाहरण के साथ मदद कर सकता है?

जवाबों:


25

मुझे लगता है कि आप यह http://docs.geoserver.org/latest/en/user/tutorials/cql/cql_tutorial.html पढ़ रहे हैं

यहां कुछ नमूना अनुरोध हैं जो असीम के डेमो सर्वर के लिए प्रश्न भेज रहे हैं, लेकिन जो आपके अपने सर्वर के साथ उसी तरह से काम करना चाहिए यदि आपके पास डेमो लेयर टॉप: स्टेट्स स्थापित है।

वह स्थान चुनें जहां STATE_NAME इलिनोइस है

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'

मानक WFS पैरामीटर PROPERTYNAME के ​​उपयोग पर ध्यान दें, जिसका उपयोग आउटपुट को छोटा करने के लिए यहां किया जाता है। यदि आप सभी विशेषताएँ चाहते हैं या कुछ विशेषताओं का चयन करने के लिए एक सूची लिखें, तो बाहर निकलें।

फिर "I" से शुरू होने वाले नाम के साथ राज्यों का चयन करें

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'

ध्यान दें कि तुलना स्ट्रिंग 'I%' है, लेकिन कम से कम मेरे ब्राउज़र (फ़ायरफ़ॉक्स 31.0) के साथ यह URL-एनकोडेड होना चाहिए और यह 'I% 25' आता है। CQL ट्यूटोरियल में इसका उल्लेख नहीं किया गया है। यदि आपके स्वयं के फ़िल्टर विफल हो जाते हैं तो इसका मतलब यह हो सकता है कि आपको अपने फ़िल्टर में URL-एनकोड अन्य कुछ अन्य वर्ण भी होने चाहिए।

यदि आपको जियोजोन ऐड और आउटपुटफॉर्मैट = एप्लिकेशन / जसन की आवश्यकता है

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
इसके साथ संघर्ष करने वाले किसी अन्य व्यक्ति के लिए, आप प्रारूप का उपयोग करके URL में कई CQL फ़िल्टर जोड़ सकते हैं &CQL_FILTER=field=value AND field=value AND field=value- लेकिन आपको URL को "AND" एन्कोड करना होगा ताकि रिक्त स्थान एन्कोडेड हो। आशा है कि यह किसी और समय को बचाने में मदद करता है।
अंबुलारे

बहुत उपयोगी जवाब, जियोसर्वर ट्यूटोरियल बस इतनी सारी चीजें छोड़ देता है। XY निर्देशांक वाले सुविधा को वापस करने के लिए आप क्वेरी का विस्तार कैसे करेंगे? या एक बाउंडिंग बॉक्स के अंदर सभी विशेषताएं?
लफूडेउड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.