MapGuide RFC 176 - Update QUERYMAPFEATURES to include selection key with feature attributes
This page contains a change request (RFC) for the MapGuide Open Source project. More MapGuide RFCs can be found on the RFCs page.
Status
RFC Template Version | (1.0) |
Submission Date | 6 Aug 2019 |
Last Modified | 7 Aug 2019 |
Author | Jackie Ng |
RFC Status | adopted |
Implementation Status | implemented |
Proposed Milestone | 4.0 |
Assigned PSC guide(s) | (when determined) |
Voting History | (vote date) |
+1 | Jackie,Crispin,Gordon,Reno |
+0 | |
-0 | |
-1 | |
no vote |
Overview
This RFC proposes to introduce a new version of QUERYMAPFEATURES
that includes selection key with feature attributes.
Motivation
The current QUERYMAPFEATURES
(v2.6.0) operation allows requesting an XML selection set along with feature attributes for this selection.
The layout of this response is such that one might think that would be possible to implement viewer features like sub-selection highlighting by using the array index of the feature attributes collection to pick the corresponding selection key from the selection set XML.
It turns out that, this approach is based on a fatally-flawed assumption that selection set XML is rendered out in the same order as the selected feature attributes. This is actually not the case.
The result of this incorrect assumption results in bugs such as this one for mapguide-react-layout where wrong features are being sub-selected with respect to the "current" feature's attributes being displayed on the property palette.
Proposed Solution
Introduce a new QUERYMAPFEATURES
v4.0.0 operation.
This takes the same parameters as its v2.6.0 counterpart, except when requesting feature attributes, the operation will include a <SelectionKey>
element along side every <Feature>
element in the selection attribute set.
This selection key can be used to construct a new selection XML by which a proper sub-selection highlighting can be done.
Instead of trying to pick the matching selection key by (erroneous) array index lookup in the selection set XML, the selection key is included with every feature's attributes.
This new operation is already implemented in the querymapfeatures_selectionkey sandbox. Upon adoption of this RFC, it will be merged into trunk.
Implications
This is a new operation.
Test Plan
Verify proper sub-selection is possible with v4.0.0 QUERYMAPFEATURES
Funding / Resources
Community