is there a way to specify pixel tolerance when requesting feature info via GetFeatureInfo WMS request for an ArcGIS Server WMS-published map service? I have not been able to find any such information in the documentation.
The OGC WMS standard does not specify any request parameters for coordinate tolerance, I just wonder if there's similar setting somewhere which could make retrieving feature info a bit more convenient for the user, especially for point features.
Answer
The WMS spec does not provide any direction on how a server should implement the GetFeatureInfo response.
In some systems the "pixel tolerance" is a function of the client (web browser or desktop client) - a clicked point can be buffered and the resulting polygon is sent as the query geometry. However, GetFeatureInfo only accepts a point input so that's a dead end.
However, if you scale down the image size in your GetFeatureInfo request, and also scale down the X and Y coordinate of your query, you can effectively increase the pixel tolerance. Consider the following queries based on the Cities layer for the region surrounding Minneapolis/St.Paul:
WMS GetImage, 400 x 400 pixels
If I issue a GetFeatureInfo request at 138, 145 on a 400x400 map gets me Elk River:
WMS GetFeatureInfo, 138,145, 400x400 - gets results
If I re-issue the request at 140, 140 I get no results:
WMS GetFeatureInfo, 140,140, 400x400 - no results
However, if I halve all values and issue the request at 70,70 on a 200x200 map, it works:
WMS GetFeatureInfo, 70,70, 200x200 - gets results
It's extra work to do this sort of viewport adjustment on-the-fly but should do what you want.
No comments:
Post a Comment