= !MapGuide RFC 178 - Toggle-able feature bounds in Layer Definition = This page contains a change request (RFC) for the !MapGuide Open Source project. More !MapGuide RFCs can be found on the [wiki:MapGuideRfcs RFCs] page. == Status == ||RFC Template Version||(1.0)|| ||Submission Date||30 Jan 2020|| ||Last Modified||5 Feb 2020|| ||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,Reno,Martin,Gordon|| ||+0|||| ||-0|||| ||-1|||| ||no vote|| || == Overview == This RFC proposes to make the bounds information of `QUERYMAPFEATURES` results toggle-able from the Layer Definition == Motivation == Bounding box information for each feature is included for every selected feature as part of a `QUERYMAPFEATURES` response. However, like certain feature attributes, the bounding box of any feature may be considered information that one does not want to return back to the requesting viewer. There is currently no means to toggle whether bounding boxes should be returned or not. It is currently always being returned. == Proposed Solution == Introduce a new `LayerDefinition-4.0.0` schema that includes a new `IncludeFeatureBounds` element. As we're introducing a new LayerDefinition schema version, we'll also take this opportunity to also fix #985 as well by fixing up the data type. Update the MdfModel Layer Definition classes to handle these element changes and use this flag to determine whether to include bounding box for every selected feature. This flag will default to true to preserve current behavior in older versions. An author must explicitly set this flag to false to omit bounding box information. Update the AJAX viewer to have the selection panel to gracefully operate in the absence of bounding box data for a selected feature. == Implications == None == Test Plan == Add MdfModel test to verify this new flag is being properly read and set for `MgLayer` and survives round-tripping when serialized/deserialized. Verify zoom to selected feature in AJAX viewer does nothing when the layer flag is set to false. Verify zoom to selected feature in AJAX viewer zooms to the feature when the layer flag is set to true. == Funding / Resources == Community