जियोसर्वर WMS में बड़े डेटासेट कैसे फ़िल्टर करें?


12

वहाँ Geoserver में लगभग 50,000 सुविधाओं के साथ डेटासेट को फ़िल्टर करने का एक अच्छा तरीका है? मुझे आईडी के आधार पर 100 और 200 सुविधाओं के बीच चयन करना होगा। ये आईडी फीचर आईडी से अलग हैं। OGC फ़िल्टर एनकोडिंग मानक में SQL के समान एक "IN" ऑपरेटर नहीं मिला। कई PropertyIsEqualTo ऑपरेटरों के संयोजन वास्तव में खराब प्रदर्शन करता है।

जवाबों:


8

आह। उस स्थिति में, आप GeoServer के WMS CQL फ़िल्टर समर्थन का उपयोग कर सकते हैं, अर्थात:

http://<hostname>/wms?service=WMS&version=1.1.1&request=GetMap&....&cql_filter=IN ('id_1','id_2','id_3')

अधिक जानकारी http://geoserver.org/display/GEOSDOC/WMS+vendor+parameters पर उपलब्ध है


महान! नहीं पता था कि CQL में एक IN ऑपरेटर है। "=" ऑपरेटर के साथ यह प्रयास करते समय, अपाचे "414 अनुरोध-यूआरआई टू लॉन्ग" में चला गया। हो सकता है कि इस तरह से सहेजे गए किरदारों में फर्क पड़े।
UnderDark

2
पाने के बजाय पोस्ट पर स्विच करें।
इयान Turton

@ अधिक: आप सही हैं, GET कार्यों के बजाय POST। प्रदर्शन हालांकि खराब बना हुआ है।
UnderDark

क्या आपके पास FIDs कॉलम पर एक इंडेक्स है?
इयान Turton

@iant: मेरे पास जिस आईडी के लिए मैं फ़िल्टर कर रहा हूं, उस पर एक इंडेक्स है, लेकिन FID पर नहीं।
अंडरकार्क

2

आप निम्नलिखित तरीके से फीचर आईडी की सूची पारित कर सकते हैं:

प्राप्त:

http://<hostname>/wfs?service=WFS&version=1.1.0&request=GetFeature&typename=foo&featureid=id_1,id_2,id_3

पद:

<?xml version="1.0" encoding="UTF-8"?>
<wfs:GetFeature version="1.1.0" outputFormat="text/xml; subtype=gml/3.1.1" service="WFS" resultType="results" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wfs="http://www.opengis.net/wfs" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <wfs:Query typeName="foo">
        <wfs:PropertyName>String</wfs:PropertyName>
        <ogc:Filter>
            <ogc:FeatureId fid="id_1"/>
            <ogc:FeatureId fid="id_2"/>
            <ogc:FeatureId fid="id_3"/>
        </ogc:Filter>
    </wfs:Query>
</wfs:GetFeature>

POST विकल्प स्पष्ट रूप से अधिक क्रियात्मक है, लेकिन प्रॉपर्टीआईक्वेक्लो के निर्माण से कम है।


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