Hi,

I somehow lost my interest in this because I noticed that it was not as simple 
as I thought first. However, because I did some brainwork and testing I try to 
write a summary before burying the idea.

- "What is here?" is a common spatial question.
- WMS standard lacks a  "what is here" query.
- Perhaps because when the standard was written there were no lightweight but 
location aware clients like smartphones.
- However, such a thing could be useful.
- WMS has a GetFeatureInfo query which primary meaning is "Tell me more about 
this thing that I see on a rendered map image". It has also another meaning 
that is described in WMS standars for raster layers "What is the value of this 
pixel?"
- GetFeatureInfo can be turned into "What is here" query with a little violence 
but because of rendering rules what is in data is not always drawn on a map as 
such.
- Most WMS servers support GetFeatureInfo which makes it teasing to consider 
enhancing just that to support better "what is here" questions.
- Geoserver, Mapserver, deegree, QGIS Mapserver and MapGuide are all OSGeo 
projects and if they all could make a common decision about extending their 
GetFeatureInfo support in a similar way, that would be something.
- WFS and WPS can also answer sometimes to What is here but they are not as 
common as WMS. A common What is here WPS process could be a good alternative, 
though.
- I had not thought that "what is here" is scale dependent. Rendering is for 
sure dependent on scale and style but but if you walk on the street and ask 
"What street this is?" then you do not expect to hear a counter question  "At 
which scale?".  You would think perhaps "At any scale", or "In one-to-one" 
because it is a real world. But that suits only for continuous coverages like 
raster data and polygon layers. For lines and points the question is often 
"What is near?"

I started to think about this because there was a question on the gdal-dev 
mailing list about how to make  gdallocationinfo utility to answer fast. The 
thread was this one http://thread.gmane.org/gmane.comp.gis.gdal.devel/36544.
Gdallocationinfo was the utility that was used for testing 
http://gdal.org/gdallocationinfo.html and it has a simple and general syntax 
for checking a pixel value of any raster data format supported by GDAL. Thus it 
can partly give answers to what is here questions, but only when it comes to 
something measurable that can be expressed as a raster. Digital elevation model 
is perhaps the most common example.

The syntax of gdallocationinfo is simple: gdallocationinfo -source data - 
queried coordinates.
It can read local files but also remote files if they can be accessed with http 
as in this example
gdallocationinfo /vsicurl/http://latuviitta.kapsi.fi/data/dem10m/dem_10m.tif 
-geoloc  389559 6677412

What I did not think in the beginning is that actually gdallocationinfo 
supports also WMS because WMS is one of the GDAL formats. It seems to send two 
requests in a row for the WMS service: First GetFeatureInfo followed by GetMap. 
Here comes an example:

If the request is
gdallocationinfo -wgs84 demo_opengeo_org.xml -77.85 39.05
(demo_opengeo_org.xml is GDAL config file which defines the WMS service), these 
two WMS requests are sent:

http://demo.opengeo.org/geoserver/wms?service=WMS&request=GetFeatureInfo&version=1.1.1&layers=usgs:ned&styles=&srs=EPSG:4326&format=image/jpeg&width=1024&height=1024&bbox=-78.40192771,38.96234375,-77.84674699,39.12334582&query_layers=usgs:ned&x=1017&y=466&info_format=application/vnd.ogc.gml

http://demo.opengeo.org/geoserver/wms?service=WMS&request=GetMap&version=1.1.1&layers=usgs:ned&styles=&srs=EPSG:4326&format=image/jpeg&width=1024&height=1024&bbox=-78.40192771,38.96234375,-77.84674699,39.12334582

Even Rouault, I guess, has made a nice general solution. If WMS service 
supports GetFeatureInfo it is utilized but in all cases WMS for sure supports 
GetMap and then the pixel value can be checked on the client side. The 
Geoserver at demo.opengeo is a fine test server because the results are very 
different: GetFeature info shows attribute value for "GREY_INDEX" (193.65) but 
Geoserver is pushing the DEM through a SLD style and RGB values of the rendered 
map are (1,0,132).

So this is where I stopped. I believe there are somehow common use cases for a 
coordinate based location/featureinfo service that would be handled on the 
server side and that would be very lightweight and simple on the client side. 
However, perhaps the needs are not common enough for making one service to suit 
enough many users. If something then perhaps we could have a simple WPS demo 
that takes coordinates and layer name and returns height value. We seem to have 
sf:sfdem in our demo layers.

-Jukka Rahkonen-



Jody Garnett wrote:

Just seconding Andrea's feedback. WPS is a better fit for a "what is here" 
question. Even then it is hard because point and line work are hard to query 
with a point, so consider a small bounding box instead.

WMS really drags styling into the mix (and thus needs to know both the scale, 
and the pixel size).

Jody Garnett

On Thu, Feb 6, 2014 at 2:43 AM, Rahkonen Jukka (Tike) 
<[email protected]<mailto:[email protected]>> wrote:
Hi,

Inspired by the "Get Height values fast" discussion I started to dream. The WMS 
GetFeatureInfo is nice tool for getting an answer to question "What's here". 
Unfortunately it is designed to work on top of a map that has previously 
captured from WMS and even it is possible to construct working queries as 
Andrea wrote, they are ugly. That made me to dream that it would be cool if all 
the WMS server projects under the OSGeo umbrella (Geoserver, Mapserver, 
deegree, QGIS Mapserver, MapGuide) would start to support GetFeatureInfo 
requests by plain coordinates in a common  way.

The request could look a much like the Standard GetFeatureInfo, but simpler. M 
means mandatory, O optional parameter.

VERSION=                M
REQUEST=GetFeatureInfo  M
QUERY_LAYERS=   M
INFO_FORMAT=    M
SRS or CRS=             M
LON_E=          M       longitude or easting of the queried point in given 
SRS/CRS,
LAT_N=          M       latitude or northing of the queried point in given 
SRS/CRS
FEATURE_COUNT   O
EXCEPTIONS=             O
BUFFER          O

Nothing special there. LON_E and LAT_N are as they are to prevent the struggle 
about the axis order. Order of the parameters would not matter. Common 
parameter for defining the buffer would be needed or otherwise it would be hard 
to hit points and linear features.

Another extension could be a profile query tool. Most typical use case would be 
to read a height profile along a line from a DEM layer.  The query would take 
in the line in for example WKT format and the relation which means the distance 
between returned height profile points is units of the SRS/CRS. Example:

REQUEST=GetProfile
PROFILE=LINESTRING(3413306 6974122, 3413316 6974132)
RESOLUTION=10
LAYER=
SRS/CRS=
INFO_FORMAT=

I do not believe so much that this idea will come true but I think that both 
query types could have real use cases.

-Jukka Rahkonen-

------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk
_______________________________________________
Geoserver-devel mailing list
[email protected]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

------------------------------------------------------------------------------
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to