OGC:WFS allows for GetFeature queries by feature id.
Use cases:
1./ WFS request HTTP GET with KVP
..and through WFS KVP, like:
http://example.org/wfs?service=WFS&version=1.0.0&request=GetFeature&featureid=roads.1013.
Note that, if featureid is found in the KVP, then typename is NOT required. Otherwise typename continues as mandatory.
2./ WFS request HTTP POST with Filter:
<?xml version="1.0" ?>
<wfs:GetFeature
service="WFS"
version="1.0.0"
outputFormat="GML2"
xmlns:myns="http://www.someserver.com/myns"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs ../wfs/1.0.0/WFS-basic.xsd">
<wfs:Query typeName="myns:INWATERA_1M">
<ogc:Filter>
<ogc:FeatureId fid="INWATERA_1M.1234"/>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>
FYI the KVP featureid is mutually exclusive with Filter and BBOX and can be one or more (comma separated) values. So we don't have to implement WFS HTTP GET with Filter encocding on Feature id (the logic being that this would be passed as a KVP request).
Background info:
OGC:WFS 1.0.0: http://portal.opengeospatial.org/files/?artifact_id=7176
OGC:FES 1.0.0: http://portal.opengeospatial.org/files/?artifact_id=1171
Info:
- the code would basically process the WFS request. If a feature filter (either case above), the a query by id type routine would be called against the column defined by MAP/LAYER/METADATA/gml_featureid
Issues:
- what happens if MAP/LAYER/METADATA/gml_featureid is NOT defined?
I'm not sure if this can be done in time for 5.0 (Steve: comments?), so I have not set a milestone.