= !MapGuide RFC 134 - HTTP Runtime Map Creation =
This page contains a change request (RFC) for the !MapGuide Open Source project.
More !MapGuide RFCs can be found on the [wiki:MapGuideRfcs RFCs] page.
== Status ==
||RFC Template Version||(1.0)||
||Submission Date||13 May 2013||
||Last Modified||13 May 2013||
||Author||Jackie Ng||
||RFC Status||draft||
||Implementation Status||pending||
||Proposed Milestone||2.6||
||Assigned PSC guide(s)||(when determined)||
||'''Voting History'''||(vote date)||
||+1||||
||+0||||
||-0||||
||-1||||
||no vote|| ||
== Overview ==
This RFC proposes to add support for creating Runtime Maps via the mapagent
== Motivation ==
It is currently not possible for a client-side application to be able to create a Runtime Map without assistance from the Web Extensions API or through knowledge of how the runtime map state is stored server-side. Current methods include:
a) Implementing a helper script via the Web Extensions API to return the key pieces of information needed to work and interact with a runtime map. The [http://dev.openlayers.org/releases/OpenLayers-2.12/examples/mapguide.html MapGuide OpenLayers sample] requires the client application specify key missing information that only the Web Extensions API can provide:
* Session ID
* Map Name
* Coordinate System (WKT/EPSG code)
* Meters-Per-Unit
b) Using the Maestro API in .net to construct the Runtime Map client-side by building the expected binary blob (that will be saved server-side) containing the initial runtime map state. This is somewhat of a hack as it relies on undocumented internals of the runtime map blob being serialized that could change with any new release of MapGuide.
There is no way to build a Runtime Map client-side without the assistance of the Web Extensions API or a hacky solution like Maestro. This RFC addresses this shortcoming.
== Proposed Solution ==
We introduce a new operation to the mapagent: CREATERUNTIMEMAP
This new operation has the following parameters (in addition to the standard OPERATION, VERSION, LOCALE, SESSION, USERNAME, PASSWORD and FORMAT parameters)
||Name||Description||Required||
||MAPDEFINITION||The resource id of the Map Definition to create a Runtime Map from||Yes||
||REQUESTEDFEATURES||A bitmask specifying what pieces of information to includein the CREATERUNTIMEMAP response||No||
||ICONSPERSCALERANGE||The number of icons to render inline (as base64 images) per scale range in each layer of the map||No||
The REQUESTEDFEATURES parameters can be logically ORed with the following values:
* 1 - The basic layer and group structure is returned.
* 2 - Associated style icons are returned with each layer. This value only takes effect if (1) was logically ORed into the mask.
* 4 - Feature Source information is included with each layer. This value only takes effect if (1) was logically ORed into the mask.
The ICONSPERSCALERANGE parameter is used to apply "theme compression". If a given layer contains a scale range whose number of rules exceeds the given number, only the first and last rule items will have icons rendered inline, with the assumption that a client-application will "compress" the remaining rules when displaying in an interactive legend control. This is what the AJAX and Fusion viewers both currently do. If this parameter is not specified, and the REQUESTEDFEATURES include a request for icons (2), then a default value of 25 will be used (same value we currently use for LoadMap.php and LoadScaleRanges.php for Fusion).
Inline icons are rendered as base64 strings. With an associated mime type included, allowing for browsers to construct the relevant data URIs client-side. Non-browser clients can use the mime type to determine how the base64 content should be read into an image.
The REQUESTDFEATURES parameter allows for scalable CREATERUNTIMEMAP responses depending on the needs of the client application. As part of this RFC, Fusion will use CREATERUNTIMEMAP for its map initialization if it determined that the server support is there, allowing it to bypass the asynchronous call chain to LoadMap.php and LoadScaleRanges.php
JSON output format is supported, and provides the same benefits as other operations that support JSON output.
Some example responses below (all using the Sheboygan Map Definition):
A CREATERUNTIMEMAP request without the REQUESTEDFEATURES looks like this:
{{{
2.6.0.0
d034be04-bcb0-11e2-8000-080027004461_en_MTI3LjAuMC4x0B060B050B04
Sheboygan
Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition
FFCDBD9C
GEOGCS["WGS84 Lat/Long's, Degrees, -180 ==> +180",DATUM["D_WGS_1984",SPHEROID["World_Geodetic_System_of_1984",6378137,298.257222932867]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
LL84
4326
111319.49079327358
-87.764986990962839
43.691398128787782
-87.695521510899724
43.797520000480347
}}}
And a minimal request for a tiled map looks like this
{{{
2.6.0.0
33cdf566-bcb1-11e2-8000-080027004461_en_MTI3LjAuMC4x0B060B050B04
Sheboygan
Library://Samples/Sheboygan/MapsTiled/Sheboygan.MapDefinition
FFCDBD9C
GEOGCS["WGS84 Lat/Long's, Degrees, -180 ==> +180",DATUM["D_WGS_1984",SPHEROID["World_Geodetic_System_of_1984",6378137,298.257222932867]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
LL84
4326
111319.49079327358
-87.764986990962839
43.691398128787782
-87.695521510899724
43.797520000480347
1000
1930.6977300000001
3727.5937199999998
7196.8567300000004
13894.95494
26826.95795
51794.746789999997
100000
}}}
This response contains the minimal information required for a client mapping library like OpenLayers to build a basic map viewer out of. It also contains the required session id and map name needed to dispatch additional mapagent requests for other operations that operate against the runtime map like rendering (GETDYNAMICMAPOVERLAYIMAGE) and feature selection (QUERYMAPFEATURES). The MapGuide Site Version is included so the client application can make (generally safe) assumptions about what level of API/operation support is available from the mapagent.
The session id is either passed in via the SESSION request parameter, or generated via the USERNAME/PASSWORD request parameters or a successful HTTP basic authentication challenge. Therefore, CREATERUNTIMEMAP serves the same function as the CREATESESSION operation, negating the need to fire off this request first beforehand by the client application.
The various permutations of the REQUESTEDFEATURES bitmask extend upon the basic minimal XML response with additional information, all detailed below.
REQUESTEDFEATURES = 1 (with basic layer/group structure):
{{{
2.6.0.0
7c06dec4-bcb1-11e2-8000-080027004461_en_MTI3LjAuMC4x0B060B050B04
Sheboygan
Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition
FFCDBD9C
GEOGCS["WGS84 Lat/Long's, Degrees, -180 ==> +180",DATUM["D_WGS_1984",SPHEROID["World_Geodetic_System_of_1984",6378137,298.257222932867]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
LL84
4326
111319.49079327358
-87.764986990962839
43.691398128787782
-87.695521510899724
43.797520000480347
Base Map
1
Base Map
7c0aaf5e-bcb1-11e2-8000-080027004461
true
true
true
true
Municipal
1
Municipal
7c0aaf5e-bcb1-11e2-8001-080027004461
true
true
true
true
Transportation
1
Transportation
7c0aaf5e-bcb1-11e2-8002-080027004461
true
true
true
true
1
Library://Samples/Sheboygan/Layers/Roads.LayerDefinition
Roads
Roads
7c0ad66e-bcb1-11e2-8000-080027004461
7c0aaf5e-bcb1-11e2-8002-080027004461
false
true
true
true
true
1
Library://Samples/Sheboygan/Layers/Tracks.LayerDefinition
Rail Lines
Rail Lines
7c0ad66e-bcb1-11e2-8001-080027004461
7c0aaf5e-bcb1-11e2-8002-080027004461
false
true
true
false
false
1
Library://Samples/Sheboygan/Layers/Districts.LayerDefinition
Districts
Districts
7c0ad66e-bcb1-11e2-8002-080027004461
7c0aaf5e-bcb1-11e2-8001-080027004461
false
true
true
true
false
1
Library://Samples/Sheboygan/Layers/Buildings.LayerDefinition
Buildings
Buildings
7c0ad66e-bcb1-11e2-8003-080027004461
7c0aaf5e-bcb1-11e2-8001-080027004461
false
true
true
true
true
1
Library://Samples/Sheboygan/Layers/Parcels.LayerDefinition
Parcels
Parcels
7c0ad66e-bcb1-11e2-8004-080027004461
7c0aaf5e-bcb1-11e2-8001-080027004461
true
true
true
true
true
1
Library://Samples/Sheboygan/Layers/Islands.LayerDefinition
Islands
Islands
7c0afd7e-bcb1-11e2-8000-080027004461
7c0aaf5e-bcb1-11e2-8000-080027004461
false
true
true
true
true
1
Library://Samples/Sheboygan/Layers/Hydrography.LayerDefinition
Hydrography
Hydrography
7c0afd7e-bcb1-11e2-8001-080027004461
7c0aaf5e-bcb1-11e2-8000-080027004461
false
true
true
true
true
1
Library://Samples/Sheboygan/Layers/CityLimits.LayerDefinition
CityLimits
CityLimits
7c0afd7e-bcb1-11e2-8002-080027004461
7c0aaf5e-bcb1-11e2-8000-080027004461
false
true
true
true
true
}}}
The layers and groups are presented in the response as a flat list (like the Map Definition). Client applications can use the parent ObjectId -> Group ObjectID relationship to construct the appropriate parent-child relationships and hierarchy.
REQUESTEDFEATURES = 3 (Basic layer/group structure with inline icons)
{{{
2.6.0.0
b5392044-bcb1-11e2-8000-080027004461_en_MTI3LjAuMC4x0B060B050B04
Sheboygan
Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition
FFCDBD9C
GEOGCS["WGS84 Lat/Long's, Degrees, -180 ==> +180",DATUM["D_WGS_1984",SPHEROID["World_Geodetic_System_of_1984",6378137,298.257222932867]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
LL84
4326
111319.49079327358
-87.764986990962839
43.691398128787782
-87.695521510899724
43.797520000480347
Base Map
1
Base Map
b53cf0e8-bcb1-11e2-8000-080027004461
true
true
true
true
Municipal
1
Municipal
b53cf0e8-bcb1-11e2-8001-080027004461
true
true
true
true
Transportation
1
Transportation
b53cf0e8-bcb1-11e2-8002-080027004461
true
true
true
true
1
Library://Samples/Sheboygan/Layers/Roads.LayerDefinition
Roads
Roads
b53d17f8-bcb1-11e2-8000-080027004461
b53cf0e8-bcb1-11e2-8002-080027004461
false
true
true
true
true
0
10000
2
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAIklEQVQokWP8//8/AymAiSTVI1UDS3t7O21tYByNOFpoAAAJdQewcVU/XQAAAABJRU5ErkJggg==
10000
24000
2
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAIklEQVQokWP8//8/AymAiSTVI1UDS3t7O21tYByNOFpoAAAJdQewcVU/XQAAAABJRU5ErkJggg==
1
Library://Samples/Sheboygan/Layers/Tracks.LayerDefinition
Rail Lines
Rail Lines
b53d17f8-bcb1-11e2-8001-080027004461
b53cf0e8-bcb1-11e2-8002-080027004461
false
true
true
false
false
0
24000
2
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAb0lEQVQokc2SwQnAIBAE15AmbMpSfdiIWIR3YAn62Dwur0AECULmtY9ZjoVzJLHCsWR/KIwxSilz1Zy70FqLMc4L5uzfcKaUAIiIiFh+oKoAvPfmrF8IIQCotaqq5TfM2T8aJEn23nPOnGKO+9/zXc8lZ5XdLNzmAAAAAElFTkSuQmCC
1
Library://Samples/Sheboygan/Layers/Districts.LayerDefinition
Districts
Districts
b53d17f8-bcb1-11e2-8002-080027004461
b53cf0e8-bcb1-11e2-8001-080027004461
false
true
true
true
false
10000
1000000000000
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOUlEQVQokWPcs6JOTFabgTjw6vFVhktHV/4nGlw6upKJSLPhYFTDqAZqaWB59fjq5WOriFT96vFVACkEOt/4XD28AAAAAElFTkSuQmCC
1
Library://Samples/Sheboygan/Layers/Buildings.LayerDefinition
Buildings
Buildings
b53d3f08-bcb1-11e2-8000-080027004461
b53cf0e8-bcb1-11e2-8001-080027004461
false
true
true
true
true
0
1500
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWM8evToy5cvGYgD4uLiLC9fvrx06RKRGvT09JiIVAoHoxpGNVBLA4u4uLienh6RqsXFxQHMyAxCMWcM4QAAAABJRU5ErkJggg==
1
Library://Samples/Sheboygan/Layers/Parcels.LayerDefinition
Parcels
Parcels
b53d3f08-bcb1-11e2-8001-080027004461
b53cf0e8-bcb1-11e2-8001-080027004461
true
true
true
true
true
0
10000
3
0
Zone: AGR
RTYPE = 'AGR'
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWOc0F4lwPGbgTjw4QcriwDHb0X+r0RquM/AzUSkUjgY1TCqgVoaWD78YL3PwE2k6g8/WAEoyAybnvNMrwAAAABJRU5ErkJggg==
3
1
Zone: EXM
RTYPE = 'EXM'
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWPs66zh4/rDQBz49I2FhY/rj6zwDyI1PGbgYCJSKRyMahjVQC0NLJ++sTxm4CBS9advLAA9KgyhkvW9tQAAAABJRU5ErkJggg==
3
2
Zone: MER
RTYPE = 'MER'
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWPs6a7l5fnHQBz4/IWJhZfnn6T4HyI1MDCwMBGtFApGNYxqoJYGls9fmBgYWIhU/fkLEwC9qwrV+OtROgAAAABJRU5ErkJggg==
3
3
Zone: MFG
RTYPE = 'MFG'
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOUlEQVQokWPs6q3n5mMgEnz9xMDCzccgJv2fSA2vGBiZiDUcBkY1jGqglgaWr58YXjEwEqn66ycGAIUGCqdLv0I4AAAAAElFTkSuQmCC
3
4
Zone: RES
RTYPE = 'RES'
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAO0lEQVQokWPs7G/kFGBkIA58//CfhVOAUUiemUgN7xj+MhGpFA5GNYxqoJYGlu8f/r9j+Euk6u8f/gMArKMOreezChMAAAAASUVORK5CYII=
3
5
Zone: S&W
RTYPE = 'S&W'
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAO0lEQVQokWNsn9jMLsTMQBz4+e4vC7sQM78yG5EaPjL8YiJSKRyMahjVQC0NLD/f/f3I8ItI1T/f/QUAw9kOsaqrjjYAAAAASUVORK5CYII=
3
6
Zone: WTC
RTYPE = 'WTC'
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWNsndzCJsLKQBz49eY3C5sIK7c6F5EaGBi+MRGtFApGNYxqoJYGll9vfjMwfCNS9a83vwEcRQzJpppspAAAAABJRU5ErkJggg==
3
7
Zone: Other
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAMUlEQVQokWM0NTU1NTVlIA6cPn2axdTUNCsri0gN06ZNYyJSKRyMahjVQC0NjKQmbwAmVgr+9vodNwAAAABJRU5ErkJggg==
1
Library://Samples/Sheboygan/Layers/Islands.LayerDefinition
Islands
Islands
b53d3f08-bcb1-11e2-8002-080027004461
b53cf0e8-bcb1-11e2-8000-080027004461
false
true
true
true
true
0
1000000000000
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWO8emINAymAiSTVoxpGNQwpDQAvoAJpPgoElwAAAABJRU5ErkJggg==
1
Library://Samples/Sheboygan/Layers/Hydrography.LayerDefinition
Hydrography
Hydrography
b53d3f08-bcb1-11e2-8003-080027004461
b53cf0e8-bcb1-11e2-8000-080027004461
false
true
true
true
true
0
1000000000000
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWNcffwlAymAiSTVoxpGNQwpDQBmNQJ7CUalHwAAAABJRU5ErkJggg==
1
Library://Samples/Sheboygan/Layers/CityLimits.LayerDefinition
CityLimits
CityLimits
b53d3f08-bcb1-11e2-8004-080027004461
b53cf0e8-bcb1-11e2-8000-080027004461
false
true
true
true
true
0
10000
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWM8cOAAAymAiSTVoxpGNQwpDQAT+QJghokBTgAAAABJRU5ErkJggg==
10000
1000000000000
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWO8emINAymAiSTVoxpGNQwpDQAvoAJpPgoElwAAAABJRU5ErkJggg==
}}}
REQUESTEDFEATURES = 7 (Basic layer/group structure with inline icons and Feature Source information)
{{{
2.6.0.0
c99e8646-bcb1-11e2-8000-080027004461_en_MTI3LjAuMC4x0B060B050B04
Sheboygan
Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition
FFCDBD9C
GEOGCS["WGS84 Lat/Long's, Degrees, -180 ==> +180",DATUM["D_WGS_1984",SPHEROID["World_Geodetic_System_of_1984",6378137,298.257222932867]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
LL84
4326
111319.49079327358
-87.764986990962839
43.691398128787782
-87.695521510899724
43.797520000480347
Base Map
1
Base Map
c9a256ea-bcb1-11e2-8001-080027004461
true
true
true
true
Municipal
1
Municipal
c9a256ea-bcb1-11e2-8002-080027004461
true
true
true
true
Transportation
1
Transportation
c9a256ea-bcb1-11e2-8003-080027004461
true
true
true
true
1
Library://Samples/Sheboygan/Layers/Roads.LayerDefinition
Roads
Roads
c9a27dfa-bcb1-11e2-8000-080027004461
c9a256ea-bcb1-11e2-8003-080027004461
false
true
true
true
true
Library://Samples/Sheboygan/Data/RoadCenterLines.FeatureSource
SHP_Schema:RoadCenterLines
SHPGEOM
0
10000
2
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAIklEQVQokWP8//8/AymAiSTVI1UDS3t7O21tYByNOFpoAAAJdQewcVU/XQAAAABJRU5ErkJggg==
10000
24000
2
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAIklEQVQokWP8//8/AymAiSTVI1UDS3t7O21tYByNOFpoAAAJdQewcVU/XQAAAABJRU5ErkJggg==
1
Library://Samples/Sheboygan/Layers/Tracks.LayerDefinition
Rail Lines
Rail Lines
c9a2a50a-bcb1-11e2-8000-080027004461
c9a256ea-bcb1-11e2-8003-080027004461
false
true
true
false
false
Library://Samples/Sheboygan/Data/Rail.FeatureSource
SHP_Schema:Rail
SHPGEOM
0
24000
2
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAb0lEQVQokc2SwQnAIBAE15AmbMpSfdiIWIR3YAn62Dwur0AECULmtY9ZjoVzJLHCsWR/KIwxSilz1Zy70FqLMc4L5uzfcKaUAIiIiFh+oKoAvPfmrF8IIQCotaqq5TfM2T8aJEn23nPOnGKO+9/zXc8lZ5XdLNzmAAAAAElFTkSuQmCC
1
Library://Samples/Sheboygan/Layers/Districts.LayerDefinition
Districts
Districts
c9a2a50a-bcb1-11e2-8001-080027004461
c9a256ea-bcb1-11e2-8002-080027004461
false
true
true
true
false
Library://Samples/Sheboygan/Data/VotingDistricts.FeatureSource
SDF_2_Schema:VotingDistricts
Data
10000
1000000000000
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOUlEQVQokWPcs6JOTFabgTjw6vFVhktHV/4nGlw6upKJSLPhYFTDqAZqaWB59fjq5WOriFT96vFVACkEOt/4XD28AAAAAElFTkSuQmCC
1
Library://Samples/Sheboygan/Layers/Buildings.LayerDefinition
Buildings
Buildings
c9a2a50a-bcb1-11e2-8002-080027004461
c9a256ea-bcb1-11e2-8002-080027004461
false
true
true
true
true
Library://Samples/Sheboygan/Data/BuildingOutlines.FeatureSource
SHP_Schema:BuildingOutlines
SHPGEOM
0
1500
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWM8evToy5cvGYgD4uLiLC9fvrx06RKRGvT09JiIVAoHoxpGNVBLA4u4uLienh6RqsXFxQHMyAxCMWcM4QAAAABJRU5ErkJggg==
1
Library://Samples/Sheboygan/Layers/Parcels.LayerDefinition
Parcels
Parcels
c9a2a50a-bcb1-11e2-8003-080027004461
c9a256ea-bcb1-11e2-8002-080027004461
true
true
true
true
true
Library://Samples/Sheboygan/Data/Parcels.FeatureSource
SHP_Schema:Parcels
SHPGEOM
0
10000
3
0
Zone: AGR
RTYPE = 'AGR'
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWOc0F4lwPGbgTjw4QcriwDHb0X+r0RquM/AzUSkUjgY1TCqgVoaWD78YL3PwE2k6g8/WAEoyAybnvNMrwAAAABJRU5ErkJggg==
3
1
Zone: EXM
RTYPE = 'EXM'
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWPs66zh4/rDQBz49I2FhY/rj6zwDyI1PGbgYCJSKRyMahjVQC0NLJ++sTxm4CBS9advLAA9KgyhkvW9tQAAAABJRU5ErkJggg==
3
2
Zone: MER
RTYPE = 'MER'
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWPs6a7l5fnHQBz4/IWJhZfnn6T4HyI1MDCwMBGtFApGNYxqoJYGls9fmBgYWIhU/fkLEwC9qwrV+OtROgAAAABJRU5ErkJggg==
3
3
Zone: MFG
RTYPE = 'MFG'
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOUlEQVQokWPs6q3n5mMgEnz9xMDCzccgJv2fSA2vGBiZiDUcBkY1jGqglgaWr58YXjEwEqn66ycGAIUGCqdLv0I4AAAAAElFTkSuQmCC
3
4
Zone: RES
RTYPE = 'RES'
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAO0lEQVQokWPs7G/kFGBkIA58//CfhVOAUUiemUgN7xj+MhGpFA5GNYxqoJYGlu8f/r9j+Euk6u8f/gMArKMOreezChMAAAAASUVORK5CYII=
3
5
Zone: S&W
RTYPE = 'S&W'
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAO0lEQVQokWNsn9jMLsTMQBz4+e4vC7sQM78yG5EaPjL8YiJSKRyMahjVQC0NLD/f/f3I8ItI1T/f/QUAw9kOsaqrjjYAAAAASUVORK5CYII=
3
6
Zone: WTC
RTYPE = 'WTC'
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWNsndzCJsLKQBz49eY3C5sIK7c6F5EaGBi+MRGtFApGNYxqoJYGll9vfjMwfCNS9a83vwEcRQzJpppspAAAAABJRU5ErkJggg==
3
7
Zone: Other
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAMUlEQVQokWM0NTU1NTVlIA6cPn2axdTUNCsri0gN06ZNYyJSKRyMahjVQC0NjKQmbwAmVgr+9vodNwAAAABJRU5ErkJggg==
1
Library://Samples/Sheboygan/Layers/Islands.LayerDefinition
Islands
Islands
c9a2a50a-bcb1-11e2-8004-080027004461
c9a256ea-bcb1-11e2-8001-080027004461
false
true
true
true
true
Library://Samples/Sheboygan/Data/Islands.FeatureSource
SHP_Schema:Islands
SHPGEOM
0
1000000000000
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWO8emINAymAiSTVoxpGNQwpDQAvoAJpPgoElwAAAABJRU5ErkJggg==
1
Library://Samples/Sheboygan/Layers/Hydrography.LayerDefinition
Hydrography
Hydrography
c9a2a50a-bcb1-11e2-8005-080027004461
c9a256ea-bcb1-11e2-8001-080027004461
false
true
true
true
true
Library://Samples/Sheboygan/Data/HydrographicPolygons.FeatureSource
SHP_Schema:HydrographicPolygons
SHPGEOM
0
1000000000000
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWNcffwlAymAiSTVoxpGNQwpDQBmNQJ7CUalHwAAAABJRU5ErkJggg==
1
Library://Samples/Sheboygan/Layers/CityLimits.LayerDefinition
CityLimits
CityLimits
c9a2a50a-bcb1-11e2-8006-080027004461
c9a256ea-bcb1-11e2-8001-080027004461
false
true
true
true
true
Library://Samples/Sheboygan/Data/CityLimits.FeatureSource
SHP_Schema:CityLimits
SHPGEOM
0
10000
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWM8cOAAAymAiSTVoxpGNQwpDQAT+QJghokBTgAAAABJRU5ErkJggg==
10000
1000000000000
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWO8emINAymAiSTVoxpGNQwpDQAvoAJpPgoElwAAAABJRU5ErkJggg==
}}}
Finally, REQUESTEDFEATURES = 7 (Basic layer/group structure with inline icons and Feature Source information) and ICONSPERSCALERANGE = 3.
Note the Parcels theme only has inline icons for the first and last rules because its number of rules (8) exceeds our specified limit. The omission of icons serves as a "hint" to client applications to compress this theme (which both AJAX and Fusion viewers currently do, albeit with slightly different metrics for theme compression)
{{{
2.6.0.0
52f1b566-bcb3-11e2-8000-080027004461_en_MTI3LjAuMC4x0B060B050B04
Sheboygan
Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition
FFCDBD9C
GEOGCS["WGS84 Lat/Long's, Degrees, -180 ==> +180",DATUM["D_WGS_1984",SPHEROID["World_Geodetic_System_of_1984",6378137,298.257222932867]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
LL84
4326
111319.49079327358
-87.764986990962839
43.691398128787782
-87.695521510899724
43.797520000480347
Base Map
1
Base Map
52f58600-bcb3-11e2-8000-080027004461
true
true
true
true
Municipal
1
Municipal
52f58600-bcb3-11e2-8001-080027004461
true
true
true
true
Transportation
1
Transportation
52f58600-bcb3-11e2-8002-080027004461
true
true
true
true
1
Library://Samples/Sheboygan/Layers/Roads.LayerDefinition
Roads
Roads
52f5ad10-bcb3-11e2-8000-080027004461
52f58600-bcb3-11e2-8002-080027004461
false
true
true
true
true
Library://Samples/Sheboygan/Data/RoadCenterLines.FeatureSource
SHP_Schema:RoadCenterLines
SHPGEOM
0
10000
2
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAIklEQVQokWP8//8/AymAiSTVI1UDS3t7O21tYByNOFpoAAAJdQewcVU/XQAAAABJRU5ErkJggg==
10000
24000
2
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAIklEQVQokWP8//8/AymAiSTVI1UDS3t7O21tYByNOFpoAAAJdQewcVU/XQAAAABJRU5ErkJggg==
1
Library://Samples/Sheboygan/Layers/Tracks.LayerDefinition
Rail Lines
Rail Lines
52f5ad10-bcb3-11e2-8001-080027004461
52f58600-bcb3-11e2-8002-080027004461
false
true
true
false
false
Library://Samples/Sheboygan/Data/Rail.FeatureSource
SHP_Schema:Rail
SHPGEOM
0
24000
2
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAb0lEQVQokc2SwQnAIBAE15AmbMpSfdiIWIR3YAn62Dwur0AECULmtY9ZjoVzJLHCsWR/KIwxSilz1Zy70FqLMc4L5uzfcKaUAIiIiFh+oKoAvPfmrF8IIQCotaqq5TfM2T8aJEn23nPOnGKO+9/zXc8lZ5XdLNzmAAAAAElFTkSuQmCC
1
Library://Samples/Sheboygan/Layers/Districts.LayerDefinition
Districts
Districts
52f5ad10-bcb3-11e2-8002-080027004461
52f58600-bcb3-11e2-8001-080027004461
false
true
true
true
false
Library://Samples/Sheboygan/Data/VotingDistricts.FeatureSource
SDF_2_Schema:VotingDistricts
Data
10000
1000000000000
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOUlEQVQokWPcs6JOTFabgTjw6vFVhktHV/4nGlw6upKJSLPhYFTDqAZqaWB59fjq5WOriFT96vFVACkEOt/4XD28AAAAAElFTkSuQmCC
1
Library://Samples/Sheboygan/Layers/Buildings.LayerDefinition
Buildings
Buildings
52f5ad10-bcb3-11e2-8003-080027004461
52f58600-bcb3-11e2-8001-080027004461
false
true
true
true
true
Library://Samples/Sheboygan/Data/BuildingOutlines.FeatureSource
SHP_Schema:BuildingOutlines
SHPGEOM
0
1500
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWM8evToy5cvGYgD4uLiLC9fvrx06RKRGvT09JiIVAoHoxpGNVBLA4u4uLienh6RqsXFxQHMyAxCMWcM4QAAAABJRU5ErkJggg==
1
Library://Samples/Sheboygan/Layers/Parcels.LayerDefinition
Parcels
Parcels
52f5ad10-bcb3-11e2-8004-080027004461
52f58600-bcb3-11e2-8001-080027004461
true
true
true
true
true
Library://Samples/Sheboygan/Data/Parcels.FeatureSource
SHP_Schema:Parcels
SHPGEOM
0
10000
3
0
Zone: AGR
RTYPE = 'AGR'
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWOc0F4lwPGbgTjw4QcriwDHb0X+r0RquM/AzUSkUjgY1TCqgVoaWD78YL3PwE2k6g8/WAEoyAybnvNMrwAAAABJRU5ErkJggg==
3
1
Zone: EXM
RTYPE = 'EXM'
3
2
Zone: MER
RTYPE = 'MER'
3
3
Zone: MFG
RTYPE = 'MFG'
3
4
Zone: RES
RTYPE = 'RES'
3
5
Zone: S&W
RTYPE = 'S&W'
3
6
Zone: WTC
RTYPE = 'WTC'
3
7
Zone: Other
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAMUlEQVQokWM0NTU1NTVlIA6cPn2axdTUNCsri0gN06ZNYyJSKRyMahjVQC0NjKQmbwAmVgr+9vodNwAAAABJRU5ErkJggg==
1
Library://Samples/Sheboygan/Layers/Islands.LayerDefinition
Islands
Islands
52f5d420-bcb3-11e2-8000-080027004461
52f58600-bcb3-11e2-8000-080027004461
false
true
true
true
true
Library://Samples/Sheboygan/Data/Islands.FeatureSource
SHP_Schema:Islands
SHPGEOM
0
1000000000000
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWO8emINAymAiSTVoxpGNQwpDQAvoAJpPgoElwAAAABJRU5ErkJggg==
1
Library://Samples/Sheboygan/Layers/Hydrography.LayerDefinition
Hydrography
Hydrography
52f5d420-bcb3-11e2-8001-080027004461
52f58600-bcb3-11e2-8000-080027004461
false
true
true
true
true
Library://Samples/Sheboygan/Data/HydrographicPolygons.FeatureSource
SHP_Schema:HydrographicPolygons
SHPGEOM
0
1000000000000
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWNcffwlAymAiSTVoxpGNQwpDQBmNQJ7CUalHwAAAABJRU5ErkJggg==
1
Library://Samples/Sheboygan/Layers/CityLimits.LayerDefinition
CityLimits
CityLimits
52f5d420-bcb3-11e2-8002-080027004461
52f58600-bcb3-11e2-8000-080027004461
false
true
true
true
true
Library://Samples/Sheboygan/Data/CityLimits.FeatureSource
SHP_Schema:CityLimits
SHPGEOM
0
10000
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWM8cOAAAymAiSTVoxpGNQwpDQAT+QJghokBTgAAAABJRU5ErkJggg==
10000
1000000000000
3
0
image/png
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWO8emINAymAiSTVoxpGNQwpDQAvoAJpPgoElwAAAABJRU5ErkJggg==
}}}
== Implications ==
This is a brand new API. There are no compatibility issues.
The AJAX viewer will not use this new API for initialization.
== Test Plan ==
Test the operation with various requested feature levels against a pure OpenLayers map viewer.
Test and verify CREATERUNTIMEMAP at full feature level provides all the necessary information for Fusion to bypass LoadMap.php and LoadScaleRanges.php
== Funding / Resources ==
Community