Home > FAQ
National and regional geoservices are difficult to discover and use directly — different CRS, axis order, image size limits, and no CORS headers. The wrapper sits between your browser and the upstream services and handles this:
Access-Control-Allow-Origin, so the wrapper proxies
responses so browser requests work.Services are catalogued flat by ISO 3166-1 alpha-3 country code — see the start page and region index.
?legend for the legend graphic.See the service list for current coverage. Services conformant to the INSPIRE application schemas live in the sibling wrapper Linked INSPIRE; German AdV services in linked-adv; Dutch PDOK in linked-pdok; Copernicus Data Space (Sentinel-2) in linked-cdse. This wrapper takes everything else, any country.
A Coordinate Reference System (CRS, also called SRS in OGC standards) defines how coordinates map to locations on Earth. EPSG:4326 (WGS 84, lat/lon in degrees) is what GPS and most web maps use. All GeoJSON returned by the wrapper is in WGS 84 regardless of the upstream service's CRS — reprojection happens server-side.
W,S,E,N in decimal degrees (EPSG:4326). WMS 1.3.0 and WFS 2.0.0
themselves require lat/lon axis order (S,W,N,E); the wrapper translates
from the more intuitive W,S,E,N automatically. If you need the raw
upstream GML (original CRS and axis order), use
/wfs.gml?type=…&bbox=…&s=….
Some upstream WMS services impose a maximum image dimension; the wrapper respects it and returns whatever the upstream server provides. If you need a larger area, split your bounding box into smaller tiles.
Some upstream WMS services only render at certain zoom levels. If you get a blank image, try a smaller bounding box (higher zoom).
This wrapper serves the services that FAIL a machine-checkable INSPIRE
test — the ones that pass live in
Linked INSPIRE. For WFS,
at least one feature type must be in a canonical INSPIRE namespace; for
WMS, GetCapabilities must carry a conformant
<inspire_vs:ExtendedCapabilities>. In both cases the
test is conformance, not intent — a service named
“INSPIRE” that publishes no extended capabilities, or a
feature type with an INSPIRE-looking name in some other namespace,
still lands here. This is reproducible and survives re-running
discovery; “looks INSPIRE-ish” is not.
The wrapper supports OGC Filter Encoding 2.0 (FES 2.0). Pass the filter as URL-encoded XML
in the filter query parameter; the wrapper forwards it as the FILTER
KVP parameter to the upstream WFS server.
PropertyIsLike
GET /wfs?type=/inspire/hy-p/4.0#Watercourse&bbox=9.9,53.5,10.1,53.6&s={wfs-uri}
&filter=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
<fes:PropertyIsLike wildCard="*" singleChar="." escapeChar="\">
<fes:ValueReference>hy-p:geographicalName</fes:ValueReference>
<fes:Literal>*Rhein*</fes:Literal>
</fes:PropertyIsLike>
</fes:Filter>
Property names for a feature type are available via
/wfs/describe?type={type}&s={wfs-uri}.
BBOX and FILTER are applied together (AND semantics) by the upstream server.
At discovery time the wrapper probes each WFS service to determine which
lookup method it supports — a standard stored query
(STOREDQUERY_ID=urn:ogc:def:query:OGC-WFS::GetFeatureById)
or the RESOURCEID parameter. Some upstream servers advertise
support but don't actually honour it, return 403 on the stored-query
endpoint, generate session-only transient IDs, or return empty results
regardless of ID — in those cases, loading a feature by ID from this
wrapper simply won't work for that particular service. Re-running
discovery picks up a fix if the upstream service starts behaving
correctly.
# or the
last /); clicking opens the definition.rdf:typeidentifier<gml:identifier> in the GML response —
the canonical persistent URI for the feature, where the upstream
service provides one._droppedGeometryTin, Grid).
The feature is shown without geometry.
RDF/XML and Turtle carry geometry as a locn:geometry XML
literal with the raw GML in the upstream CRS. GeoJSON and JSON-LD
project all coordinates to WGS 84 as a GeoJSON object — the three
representations are not graph-isomorphic.
After loading features, the link area shows an Upstream link pointing directly to the source service request that produced the result, so you can inspect or replay it independently of the wrapper.
To protect upstream services from excessive load, each IP address may make 50 requests per 10 minutes, refilling continuously (roughly one request every 12 seconds after hitting the limit).
Registered heavy users can bypass the limit with an API key:
Authorization: Bearer <your-api-key>
Contact the operator to request a key.