[mapguide-commits] r9527 - in sandbox/jng/mvt: Common/Foundation/Data Common/MapGuideCommon/Services Server/src/Services/Rendering
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Fri May 31 07:33:22 PDT 2019
Author: jng
Date: 2019-05-31 07:33:22 -0700 (Fri, 31 May 2019)
New Revision: 9527
Added:
sandbox/jng/mvt/Server/src/Services/Rendering/OpRenderTileMVT.cpp
sandbox/jng/mvt/Server/src/Services/Rendering/OpRenderTileMVT.h
Modified:
sandbox/jng/mvt/Common/Foundation/Data/MimeType.cpp
sandbox/jng/mvt/Common/Foundation/Data/MimeType.h
sandbox/jng/mvt/Common/MapGuideCommon/Services/ProxyRenderingService.cpp
sandbox/jng/mvt/Common/MapGuideCommon/Services/ProxyRenderingService.h
sandbox/jng/mvt/Common/MapGuideCommon/Services/RenderingDefs.h
sandbox/jng/mvt/Common/MapGuideCommon/Services/RenderingService.h
sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.cpp
sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.h
sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.vcxproj
sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.vcxproj.filters
sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingServiceBuild.cpp
Log:
Add new RenderTileMVT to MgRenderingService. This API has the same XYZ access scheme as RenderTileXYZ and RenderTileUTFGrid.
The server implementation of this API is a near carbon-copy of RenderTileUTFGrid, with MVTRenderer in place of UTFGridRenderer.
Also add a new MVT mime type, which is the the mime type of the MgByteReader returned by this API.
Modified: sandbox/jng/mvt/Common/Foundation/Data/MimeType.cpp
===================================================================
--- sandbox/jng/mvt/Common/Foundation/Data/MimeType.cpp 2019-05-31 14:10:44 UTC (rev 9526)
+++ sandbox/jng/mvt/Common/Foundation/Data/MimeType.cpp 2019-05-31 14:33:22 UTC (rev 9527)
@@ -37,3 +37,4 @@
const STRING MgMimeType::Kml = L"application/vnd.google-earth.kml+xml";
const STRING MgMimeType::Kmz = L"application/vnd.google-earth.kmz";
const STRING MgMimeType::Meta = L"application/metatile";
+const STRING MgMimeType::Mvt = L"application/vnd.mapbox-vector-tile";
\ No newline at end of file
Modified: sandbox/jng/mvt/Common/Foundation/Data/MimeType.h
===================================================================
--- sandbox/jng/mvt/Common/Foundation/Data/MimeType.h 2019-05-31 14:10:44 UTC (rev 9526)
+++ sandbox/jng/mvt/Common/Foundation/Data/MimeType.h 2019-05-31 14:33:22 UTC (rev 9527)
@@ -87,6 +87,10 @@
/// \brief
/// application/metatile
static const STRING Meta; ///\if INTERNAL value("application/metatile") \endif
+
+ /// \brief
+ /// application/vnd.mapbox-vector-tile
+ static const STRING Mvt; ///\if INTERNAL value("application/vnd.mapbox-vector-tile") \endif
};
/// \}
Modified: sandbox/jng/mvt/Common/MapGuideCommon/Services/ProxyRenderingService.cpp
===================================================================
--- sandbox/jng/mvt/Common/MapGuideCommon/Services/ProxyRenderingService.cpp 2019-05-31 14:10:44 UTC (rev 9526)
+++ sandbox/jng/mvt/Common/MapGuideCommon/Services/ProxyRenderingService.cpp 2019-05-31 14:33:22 UTC (rev 9527)
@@ -280,6 +280,28 @@
return (MgByteReader*)cmd.GetReturnValue().val.m_obj;
}
+MgByteReader * MgProxyRenderingService::RenderTileMVT(MgMap * map, CREFSTRING baseMapLayerGroupName, INT32 x, INT32 y, INT32 z, INT32 dpi)
+{
+ MgCommand cmd;
+ cmd.ExecuteCommand(m_connProp, // Connection
+ MgCommand::knObject, // Return type expected
+ MgRenderingServiceOpId::RenderTileMVT, // Command Code
+ 7, // No of arguments
+ Rendering_Service, // Service Id
+ BUILD_VERSION(4,0,0), // Operation version
+ MgCommand::knObject, map, // Argument#1
+ MgCommand::knString, &baseMapLayerGroupName, // Argument#2
+ MgCommand::knInt32, x, // Argument#3
+ MgCommand::knInt32, y, // Argument#4
+ MgCommand::knInt32, z, // Argument#5
+ MgCommand::knInt32, dpi, // Argument#6
+ MgCommand::knNone); // End of arguments
+
+ SetWarning(cmd.GetWarningObject());
+
+ return (MgByteReader*)cmd.GetReturnValue().val.m_obj;
+}
+
/////////////////////////////////////////////////////////////////
/// <summary>
/// Renders all dynamic layers in the specified MgMap to a dynamic overlay image
Modified: sandbox/jng/mvt/Common/MapGuideCommon/Services/ProxyRenderingService.h
===================================================================
--- sandbox/jng/mvt/Common/MapGuideCommon/Services/ProxyRenderingService.h 2019-05-31 14:10:44 UTC (rev 9526)
+++ sandbox/jng/mvt/Common/MapGuideCommon/Services/ProxyRenderingService.h 2019-05-31 14:33:22 UTC (rev 9527)
@@ -319,6 +319,46 @@
/////////////////////////////////////////////////////////////////
/// \brief
+ /// Returns the specified MVT (Mapbox Vector Tile) for the given map. Tile structure is
+ /// based on the XYZ tiling scheme used by Google Maps, OpenStreetMap, and
+ /// others
+ ///
+ /// \param map
+ /// Input
+ /// map object containing current state of map.
+ /// \param baseMapLayerGroupName
+ /// Input
+ /// Specifies the name of the baseMapLayerGroup for which to render the tile.
+ /// \param x
+ /// Input
+ /// Specifies the row index of the tile to return.
+ /// \param y
+ /// Input
+ /// Specifies the column index of the tile to return.
+ /// \param z
+ /// Input
+ /// Specifies the zoom level of the tile to return.
+ /// \param dpi
+ /// Input
+ /// Specifies the dpi of the tile to return.
+ /// \param tileImageFormat
+ /// Input
+ /// Specifies the image format of the tile to return.
+ ///
+ /// \return
+ /// A byte reader containing the rendered tile image.
+ ///
+ /// \since 4.0
+ virtual MgByteReader* RenderTileMVT(
+ MgMap* map,
+ CREFSTRING baseMapLayerGroupName,
+ INT32 x,
+ INT32 y,
+ INT32 z,
+ INT32 dpi);
+
+ /////////////////////////////////////////////////////////////////
+ /// \brief
/// Renders all dynamic layers in the specified MgMap to a dynamic overlay image
/// with a transparent background. The center, scale, size, and layers to be
/// rendered are defined by the specified map instance. The format parameter
Modified: sandbox/jng/mvt/Common/MapGuideCommon/Services/RenderingDefs.h
===================================================================
--- sandbox/jng/mvt/Common/MapGuideCommon/Services/RenderingDefs.h 2019-05-31 14:10:44 UTC (rev 9526)
+++ sandbox/jng/mvt/Common/MapGuideCommon/Services/RenderingDefs.h 2019-05-31 14:33:22 UTC (rev 9527)
@@ -49,6 +49,7 @@
static const int QueryFeatureProperties3 = 0x1111E915;
static const int RenderMetatile = 0x1111E916;
static const int RenderTileFromMetaTile = 0x1111E917;
+ static const int RenderTileMVT = 0x1111E918;
};
/// \endcond
Modified: sandbox/jng/mvt/Common/MapGuideCommon/Services/RenderingService.h
===================================================================
--- sandbox/jng/mvt/Common/MapGuideCommon/Services/RenderingService.h 2019-05-31 14:10:44 UTC (rev 9526)
+++ sandbox/jng/mvt/Common/MapGuideCommon/Services/RenderingService.h 2019-05-31 14:33:22 UTC (rev 9527)
@@ -335,6 +335,46 @@
/////////////////////////////////////////////////////////////////
/// \brief
+ /// Returns the specified MVT (Mapbox Vector Tile) for the given map. Tile structure is
+ /// based on the XYZ tiling scheme used by Google Maps, OpenStreetMap, and
+ /// others
+ ///
+ /// \param map
+ /// Input
+ /// map object containing current state of map.
+ /// \param baseMapLayerGroupName
+ /// Input
+ /// Specifies the name of the baseMapLayerGroup for which to render the tile.
+ /// \param x
+ /// Input
+ /// Specifies the row index of the tile to return.
+ /// \param y
+ /// Input
+ /// Specifies the column index of the tile to return.
+ /// \param z
+ /// Input
+ /// Specifies the zoom level of the tile to return.
+ /// \param dpi
+ /// Input
+ /// Specifies the dpi of the tile to return.
+ /// \param tileImageFormat
+ /// Input
+ /// Specifies the image format of the tile to return.
+ ///
+ /// \return
+ /// A byte reader containing the rendered tile image.
+ ///
+ /// \since 4.0
+ virtual MgByteReader* RenderTileMVT(
+ MgMap* map,
+ CREFSTRING baseMapLayerGroupName,
+ INT32 x,
+ INT32 y,
+ INT32 z,
+ INT32 dpi) = 0;
+
+ /////////////////////////////////////////////////////////////////
+ /// \brief
/// Renders all dynamic layers in the specified MgMap to a dynamic overlay image
/// with a transparent background. The center, scale, size, and layers to be
/// rendered are defined by the specified map instance. The format parameter
Added: sandbox/jng/mvt/Server/src/Services/Rendering/OpRenderTileMVT.cpp
===================================================================
--- sandbox/jng/mvt/Server/src/Services/Rendering/OpRenderTileMVT.cpp (rev 0)
+++ sandbox/jng/mvt/Server/src/Services/Rendering/OpRenderTileMVT.cpp 2019-05-31 14:33:22 UTC (rev 9527)
@@ -0,0 +1,111 @@
+//
+// Copyright (C) 2004-2019 by Autodesk, Inc.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of version 2.1 of the GNU Lesser
+// General Public License as published by the Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#include "OpRenderTileMVT.h"
+#include "LogManager.h"
+
+MgOpRenderTileMVT::MgOpRenderTileMVT()
+{
+}
+
+MgOpRenderTileMVT::~MgOpRenderTileMVT()
+{
+}
+
+void MgOpRenderTileMVT::Execute()
+{
+ ACE_DEBUG((LM_DEBUG, ACE_TEXT(" (%t) MgOpRenderTileMVT::Execute()\n")));
+
+ MG_LOG_OPERATION_MESSAGE(L"MgOpRenderTileMVT");
+
+ MG_TRY()
+
+ MG_LOG_OPERATION_MESSAGE_INIT(m_packet.m_OperationVersion, m_packet.m_NumArguments);
+
+ ACE_ASSERT(m_stream != NULL);
+
+ if (6 == m_packet.m_NumArguments)
+ {
+ Ptr<MgMap> map = (MgMap*)m_stream->GetObject();
+ Ptr<MgResourceIdentifier> resource = map->GetResourceId();
+ map->SetDelayedLoadResourceService(m_resourceService);
+
+ STRING baseMapLayerGroupName;
+ m_stream->GetString(baseMapLayerGroupName);
+
+ INT32 x = 0;
+ m_stream->GetInt32(x);
+
+ INT32 y = 0;
+ m_stream->GetInt32(y);
+
+ INT32 z = 0;
+ m_stream->GetInt32(z);
+
+ INT32 tileDpi = 0;
+ m_stream->GetInt32(tileDpi);
+
+ BeginExecution();
+
+ MG_LOG_OPERATION_MESSAGE_PARAMETERS_START();
+ MG_LOG_OPERATION_MESSAGE_ADD_STRING((NULL == resource) ? L"MgResourceIdentifier" : resource->ToString().c_str());
+ MG_LOG_OPERATION_MESSAGE_ADD_SEPARATOR();
+ MG_LOG_OPERATION_MESSAGE_ADD_STRING(baseMapLayerGroupName.c_str());
+ MG_LOG_OPERATION_MESSAGE_ADD_SEPARATOR();
+ MG_LOG_OPERATION_MESSAGE_ADD_INT32(x);
+ MG_LOG_OPERATION_MESSAGE_ADD_SEPARATOR();
+ MG_LOG_OPERATION_MESSAGE_ADD_INT32(y);
+ MG_LOG_OPERATION_MESSAGE_ADD_SEPARATOR();
+ MG_LOG_OPERATION_MESSAGE_ADD_INT32(z);
+ MG_LOG_OPERATION_MESSAGE_ADD_SEPARATOR();
+ MG_LOG_OPERATION_MESSAGE_ADD_INT32(tileDpi);
+ MG_LOG_OPERATION_MESSAGE_PARAMETERS_END();
+
+ Validate();
+
+ Ptr<MgByteReader> byteReader = m_service->RenderTileMVT(map, baseMapLayerGroupName, x, y, z, tileDpi);
+
+ EndExecution(byteReader);
+ }
+ else
+ {
+ MG_LOG_OPERATION_MESSAGE_PARAMETERS_START();
+ MG_LOG_OPERATION_MESSAGE_PARAMETERS_END();
+ }
+
+ if (!m_argsRead)
+ {
+ throw new MgOperationProcessingException(L"MgOpRenderTileMVT.Execute",
+ __LINE__, __WFILE__, NULL, L"", NULL);
+ }
+
+ // Successful operation
+ MG_LOG_OPERATION_MESSAGE_ADD_STRING(MgResources::Success.c_str());
+
+ MG_CATCH(L"MgOpRenderTileMVT.Execute")
+
+ if (mgException != NULL)
+ {
+ // Failed operation
+ MG_LOG_OPERATION_MESSAGE_ADD_STRING(MgResources::Failure.c_str());
+ }
+
+ // Add access log entry for operation
+ MG_LOG_OPERATION_MESSAGE_ACCESS_ENTRY();
+
+ MG_THROW()
+}
Added: sandbox/jng/mvt/Server/src/Services/Rendering/OpRenderTileMVT.h
===================================================================
--- sandbox/jng/mvt/Server/src/Services/Rendering/OpRenderTileMVT.h (rev 0)
+++ sandbox/jng/mvt/Server/src/Services/Rendering/OpRenderTileMVT.h 2019-05-31 14:33:22 UTC (rev 9527)
@@ -0,0 +1,33 @@
+//
+// Copyright (C) 2004-2019 by Autodesk, Inc.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of version 2.1 of the GNU Lesser
+// General Public License as published by the Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#ifndef MG_OP_RENDER_TILE_MVT_H
+#define MG_OP_RENDER_TILE_MVT_H
+
+#include "RenderingOperation.h"
+
+class MgOpRenderTileMVT : public MgRenderingOperation
+{
+public:
+ MgOpRenderTileMVT();
+ virtual ~MgOpRenderTileMVT();
+
+public:
+ virtual void Execute();
+};
+
+#endif
\ No newline at end of file
Modified: sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.cpp
===================================================================
--- sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.cpp 2019-05-31 14:10:44 UTC (rev 9526)
+++ sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.cpp 2019-05-31 14:33:22 UTC (rev 9527)
@@ -21,6 +21,7 @@
#include "GDRenderer.h"
#include "AGGRenderer.h"
#include "UTFGridRenderer.h"
+#include "MVTRenderer.h"
#include "RSMgSymbolManager.h"
#include "RSMgFeatureReader.h"
#include "FeatureInfoRenderer.h"
@@ -39,6 +40,9 @@
#define XYZ_TILE_WIDTH 256
#define XYZ_TILE_HEIGHT 256
+#define MVT_TILE_WIDTH 4096
+#define MVT_TILE_HEIGHT 4096
+
// the maximum number of allowed pixels for rendered images
static const INT32 MAX_PIXELS = 16384*16384;
static const INT32 FILTER_VISIBLE = 1;
@@ -345,7 +349,7 @@
// sanity check - number of image pixels cannot exceed MAX_PIXELS
if (drawWidth * drawHeight > MAX_PIXELS)
- throw new MgOutOfRangeException(L"MgServerRenderingService.RenderMap", __LINE__, __WFILE__, NULL, L"MgInvalidImageSizeTooBig", NULL);
+ throw new MgOutOfRangeException(L"MgServerRenderingService.RenderTileUTFGrid", __LINE__, __WFILE__, NULL, L"MgInvalidImageSizeTooBig", NULL);
// create a temporary collection containing all the layers for the base group
Ptr<MgLayerCollection> layers = map->GetLayers();
@@ -434,6 +438,144 @@
return ret.Detach();
}
+MgByteReader* MgServerRenderingService::RenderTileMVT(MgMap * map,
+ CREFSTRING baseMapLayerGroupName,
+ INT32 x,
+ INT32 y,
+ INT32 z,
+ INT32 dpi)
+{
+ Ptr<MgByteReader> ret;
+
+ MG_TRY()
+
+ CHECKARGUMENTNULL(map, L"MgServerRenderingService.RenderTileMVT");
+ CHECKARGUMENTEMPTYSTRING(baseMapLayerGroupName, L"MgServerRenderingService.RenderTileMVT");
+
+ // get the layer group associated with the name
+ Ptr<MgLayerGroupCollection> layerGroups = map->GetLayerGroups();
+ Ptr<MgLayerGroup> baseGroup = layerGroups->GetItem(baseMapLayerGroupName);
+ if (baseGroup == NULL)
+ {
+ MgStringCollection arguments;
+ arguments.Add(L"2");
+ arguments.Add(baseMapLayerGroupName);
+
+ throw new MgInvalidArgumentException(L"MgServerRenderingService.RenderTileMVT",
+ __LINE__, __WFILE__, &arguments, L"MgMapLayerGroupNameNotFound", NULL);
+ }
+
+ //Set the dpi
+ map->SetDisplayDpi(dpi);
+
+ int width = MVT_TILE_WIDTH;
+ int height = MVT_TILE_HEIGHT;
+
+ // Inlining same logic from RenderTile() overload below as we want the same logic, but we want to pass scale
+ // instead of scale index
+
+ // get map extent that corresponds to tile extent
+ RS_Bounds extent;
+ ComputeXYZTileExtents(map, x, y, z, extent);
+
+ INT32 drawWidth = width;
+ INT32 drawHeight = height;
+ double scale = 0.0;
+ ComputeScaledDimensions(extent, width, height, dpi, map->GetMetersPerUnit(), drawWidth, drawHeight, scale);
+
+ //printf("XYZ(%d, %d, %d) -> [%f, %f] [%f, %f] at %f -- (w: %d, h: %d, mpu: %f)\n", x, y, z, mcsMinX, mcsMinY, mcsMaxX, mcsMaxY, scale, width, height, map->GetMetersPerUnit());
+
+ // sanity check - number of image pixels cannot exceed MAX_PIXELS
+ if (drawWidth * drawHeight > MAX_PIXELS)
+ throw new MgOutOfRangeException(L"MgServerRenderingService.RenderTileMVT", __LINE__, __WFILE__, NULL, L"MgInvalidImageSizeTooBig", NULL);
+
+ // create a temporary collection containing all the layers for the base group
+ Ptr<MgLayerCollection> layers = map->GetLayers();
+ Ptr<MgReadOnlyLayerCollection> roLayers = new MgReadOnlyLayerCollection();
+ for (int i = 0; i<layers->GetCount(); i++)
+ {
+ Ptr<MgLayerBase> layer = layers->GetItem(i);
+ Ptr<MgLayerGroup> parentGroup = layer->GetGroup();
+ if (parentGroup == baseGroup)
+ roLayers->Add(layer);
+ }
+
+ // of course the group has to also be visible
+ bool groupVisible = baseGroup->GetVisible();
+ baseGroup->SetVisible(true);
+
+ // We'd like to re-use RenderMapInternal, but its design is biased towards image-based SE_Renderers (that expect to
+ // save to some RS_ByteData that an MgByteReader is returned from.
+ //
+ // Our MVTRenderer is not such a renderer, so we have to inline the pertinent bits here
+
+ // set the map scale to the requested scale
+ map->SetViewScale(scale);
+
+ // convert the map coordinate system from srs wkt to a mentor cs structure
+ STRING srs = map->GetMapSRS();
+ Ptr<MgCoordinateSystem> dstCs;
+ if (!srs.empty())
+ {
+ // let's not fail here if coord sys conversion fails for the map's
+ // coordinate system. Instead we will fail per layer at a later stage
+ try
+ {
+ dstCs = m_pCSFactory->Create(srs);
+ }
+ catch (MgInvalidCoordinateSystemException* e)
+ {
+ e->Release();
+ }
+ }
+
+ RS_String units = dstCs.p ? dstCs->GetUnits() : L"";
+
+ // get the session ID
+ STRING sessionId;
+ Ptr<MgUserInformation> userInfo = MgUserInformation::GetCurrentUserInfo();
+ if (userInfo != NULL)
+ sessionId = userInfo->GetMgSessionId();
+
+ MVTRenderer dr;
+
+ RSMgSymbolManager mgr(m_svcResource);
+ dr.SetSymbolManager(&mgr);
+
+ SEMgSymbolManager semgr(m_svcResource);
+ DefaultStylizer ds(&semgr);
+
+ RS_Color bgcolor(0, 0, 0, 255); //Not used by MVTRenderer
+
+ Ptr<MgPoint> ptCenter = map->GetViewCenter();
+ Ptr<MgCoordinate> coord = ptCenter->GetCoordinate();
+ RS_MapUIInfo mapInfo(sessionId, map->GetName(), map->GetObjectId(), srs, units, bgcolor, coord->GetX(), coord->GetY(), scale);
+
+ // begin map stylization
+ dr.StartMap(&mapInfo, extent, scale, map->GetDisplayDpi(), map->GetMetersPerUnit(), NULL);
+
+ // We can't use RenderMapInternal, but we can use RenderLayers, which is all we really need
+ RenderLayers(map, roLayers, &ds, &dr, dstCs, true, scale, L"UTFGRID", NULL);
+
+ dr.EndMap();
+
+ // restore the base group's visibility
+ baseGroup->SetVisible(groupVisible);
+
+ // Now extract the encoded MVT tile and pack it into a MgByteReader
+ std::string mvt;
+ dr.GetMVTContent(mvt);
+ Ptr<MgByteSource> bs = new MgByteSource((BYTE_ARRAY_IN)mvt.c_str(), (INT32)mvt.length());
+
+ bs->SetMimeType(MgMimeType::Mvt);
+
+ ret = bs->GetReader();
+
+ MG_CATCH_AND_THROW(L"MgServerRenderingService.RenderTileMVT")
+
+ return ret.Detach();
+}
+
///////////////////////////////////////////////////////////////////////////////
/// render a map using all layers from the baseGroup
MgByteReader* MgServerRenderingService::RenderTileInternal(MgMap* map,
Modified: sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.h
===================================================================
--- sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.h 2019-05-31 14:10:44 UTC (rev 9526)
+++ sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.h 2019-05-31 14:33:22 UTC (rev 9527)
@@ -99,6 +99,13 @@
INT32 z,
INT32 dpi);
+ virtual MgByteReader* RenderTileMVT(MgMap* map,
+ CREFSTRING baseMapLayerGroupName,
+ INT32 x,
+ INT32 y,
+ INT32 z,
+ INT32 dpi);
+
virtual MgByteReader* RenderDynamicOverlay(MgMap* map,
MgSelection* selection,
CREFSTRING format);
Modified: sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.vcxproj
===================================================================
--- sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.vcxproj 2019-05-31 14:10:44 UTC (rev 9526)
+++ sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.vcxproj 2019-05-31 14:33:22 UTC (rev 9527)
@@ -252,6 +252,12 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
+ <ClCompile Include="OpRenderTileMVT.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ </ClCompile>
<ClCompile Include="OpRenderTileXYZ.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
@@ -318,6 +324,7 @@
<ClInclude Include="OpRenderMetatileXYZ.h" />
<ClInclude Include="OpRenderTile.h" />
<ClInclude Include="OpRenderTileFromMetatile.h" />
+ <ClInclude Include="OpRenderTileMVT.h" />
<ClInclude Include="OpRenderTileXYZ.h" />
<ClInclude Include="OpRenderTileUTFGrid.h" />
<ClInclude Include="RenderingOperation.h" />
Modified: sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.vcxproj.filters
===================================================================
--- sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.vcxproj.filters 2019-05-31 14:10:44 UTC (rev 9526)
+++ sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingService.vcxproj.filters 2019-05-31 14:33:22 UTC (rev 9527)
@@ -51,6 +51,9 @@
<ClCompile Include="OpRenderTileFromMetatile.cpp">
<Filter>Ops</Filter>
</ClCompile>
+ <ClCompile Include="OpRenderTileMVT.cpp">
+ <Filter>Ops</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="OpQueryFeatureProperties.h">
@@ -98,6 +101,9 @@
<ClInclude Include="OpRenderTileFromMetatile.h">
<Filter>Ops</Filter>
</ClInclude>
+ <ClInclude Include="OpRenderTileMVT.h">
+ <Filter>Ops</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="ServerRenderingService.rc" />
Modified: sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingServiceBuild.cpp
===================================================================
--- sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingServiceBuild.cpp 2019-05-31 14:10:44 UTC (rev 9526)
+++ sandbox/jng/mvt/Server/src/Services/Rendering/ServerRenderingServiceBuild.cpp 2019-05-31 14:33:22 UTC (rev 9527)
@@ -28,6 +28,7 @@
#include "OpRenderTile.cpp"
#include "OpRenderTileXYZ.cpp"
#include "OpRenderTileUTFGrid.cpp"
+#include "OpRenderTileMVT.cpp"
#include "OpQueryFeatures.cpp"
#include "OpQueryFeatureProperties.cpp"
#include "RenderingOperation.cpp"
More information about the mapguide-commits
mailing list