Changes between Version 2 and Version 3 of MapGuideRfc140


Ignore:
Timestamp:
07/25/14 00:31:52 (10 years ago)
Author:
jng
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc140

    v2 v3  
    4040
    4141 * Introducing a new resource type: TileSetDefinition
     42 * RenderTile API update
    4243 * CREATERUNTIMEMAP/DESCRIBERUNTIMEMAP update
    4344 * Implementing a simple provider model to support different tile sources
     
    458459The existing Create() method of MgMap now also supports Tile Set Definitions meaning it is now possible to create MgMap instances from a Tile Set Definition or a Map Definition. This was done out of necessity as the server implementation of the Tile Service needs to be able to make an MgMap instance to pass to the RenderTile rendering method. For this RFC, we will apply some limitations on what Tile Set Definitions can be passed to MgMap::Create(). See Implications for more information.
    459460
     461=== RenderTile API update ===
     462
     463The RenderTile API is the fundamental primitive that all tile rendering use to produce map tiles. To support tile rendering via TileSetDefinition resources, we'll add a new overload of RenderTile that can accept additional parameters that were previously globally defined in serverconfig.ini
     464
     465{{{
     466class MG_MAPGUIDE_API MgRenderingService : public MgService
     467{
     468PUBLISHED_API:
     469    /////////////////////////////////////////////////////////////////
     470    /// \brief
     471    /// Returns the specified base map tile for the given map.
     472    ///
     473    /// \remarks
     474    /// This method only renders the given tile. No tile caching is performed
     475    /// by this method. To render and cache the tile, use the
     476    /// \link MgTileService::GetTile GetTile \endlink method instead.
     477    ///
     478    /// \param map
     479    /// Input
     480    /// map object containing current state of map.
     481    /// \param baseMapLayerGroupName
     482    /// Input
     483    /// Specifies the name of the baseMapLayerGroup for which to render the tile.
     484    /// \param tileColumn
     485    /// Input
     486    /// Specifies the column index of the tile to return.
     487    /// \param tileRow
     488    /// Input
     489    /// Specifies the row index of the tile to return.
     490    /// \param tileWidth
     491    /// Input
     492    /// Specifies the width of the tile to return.
     493    /// \param tileHeight
     494    /// Input
     495    /// Specifies the height of the tile to return.
     496    /// \param tileDpi
     497    /// Input
     498    /// Specifies the dpi the tile to return.
     499    /// \param tileImageFormat
     500    /// Input
     501    /// Specifies the image format of the tile. See \link MgImageFormats \endlink
     502    ///
     503    /// \return
     504    /// A byte reader containing the rendered tile image.
     505    ///
     506    virtual MgByteReader* RenderTile(
     507        MgMap* map,
     508        CREFSTRING baseMapLayerGroupName,
     509        INT32 tileColumn,
     510        INT32 tileRow,
     511        INT32 tileWidth,
     512        INT32 tileHeight,
     513        INT32 tileDpi,
     514        CREFSTRING tileImageFormat) = 0;
     515};
     516}}}
     517
    460518=== CREATERUNTIMEMAP/DESCRIBERUNTIMEMAP update ===
    461519
     
    9521010        INT32 y,
    9531011        INT32 z) = 0;
     1012
     1013    /////////////////////////////////////////////////////////////////
     1014    /// \brief
     1015    /// Returns the specified map tile for the given map. Tile structure is
     1016    /// based on the XYZ tiling scheme used by Google Maps, OpenStreetMap, and
     1017    /// others
     1018    ///
     1019    /// \param map
     1020    /// Input
     1021    /// map object containing current state of map.
     1022    /// \param baseMapLayerGroupName
     1023    /// Input
     1024    /// Specifies the name of the baseMapLayerGroup for which to render the tile.
     1025    /// \param x
     1026    /// Input
     1027    /// Specifies the row index of the tile to return.
     1028    /// \param y
     1029    /// Input
     1030    /// Specifies the column index of the tile to return.
     1031    /// \param z
     1032    /// Input
     1033    /// Specifies the zoom level of the tile to return.
     1034    /// \param dpi
     1035    /// Input
     1036    /// Specifies the dpi of the tile to return.
     1037    /// \param tileImageFormat
     1038    /// Input
     1039    /// Specifies the image format of the tile to return.
     1040    ///
     1041    /// \return
     1042    /// A byte reader containing the rendered tile image.
     1043    ///
     1044    virtual MgByteReader* RenderTileXYZ(
     1045        MgMap* map,
     1046        CREFSTRING baseMapLayerGroupName,
     1047        INT32 x,
     1048        INT32 y,
     1049        INT32 z,
     1050        INT32 dpi,
     1051        CREFSTRING tileImageFormat) = 0;
    9541052};
    9551053}}}