Certain QGIS Web Client (QWC2) components call web services, e.g. for generating permalinks.
This repository contains some sample services for testing.
The services are Flask applications, written in Python.
Proxies requests, adding the CORS headers
Run as
python proxy.py
API:
- Runs by default on
http://localhost:5000
GET, POST, PUT, DELETE: /?url=<url>&filename=<filename>
- url: the url to proxy
- filename: optional, if set it sets a content-disposition header with the specified filename
Generates and resolves compact permalinks.
Run as
python permalink.py
API:
- Runs by default on
http://localhost:5001
POST: /createpermalink?url=<url>
- url: the url for which to generate a permalink
- payload: a json document with additional state information
- output: a json document:
{permalink: <permalink_url>}
GET: /resolvepermalink?key=<key>
- key: the key query parameter of the permalink url
- output: a json document:
{query: <query_parameters>, state: <state>}
query_parameters
: all query parameters of the URL passed tocreatepermalink
state
: the state data passed as POST payload tocreatepermalink
Returns elevations.
Run as
ELEVATION_DATASET=<path/to/dtm.tif> python elevation.py
Requires GDAL Python bindings. python-gdal
or python3-gdal
packages on Debian/Ubuntu (Note: virtualenv creation requires --system-site-packages option).
API:
- Runs by default on
http://localhost:5002
GET: /getelevation?pos=<pos>&crs=<crs>
- pos: the query position, as
x,y
- crs: the crs of the query position
- output: a json document with the elevation in meters:
{elevation: h}
- pos: the query position, as
POST: /getheightprofile
-
payload: a json document as follows:
{ coordinates: [[x1,y1],[x2,y2],...], distances: [<dist_p1_p2>, <dist_p2_p3>, ...], projection: <EPSG:XXXX, projection of coordinates>, samples: <number of height samples to return> }
-
output: a json document with heights in meters:
{elevations: [h1, h2, ...]}
-
Returns additional information for the right-click map-info tooltip.
Run as
python mapInfo.py
API:
- Runs by default on
http://localhost:5003
GET: /?pos=<pos>&crs=<crs>
- pos: the query position, as
x,y
- crs: the crs of the query position
- output: a json document with map info for the specified position:
{results: [[title1, value1], [title2, value2], ...]}
- pos: the query position, as
Generates a report (i.e. could be a PDF document) for a feature using the specified template.
Run as
python featureReport.py
API:
- Runs by default on
http://localhost:5020
GET: /?template=<template>&feature=<feature>
- template: a template ID
- feature: a feature ID
- x: x coordinate of click which selected the feature
- y: y coordinate of click which selected the feature
- crs: crs of click coordinates
- output: A blob with matching content-type