[mapguide-commits] r9686 - in sandbox/jng/ogc_viewer_representation: UnitTest/WebTier/MapAgent/MapAgentForms Web/src/HttpHandler
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Fri Jul 24 06:11:36 PDT 2020
Author: jng
Date: 2020-07-24 06:11:35 -0700 (Fri, 24 Jul 2020)
New Revision: 9686
Modified:
sandbox/jng/ogc_viewer_representation/UnitTest/WebTier/MapAgent/MapAgentForms/getmapwmsform.html
sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/HttpWmsGetMap.cpp
sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcFramework.h
sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcServer.cpp
sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcServer.h
sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcWmsServer.cpp
sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcWmsServer.h
Log:
Add application/openlayers mime type to WMS GetMap form. Implement content placeholder for the WMS handler
Modified: sandbox/jng/ogc_viewer_representation/UnitTest/WebTier/MapAgent/MapAgentForms/getmapwmsform.html
===================================================================
--- sandbox/jng/ogc_viewer_representation/UnitTest/WebTier/MapAgent/MapAgentForms/getmapwmsform.html 2020-07-24 11:10:57 UTC (rev 9685)
+++ sandbox/jng/ogc_viewer_representation/UnitTest/WebTier/MapAgent/MapAgentForms/getmapwmsform.html 2020-07-24 13:11:35 UTC (rev 9686)
@@ -17,6 +17,7 @@
<option value="image/png">image/png</option>
<option value="image/jpeg">image/jpeg</option>
<option value="image/gif">image/gif</option>
+<option value="application/openlayers">application/openlayers</option>
</select>
<p> Layers (comma-separated):
<input type="text" name="LAYERS" value="Samples/Sheboygan/Layers/Parcels,Samples/Sheboygan/Layers/Roads" size="100">
Modified: sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/HttpWmsGetMap.cpp
===================================================================
--- sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/HttpWmsGetMap.cpp 2020-07-24 11:10:57 UTC (rev 9685)
+++ sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/HttpWmsGetMap.cpp 2020-07-24 13:11:35 UTC (rev 9686)
@@ -168,42 +168,72 @@
{
if(wms.ProcessRequest(this))
{
- // Get an instance of the resource service
- Ptr<MgResourceService> resourceService = (MgResourceService*)CreateService(MgServiceType::ResourceService);
- // Get an instance of the resource service
- Ptr<MgFeatureService> featureService = (MgFeatureService*)CreateService(MgServiceType::FeatureService);
+ // Get the image format
+ // Note: should be valid, since this mapping has already happened
+ // in the Validate phase.
+ STRING format;
+ wms.MapValue(kpszDefineSupportedFormats, m_format.c_str(), format);
- // Get the background color
- Ptr<MgColor> bkColor = MgWmsMapUtil::GetBackgroundColor(m_bgColor, m_transparent);
+ if (m_format == kpszOpenLayersMimeType)
+ {
+ // Construct a self url
+ auto selfUrl = m_hRequest->GetAgentUri();
+ for (INT32 i = 0; i < requestParams.Count(); i++)
+ {
+ if (i == 0)
+ selfUrl += L"?";
+ else
+ selfUrl += L"&";
- // Get the extents
- Ptr<MgEnvelope> extents = MgWmsMapUtil::GetExtents(m_bbox);
+ auto name = requestParams.Name(i);
+ selfUrl += name;
+ selfUrl += L"=";
+ if (name == MgHttpResourceStrings::reqWmsFormat)
+ {
+ selfUrl += L"image/png"; //TODO: Surely default image format is defined somewhere
+ }
+ else
+ {
+ auto value = (CPSZ)requestParams.Value(i);
+ selfUrl += value;
+ }
+ }
- // Create session
- Ptr<MgUserInformation> userInfo = m_siteConn->GetUserInfo();
- site = m_siteConn->GetSite();
- session = site->CreateSession();
- userInfo->SetMgSessionId(session);
+ wms.OutputViewerResponse(selfUrl, hResult);
+ }
+ else
+ {
+ // Get an instance of the resource service
+ Ptr<MgResourceService> resourceService = (MgResourceService*)CreateService(MgServiceType::ResourceService);
+ // Get an instance of the resource service
+ Ptr<MgFeatureService> featureService = (MgFeatureService*)CreateService(MgServiceType::FeatureService);
- // Get a map object corresponding to the request parameters
- Ptr<MgMap> map = MgWmsMapUtil::GetMap(wms, m_layerDefIds, m_bbox, m_crs,
- m_width, m_height, resourceService, featureService, session);
- map->SetWatermarkUsage(MgMap::WMS);
+ // Get the background color
+ Ptr<MgColor> bkColor = MgWmsMapUtil::GetBackgroundColor(m_bgColor, m_transparent);
- // Get the image format
- // Note: should be valid, since this mapping has already happened
- // in the Validate phase.
- STRING format;
- wms.MapValue(kpszDefineSupportedFormats,m_format.c_str(),format);
+ // Get the extents
+ Ptr<MgEnvelope> extents = MgWmsMapUtil::GetExtents(m_bbox);
- // Render the map
- Ptr<MgRenderingService> renderingService = (MgRenderingService*)CreateService(MgServiceType::RenderingService);
- Ptr<MgSelection> selection;
- Ptr<MgByteReader> mapImage = renderingService->RenderMap(map, selection, extents, m_width, m_height, bkColor, format);
+ // Create session
+ Ptr<MgUserInformation> userInfo = m_siteConn->GetUserInfo();
+ site = m_siteConn->GetSite();
+ session = site->CreateSession();
+ userInfo->SetMgSessionId(session);
- // Set the result
- STRING sMimeType = mapImage->GetMimeType();
- hResult->SetResultObject(mapImage, sMimeType.length() > 0 ? sMimeType : m_format);
+ // Get a map object corresponding to the request parameters
+ Ptr<MgMap> map = MgWmsMapUtil::GetMap(wms, m_layerDefIds, m_bbox, m_crs,
+ m_width, m_height, resourceService, featureService, session);
+ map->SetWatermarkUsage(MgMap::WMS);
+
+ // Render the map
+ Ptr<MgRenderingService> renderingService = (MgRenderingService*)CreateService(MgServiceType::RenderingService);
+ Ptr<MgSelection> selection;
+ Ptr<MgByteReader> mapImage = renderingService->RenderMap(map, selection, extents, m_width, m_height, bkColor, format);
+
+ // Set the result
+ STRING sMimeType = mapImage->GetMimeType();
+ hResult->SetResultObject(mapImage, sMimeType.length() > 0 ? sMimeType : m_format);
+ }
}
else
{
Modified: sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcFramework.h
===================================================================
--- sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcFramework.h 2020-07-24 11:10:57 UTC (rev 9685)
+++ sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcFramework.h 2020-07-24 13:11:35 UTC (rev 9686)
@@ -167,4 +167,6 @@
//
//extern CPSZ kpszFilenameGlobalConfig ;// = _("OgcWmsService.config");
+extern CPSZ kpszOpenLayersMimeType ;// = _("application/openlayers");
+
#endif//_OgcFramework_h
Modified: sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcServer.cpp
===================================================================
--- sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcServer.cpp 2020-07-24 11:10:57 UTC (rev 9685)
+++ sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcServer.cpp 2020-07-24 13:11:35 UTC (rev 9686)
@@ -215,6 +215,8 @@
CPSZ kpszVersionRediculouslyHighVersion = _("9999.9.9"); // If no version is provided, we "ask" for this (to get
// the highest version possible.
+CPSZ kpszOpenLayersMimeType = _("application/openlayers"); //OpenLayers mime type
+
DocLoaderFunc MgOgcServer::ms_fnDocLoader = NULL;
@@ -1888,7 +1890,20 @@
ProcessExpandableText(pszTextWithExpansion,(int)szlen(pszTextWithExpansion));
}
+void MgOgcServer::OutputViewerResponse(CREFSTRING selfUrl, MgHttpResult* hResult)
+{
+ STRING content = L"<html><head></head><body>";
+ content += L"<p>TODO: Display OpenLayers view with the following URL</p>";
+ content += selfUrl;
+ content += L"</body></html>";
+ std::string mbContent = MgUtil::WideCharToMultiByte(content);
+ Ptr<MgByteSource> bs = new MgByteSource((BYTE_ARRAY_IN)mbContent.c_str(), (INT32)mbContent.length());
+ bs->SetMimeType(MgMimeType::Html);
+ Ptr<MgByteReader> br = bs->GetReader();
+ hResult->SetResultObject(br, br->GetMimeType());
+}
+
MgOgcServer::CDictionaryStackFrame::CDictionaryStackFrame(MgOgcServer* pServer)
: m_pServer(pServer)
{
Modified: sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcServer.h
===================================================================
--- sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcServer.h 2020-07-24 11:10:57 UTC (rev 9685)
+++ sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcServer.h 2020-07-24 13:11:35 UTC (rev 9686)
@@ -553,8 +553,9 @@
// to actually do the loading. See signature, above.
static void SetLoader(DocLoaderFunc fnDocLoad);
+ void OutputViewerResponse(CREFSTRING selfUrl, MgHttpResult* hResult);
+
private:
-
// Pointer to the document loader function; modified by SetLoader().
static DocLoaderFunc ms_fnDocLoader;
Modified: sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcWmsServer.cpp
===================================================================
--- sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcWmsServer.cpp 2020-07-24 11:10:57 UTC (rev 9685)
+++ sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcWmsServer.cpp 2020-07-24 13:11:35 UTC (rev 9686)
@@ -48,6 +48,7 @@
_("<translate from=\"image/png\">PNG</translate>")
_("<translate from=\"image/gif\">GIF</translate>")
_("<translate from=\"image/tiff\">TIF</translate>")
+ _("<translate from=\"application/openlayers\">application/openlayers</translate>")
// Below is REQUIRED. Illegal strings should map to "".
_("<translate></translate>");
Modified: sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcWmsServer.h
===================================================================
--- sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcWmsServer.h 2020-07-24 11:10:57 UTC (rev 9685)
+++ sandbox/jng/ogc_viewer_representation/Web/src/HttpHandler/OgcWmsServer.h 2020-07-24 13:11:35 UTC (rev 9686)
@@ -50,7 +50,6 @@
CPSZ GetServiceType();
CPSZ GetTemplatePrefix();
-
// Gets the template info for default exception, when no other exception type is at hand.
void GetDefaultExceptionInfo(REFSTRING sTemplate,REFSTRING sMimeType);
More information about the mapguide-commits
mailing list