Changes between Version 4 and Version 5 of MapGuideRfc140


Ignore:
Timestamp:
Mar 17, 2015, 3:57:29 AM (9 years ago)
Author:
jng
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc140

    v4 v5  
    99||RFC Template Version||(1.0)||
    1010||Submission Date||1 July 2014||
    11 ||Last Modified||12 August 2014||
     11||Last Modified||17 March 2015||
    1212||Author||Jackie Ng||
    1313||RFC Status||Implemented||
     
    2121||-1||||
    2222||no vote||Haris,Trevor,Kevin,Zac,Gordon||
     23
     24'''Author's note (17 March 2015): Upon further analysis, the correct coordinate systems for XYZ tile sets is not LL84, but WGS84.PseudoMercator. This RFC has been amended to reflect this fact'''
    2325
    2426== Overview ==
     
    859861 * FiniteScaleList - Defines the discrete set of zoom levels for this tile set.
    860862
    861 The "XYZ" provider implements tile rendering and access using the XYZ tiling scheme. Coordinate System is always LL84 and size of rendered tiles are locked at 256x256 pixels. See XYZ support below for more information. "XYZ" provider also uses a simplified directory structure for storing tiles `<basepath>/<group>/<z>/<x>/<y>.<format>` allowing for easy and intuitive external access if the tile cache was exposed by a web server. The following parameters can be specified to a "XYZ" tile provider:
     863The "XYZ" provider implements tile rendering and access using the XYZ tiling scheme. Coordinate System is always ~~LL84~~ WGS84.PseudoMercator and size of rendered tiles are locked at 256x256 pixels. See XYZ support below for more information. "XYZ" provider also uses a simplified directory structure for storing tiles `<basepath>/<group>/<z>/<x>/<y>.<format>` allowing for easy and intuitive external access if the tile cache was exposed by a web server. The following parameters can be specified to a "XYZ" tile provider:
    862864
    863865 * TilePath - Defines where rendered tiles will be cached. This can be any path of your choice or %MG_TILE_CACHE_PATH% to use the MapGuide-designated tile cache path.
     
    939941    <Name>XYZ</Name>
    940942    <DisplayName>XYZ Tile Provider</DisplayName>
    941     <Description>XYZ tile access provided by MapGuide. Grid scheme is compatible with Google Maps and Open Street Map. Rendered tiles are 256x256. Layers must be convertible from lat/lon coordinates. Under this scheme, Row = X, Column = Y, Scale = Z for accessing tiles. Supports MapGuide-managed tile path or user-defined path</Description>
     943    <Description>XYZ tile access provided by MapGuide. Grid scheme is compatible with Google Maps and Open Street Map. Rendered tiles are 256x256. Layers must be convertible from WGS84.PseudoMercator coordinates. Under this scheme, Row = X, Column = Y, Scale = Z for accessing tiles. Supports MapGuide-managed tile path or user-defined path</Description>
    942944    <ConnectionProperties>
    943945      <ConnectionProperty Enumerable="false" Protected="false" Required="true">
     
    10531055}}}
    10541056
    1055 Based on the given x, y and z values, [http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames we use defined mathematical forumlae] to convert this to a lat/lon bounding box. If the coordinate system of the tile set is already lat/lon, the map tile will be rendered for these bounds. Otherwise the bounds will be transformed to the tile set's coordinate system before doing the rendering.
     1057Based on the given x, y and z values, [http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames we use defined mathematical forumlae] to convert this to a lat/lon bounding box (that is transformed to WGS84.PseudoMercator coordinates when dispatching the actual feature queries for tile rendering). If the coordinate system of the tile set is already ~~lat/lon~~ WGS84.PseudoMercator, the map tile will be rendered for these bounds. Otherwise the bounds will be transformed to the tile set's coordinate system before doing the rendering.
    10561058
    10571059Tile Set Definitions using the XYZ provider will be using this API for the actual tile rendering.
     
    11201122Client applications have already been modified to handle this expectation.
    11211123
    1122 An important constraint of the XYZ tiling scheme is that XYZ resolves to lat/lon coordinates. Therefore any map you wish to make available as an XYZ tileset must be in a coordinate system that is either LL84 or transformable from LL84. Maps based on arbitrary coordinate systems cannot be served as XYZ tile sets.
     1124An important constraint of the XYZ tiling scheme is that XYZ resolves to real world coordinates. Therefore any map you wish to make available as an XYZ tileset must be in a coordinate system that is either ~~LL84~~ WGS84.PseudoMercator or transformable from ~~LL84~~ WGS84.PseudoMercator. Maps based on arbitrary coordinate systems cannot be served as XYZ tile sets.
    11231125
    11241126As mentioned above, the MgMap::Create() method now supports Tile Set Definitions. However for the public API, the method will only support Tile Set Definitions using the "Default" tile provider. The reason for this is that when creating a MgMap, it also needs to be initalized with the coordinate system and finite scale lists, and only Tile Set Definitions using the "Default" tile provider can provide this information. It is not possible to create a MgMap using a Tile Set Definition that uses the XYZ provider. Such attempts will throw a MgUnsupportedTileProviderException.