Select to view content in your preferred language

WFS vs Argcis REST Intersect Performance

652
1
01-03-2023 06:26 AM
Labels (1)
peter-mueller
New Contributor

Hello, I'm an application developer that trying to integrate geo data into an application. 

 

I was provided with a WFS and an Arcgis Feature Service from the newly prototyped Argcis Enterprise Portal of my company. I would prefer to use WFS as it is specified by the OGC.

Now i want to find some geodata for multiple (10,000+) points. Because of this the request time for a single point matters very much to me.

A point intersect request on a few layers takes 100ms in the Arcgis Feature Service per point [REQ1] . However,  with WFS it takes 3s per point[REQ2]. Is this performance difference to be expected?

[REQ1]: https://[ourargcisportal]/arcgis/rest/services/basis/FeatureServer/query?layerDefs=16%3B17%3B118%3B8%3B58%3B59%3B10%3B28&geometry=690598.318700%2C5332234.120500&geometryType=esriGeometryPoint&inSR=&spatialRel=esriSpatialRelIntersects&returnGeometry=false&f=json 

[REQ2]: POST https://[ourargcisportal] /arcgis/services/basis/MapServer/WFSServer

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<wfs:GetFeature service="wfs" version="2.0.0" count="1" srsName="urn:ogc:def:crs:EPSG::25832" xmlns:wfs="http://www.opengis.net/wfs/2.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:ogc="http://www.opengis.net/ogc" xmlns:basis="basis_wfs">
    <wfs:Query typeName="[mytype]" >
        <ogc:PropertyName>[mypropertyname]</ogc:PropertyName>
        <ogc:Filter>
            <ogc:Intersects>
                <gml:Point srsName="EPSG:25832">
                    <gml:coordinates>5332234.120500,690598.318700</gml:coordinates>
                </gml:Point>
            </ogc:Intersects>
        </ogc:Filter>
    </wfs:Query>
    <wfs:Query typeName="[mytype]">
        <ogc:PropertyName>[mypropertyname]</ogc:PropertyName>
        <ogc:Filter>
            <ogc:Intersects>
                <gml:Point srsName="EPSG:25832">
                    <gml:coordinates>5332234.120500,690598.318700</gml:coordinates>
                </gml:Point>
            </ogc:Intersects>
        </ogc:Filter>
    </wfs:Query>
    <wfs:Query typeName="[mytype]">
        <ogc:PropertyName>[mypropertyname]</ogc:PropertyName>
        <ogc:PropertyName>[mypropertyname]</ogc:PropertyName>
        <ogc:Filter>
            <ogc:Intersects>
                <gml:Point srsName="EPSG:25832">
                    <gml:coordinates>5332234.120500,690598.318700</gml:coordinates>
                </gml:Point>
            </ogc:Intersects>
        </ogc:Filter>
    </wfs:Query>
    <wfs:Query typeName="[mytype]">
        <ogc:PropertyName>[mypropertyname]</ogc:PropertyName>
        <ogc:Filter>
            <ogc:Intersects>
                <gml:Point srsName="EPSG:25832">
                    <gml:coordinates>5332234.120500,690598.318700</gml:coordinates>
                </gml:Point>
            </ogc:Intersects>
        </ogc:Filter>
    </wfs:Query>
    <wfs:Query typeName="[mytype]">
        <ogc:PropertyName>[mypropertyname]</ogc:PropertyName>
        <ogc:Filter>
            <ogc:Intersects>
                <gml:Point srsName="EPSG:25832">
                    <gml:coordinates>5332234.120500,690598.318700</gml:coordinates>
                </gml:Point>
            </ogc:Intersects>
        </ogc:Filter>
    </wfs:Query>
    <wfs:Query typeName="[mytype]">
        <ogc:PropertyName>[mypropertyname]</ogc:PropertyName>
        <ogc:Filter>
            <ogc:Intersects>
                <gml:Point srsName="EPSG:25832">
                    <gml:coordinates>5332234.120500,690598.318700</gml:coordinates>
                </gml:Point>
            </ogc:Intersects>
        </ogc:Filter>
    </wfs:Query>
    <wfs:Query typeName="[mytype]">
        <ogc:PropertyName>[mypropertyname]</ogc:PropertyName>
        <ogc:PropertyName>[mypropertyname]</ogc:PropertyName>
        <ogc:PropertyName>[mypropertyname]</ogc:PropertyName>
        <ogc:PropertyName>[mypropertyname]</ogc:PropertyName>
        <ogc:Filter>
            <ogc:Intersects>
                <gml:Point srsName="EPSG:25832">
                    <gml:coordinates>5332234.120500,690598.318700</gml:coordinates>
                </gml:Point>
            </ogc:Intersects>
        </ogc:Filter>
    </wfs:Query>
</wfs:GetFeature> 

 

Kind regards,

Peter

 

 

0 Kudos
1 Reply
FranAcuñaParra
Emerging Contributor

Hello @peter-mueller ,

I don't know if you are still interested in this topic but the performance difference you mentioned is quite possible. I was recently doing some tests on an ArcGIS Feature Service for a project that I'm working on, and the result was the same as yours. The ArcGIS Feature Service was faster than the OGC Intersection filter method. This behavior can make sense because you are querying the ArcGIS Service directly without an extra step like the OGC filter method.

0 Kudos