Version 13 (modified by 17 years ago) ( diff ) | ,
---|
MapGuide RFC 38 - GETDYNAMICMAPOVERLAYIMAGE Enhancements for Selection ¶
This page contains an 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 | Oct 2 15:40:00 2007 |
Last Modified | Trevor Wekel Timestamp |
Author | Trevor Wekel |
RFC Status | draft |
Implementation Status | pending |
Proposed Milestone | 2.0 |
Assigned PSC guide(s) | |
Voting History | Oct 9, 2007 |
+1 | |
+0 | |
-0 | |
-1 |
Overview ¶
Enhance the GETDYNAMICMAPOVERLAYIMAGE HTTP API to allow the selection and overlay images to be rendered as separate images.
Motivation ¶
Currently, MapGuide renders the selection and the overlay image as a single image. This requires all untiled layers to be redrawn whenever the selection is changed. This is an inefficient use of server-side rendering resources and it reduces multi-user performance for untiled maps.
Proposed Solution ¶
Add the parameter BEHAVIOR to the existing GETDYNAMICMAPOVERLAYIMAGE. Increase the VERSION to 2.0.0 and deprecate the existing KEEPSELECTION parameter for the new version of the API. BEHAVIOR is a bitmask with the following values:
RenderSelection = 1 // Renders the selected feature(s) RenderLayers = 2 // Renders the features on the map KeepSelection = 4 // Renders the selected feature(s) even if they are outside the current scale
Examples:
- RenderSelection | RenderLayers will render selection and layers within the current scale
- RenderSelection | KeepSelection will render only the selection regardless of scale
Add a SELECTIONCOLOR parameter to the existing GETDYNAMICMAPOVERLAYIMAGE. The color may be specified as an integer or hex string and the encoding is specified as 8 bit RGBA values.
Include support for "PNG8" in the FORMAT parameter of GETDYNAMICMAPOVERLAYIMAGE.
For the Web Extensions API add an additional signature for MgRenderingService.RenderDynamicMapOverlay that includes an MgRenderingOptions class:
MgByteReader* RenderDynamicOverlay(MgMap* map, MgSelection* selection, MgRenderingOptions* options);
MgRenderingOptions will contain information on the image format, the behavior, and the selection color
class MgRenderingOptions { MgRenderingOptions(CREFSTRING format, INT32 behavior, MgColor* selectionColor); STRING GetImageFormat(); INT32 GetBehavior(); MgColor* GetSelectionColor(); }
Update the existing WebLayout based ajax viewer to use the new API while maintaining the existing functionality. A new "selection" layer will not be added to the WebLayout based viewer.
Implications ¶
Since this is a new version of the HTTP request and a new signature for RenderDynamicMapOverlay, compatibility with existing clients/scripts is maintained. The behavior parameter encapsulates the current "keepSelection" functionality so the existing RenderDynamicOverlay methods could be deprecated in a future release.
Test Plan ¶
Ensure that existing clients continue to function as expected. Verify that the new HTTP API renders only the selection or layers, or both depending on the behavior setting.
Funding/Resources ¶
Autodesk will provide resources to implement the enhanced HTTP request.
Time permitting, DM Solutions will update the new "Fusion" based viewer to include a new "selection" layer.