Changes between Initial Version and Version 1 of MapGuideRfc181


Ignore:
Timestamp:
Jul 28, 2020, 7:54:43 AM (4 years ago)
Author:
jng
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc181

    v1 v1  
     1
     2= !MapGuide RFC 181 - OpenLayers preview for WMS layers and development HTTP server =
     3
     4This page contains a change request (RFC) for the !MapGuide Open Source project.
     5More !MapGuide RFCs can be found on the [wiki:MapGuideRfcs RFCs] page.
     6
     7== Status ==
     8
     9||RFC Template Version||(1.0)||
     10||Submission Date||||
     11||Last Modified||||
     12||Author||Jackie Ng||
     13||RFC Status||draft||
     14||Implementation Status||||
     15||Proposed Milestone||4.0||
     16||Assigned PSC guide(s)||(when determined)||
     17||'''Voting History'''||(vote date)||
     18||+1||||
     19||+0||||
     20||-0||||
     21||-1||||
     22||no vote|| ||
     23
     24== Overview ==
     25
     26This RFC proposes to add a new OpenLayers HTML viewer representation for WMS responses and a new developmental HTTP server to simplify dev/testing of the MapGuide Web Tier.
     27
     28== Motivation ==
     29
     30Currently, there is no built-in previewing mechanism for WMS layers in MapGuide. Right now, to preview a WMS layer from MapGuide requires an external WMS client like [https://qgis.org/en/site/ QGIS] or [http://www.thecarbonproject.com/Products/Gaia Gaia] to connect to the MapGuide WMS Service.
     31
     32Another tangential problem is that the development/testing of mapagent C++ code in the MapGuide Web Tier is severely hampered by the need to stand up a full-blown instance of Apache httpd or IIS in front of the mapagent binaries. Having a simple http server that integrates the mapagent handling code can rapidly improve development and iteration of mapagent functionality.
     33
     34== Proposed Solution ==
     35
     36Add [https://github.com/yhirose/cpp-httplib cpp-httplib] to Oem. This is a MIT-licensed header-only C++11 library for easily implementing a HTTP web server.
     37
     38Add a new `MgDevHttpServer` to the `WebTier` project. This project is a simple console application using `cpp-httplib` that sets up a mapagent for testing/development purposes. This http server should not be used as a production or public-facing http server.
     39
     40Update our WMS templates to include a HTML template for WMS `GetMap` previews with OpenLayers.
     41
     42Update our WMS implementation to support a new `FORMAT` of `application/openlayers`. If this parameter value is supplied, an OpenLayers HTML preview of the given WMS layer is rendered instead of a map image.
     43
     44A testament to the speed at which the new OpenLayers WMS representation was implemented can be attributed to the use of the new `MgDevHttpServer` to rapidly speed up the developer inner loop
     45
     46== Implications ==
     47
     48None. This is a new output format for an existing operation.
     49
     50== Test Plan ==
     51
     52Verify `GetMap` requests produce an OpenLayers preview of the WMS layers if a `FORMAT` of `application/openlayers` is provided
     53
     54== Funding / Resources ==
     55
     56Community