Harvest vector features by misusing WMS GetFeatureInfo - #201
Draft
naulan-chrzaszcz wants to merge 1 commit into
Draft
Harvest vector features by misusing WMS GetFeatureInfo#201naulan-chrzaszcz wants to merge 1 commit into
GetFeatureInfo#201naulan-chrzaszcz wants to merge 1 commit into
Conversation
Member
Author
|
Okay, i push just the code i used in my branch of tests for Albanian rendering. Edit : i can have a better look for this feature if i seperate this part of code from my branch of tests |
GetFeatureInfo
naulan-chrzaszcz
force-pushed
the
naulan/wms-getfeatureinfo-provider
branch
from
August 14, 2026 11:34
1a4f0cf to
4f85fcd
Compare
[Maven Build Status]📑 Commit: 📦 Download artifact: Generator.jar |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
Add a WMS provider working through
GetFeatureInfoto read vector features.Feature description
WMSFeatureInfoDataProviderreads geometries and their attributes from a WMSlayer, as GeoJSON.
GetFeatureInfoanswers for a single point, it is meant to feed a map tooltip,not to read an area. Covering a tile therefore means walking a grid of query
points spaced by
spacing, and de-duplicating the results by feature identifier,since a feature is returned by every neighbouring point that falls within the
harvested radius.
Two limits come with that detour, both documented on the class:
so the volume has to be weighed against the capacity of the target service;
rather than a feature store: a feature shorter than
spacingcan fall betweentwo grid points.
Transient failures are retried per grid point with an exponential backoff, rather
than left to the retry policy of the task: restarting
provide()would replayevery point already walked, with no better odds of succeeding.
The existing
WMSFloatBilDataProvidercould not be extended for this. It isdeclared
Provider<FloatGeographicDataMatrix2d>where this one providesSimpleFeature, and a class cannot implementProvidertwice with twoparameterizations — they also feed two different processors.
New parameters type:
WMSFeatureInfoProviderParams, registered aswmsFeatureInfo.Reason
To exploit the WMS services of ASIG, whose GeoServer publishes vector layers
through WMS while keeping WFS disabled (
ServiceException: Service WFS is disabled).GetFeatureInfois the only channel left for geometries.Prefer
WFS1_1_GML3_1_DataProviderwherever WFS is available: one bounding boxquery per tile instead of hundreds of point queries.
Self-checks
/docsfolder has been updatedexamples/work the same (or have been adapted if subject to changes in this PR)