wiki:MapGuideRfc134

Version 1 (modified by jng, 12 years ago) ( diff )

--

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 RFCs page.

Status

RFC Template Version(1.0)
Submission Date13 May 2013
Last Modified13 May 2013
AuthorJackie Ng
RFC Statusdraft
Implementation Statuspending
Proposed Milestone2.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. Current workarounds 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 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)

NameDescriptionRequired
MAPDEFINITIONThe resource id of the Map Definition to create a Runtime Map fromYes
REQUESTEDFEATURESA bitmask specifying what pieces of information to includein the CREATERUNTIMEMAP responseNo
ICONSPERSCALERANGEThe number of icons to render inline (as base64 images) per scale range in each layer of the mapNo

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.

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:

<RuntimeMap>
  <SiteVersion>2.6.0.0</SiteVersion>
  <SessionId>efaa467a-bbcd-11e2-8000-080027004461_en_MTI3LjAuMC4x0B060B050B04</SessionId>
  <Name>Sheboygan</Name>
  <MapDefinition>Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition</MapDefinition>
  <CoordinateSystem>
    <Wkt>GEOGCS["WGS84 Lat/Long's, Degrees, -180 ==&gt; +180",DATUM["D_WGS_1984",SPHEROID["World_Geodetic_System_of_1984",6378137,298.257222932867]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]</Wkt>
    <MentorCode>LL84</MentorCode>
    <EpsgCode>4326</EpsgCode>
    <MetersPerUnit>111319.49079327358</MetersPerUnit>
  </CoordinateSystem>
  <Extents>
    <LowerLeftCoordinate>
      <X>-87.764986990962839</X>
      <Y>43.691398128787782</Y>
    </LowerLeftCoordinate>
    <UpperRightCoordinate>
      <X>-87.695521510899724</X>
      <Y>43.797520000480347</Y>
    </UpperRightCoordinate>
  </Extents>
</RuntimeMap>

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):

<RuntimeMap>
  <SiteVersion>2.6.0.0</SiteVersion>
  <SessionId>b5790166-bbce-11e2-8000-080027004461_en_MTI3LjAuMC4x0B060B050B04</SessionId>
  <Name>Sheboygan</Name>
  <MapDefinition>Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition</MapDefinition>
  <CoordinateSystem>
    <Wkt>GEOGCS["WGS84 Lat/Long's, Degrees, -180 ==&gt; +180",DATUM["D_WGS_1984",SPHEROID["World_Geodetic_System_of_1984",6378137,298.257222932867]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]</Wkt>
    <MentorCode>LL84</MentorCode>
    <EpsgCode>4326</EpsgCode>
    <MetersPerUnit>111319.49079327358</MetersPerUnit>
  </CoordinateSystem>
  <Extents>
    <LowerLeftCoordinate>
      <X>-87.764986990962839</X>
      <Y>43.691398128787782</Y>
    </LowerLeftCoordinate>
    <UpperRightCoordinate>
      <X>-87.695521510899724</X>
      <Y>43.797520000480347</Y>
    </UpperRightCoordinate>
  </Extents>
  <Group>
    <Name>Base Map</Name>
    <LegendLabel>Base Map</LegendLabel>
    <ObjectId>b57caaf0-bbce-11e2-8000-080027004461</ObjectId>
    <DisplayInLegend>true</DisplayInLegend>
    <ExpandInLegend>true</ExpandInLegend>
    <Visible>true</Visible>
    <ActuallyVisible>true</ActuallyVisible>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Islands.LayerDefinition</LayerDefinition>
      <Name>Islands</Name>
      <LegendLabel>Islands</LegendLabel>
      <ObjectId>b57cf910-bbce-11e2-8001-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Hydrography.LayerDefinition</LayerDefinition>
      <Name>Hydrography</Name>
      <LegendLabel>Hydrography</LegendLabel>
      <ObjectId>b57cf910-bbce-11e2-8002-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/CityLimits.LayerDefinition</LayerDefinition>
      <Name>CityLimits</Name>
      <LegendLabel>CityLimits</LegendLabel>
      <ObjectId>b57cf910-bbce-11e2-8003-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
    </Layer>
  </Group>
  <Group>
    <Name>Municipal</Name>
    <LegendLabel>Municipal</LegendLabel>
    <ObjectId>b57caaf0-bbce-11e2-8001-080027004461</ObjectId>
    <DisplayInLegend>true</DisplayInLegend>
    <ExpandInLegend>true</ExpandInLegend>
    <Visible>true</Visible>
    <ActuallyVisible>true</ActuallyVisible>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Districts.LayerDefinition</LayerDefinition>
      <Name>Districts</Name>
      <LegendLabel>Districts</LegendLabel>
      <ObjectId>b57cd200-bbce-11e2-8002-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>false</ActuallyVisible>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Buildings.LayerDefinition</LayerDefinition>
      <Name>Buildings</Name>
      <LegendLabel>Buildings</LegendLabel>
      <ObjectId>b57cd200-bbce-11e2-8003-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Parcels.LayerDefinition</LayerDefinition>
      <Name>Parcels</Name>
      <LegendLabel>Parcels</LegendLabel>
      <ObjectId>b57cf910-bbce-11e2-8000-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
    </Layer>
  </Group>
  <Group>
    <Name>Transportation</Name>
    <LegendLabel>Transportation</LegendLabel>
    <ObjectId>b57caaf0-bbce-11e2-8002-080027004461</ObjectId>
    <DisplayInLegend>true</DisplayInLegend>
    <ExpandInLegend>true</ExpandInLegend>
    <Visible>true</Visible>
    <ActuallyVisible>true</ActuallyVisible>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Roads.LayerDefinition</LayerDefinition>
      <Name>Roads</Name>
      <LegendLabel>Roads</LegendLabel>
      <ObjectId>b57cd200-bbce-11e2-8000-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Tracks.LayerDefinition</LayerDefinition>
      <Name>Rail Lines</Name>
      <LegendLabel>Rail Lines</LegendLabel>
      <ObjectId>b57cd200-bbce-11e2-8001-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>false</Visible>
      <ActuallyVisible>false</ActuallyVisible>
    </Layer>
  </Group>
</RuntimeMap>

REQUESTEDFEATURES = 3 (Basic layer/group structure with inline icons)

<RuntimeMap>
  <SiteVersion>2.6.0.0</SiteVersion>
  <SessionId>eaf1bcda-bbd2-11e2-8000-080027004461_en_MTI3LjAuMC4x0B060B050B04</SessionId>
  <Name>Sheboygan</Name>
  <MapDefinition>Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition</MapDefinition>
  <CoordinateSystem>
    <Wkt>GEOGCS["WGS84 Lat/Long's, Degrees, -180 ==&gt; +180",DATUM["D_WGS_1984",SPHEROID["World_Geodetic_System_of_1984",6378137,298.257222932867]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]</Wkt>
    <MentorCode>LL84</MentorCode>
    <EpsgCode>4326</EpsgCode>
    <MetersPerUnit>111319.49079327358</MetersPerUnit>
  </CoordinateSystem>
  <Extents>
    <LowerLeftCoordinate>
      <X>-87.764986990962839</X>
      <Y>43.691398128787782</Y>
    </LowerLeftCoordinate>
    <UpperRightCoordinate>
      <X>-87.695521510899724</X>
      <Y>43.797520000480347</Y>
    </UpperRightCoordinate>
  </Extents>
  <Group>
    <Name>Base Map</Name>
    <LegendLabel>Base Map</LegendLabel>
    <ObjectId>eaf58d7e-bbd2-11e2-8000-080027004461</ObjectId>
    <DisplayInLegend>true</DisplayInLegend>
    <ExpandInLegend>true</ExpandInLegend>
    <Visible>true</Visible>
    <ActuallyVisible>true</ActuallyVisible>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Islands.LayerDefinition</LayerDefinition>
      <Name>Islands</Name>
      <LegendLabel>Islands</LegendLabel>
      <ObjectId>eaf5db9e-bbd2-11e2-8000-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>1000000000000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWO8emINAymAiSTVoxpGNQwpDQAvoAJpPgoElwAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Hydrography.LayerDefinition</LayerDefinition>
      <Name>Hydrography</Name>
      <LegendLabel>Hydrography</LegendLabel>
      <ObjectId>eaf5db9e-bbd2-11e2-8001-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>1000000000000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWNcffwlAymAiSTVoxpGNQwpDQBmNQJ7CUalHwAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/CityLimits.LayerDefinition</LayerDefinition>
      <Name>CityLimits</Name>
      <LegendLabel>CityLimits</LegendLabel>
      <ObjectId>eaf5db9e-bbd2-11e2-8002-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>10000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWM8cOAAAymAiSTVoxpGNQwpDQAT+QJghokBTgAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
      <ScaleRange>
        <MinScale>10000</MinScale>
        <MaxScale>1000000000000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWO8emINAymAiSTVoxpGNQwpDQAvoAJpPgoElwAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
  </Group>
  <Group>
    <Name>Municipal</Name>
    <LegendLabel>Municipal</LegendLabel>
    <ObjectId>eaf58d7e-bbd2-11e2-8001-080027004461</ObjectId>
    <DisplayInLegend>true</DisplayInLegend>
    <ExpandInLegend>true</ExpandInLegend>
    <Visible>true</Visible>
    <ActuallyVisible>true</ActuallyVisible>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Districts.LayerDefinition</LayerDefinition>
      <Name>Districts</Name>
      <LegendLabel>Districts</LegendLabel>
      <ObjectId>eaf5b48e-bbd2-11e2-8002-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>false</ActuallyVisible>
      <ScaleRange>
        <MinScale>10000</MinScale>
        <MaxScale>1000000000000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOUlEQVQokWPcs6JOTFabgTjw6vFVhktHV/4nGlw6upKJSLPhYFTDqAZqaWB59fjq5WOriFT96vFVACkEOt/4XD28AAAAAElFTkSuQmCC</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Buildings.LayerDefinition</LayerDefinition>
      <Name>Buildings</Name>
      <LegendLabel>Buildings</LegendLabel>
      <ObjectId>eaf5b48e-bbd2-11e2-8003-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>1500</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWM8evToy5cvGYgD4uLiLC9fvrx06RKRGvT09JiIVAoHoxpGNVBLA4u4uLienh6RqsXFxQHMyAxCMWcM4QAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Parcels.LayerDefinition</LayerDefinition>
      <Name>Parcels</Name>
      <LegendLabel>Parcels</LegendLabel>
      <ObjectId>eaf5b48e-bbd2-11e2-8004-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>10000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel>Zone:  AGR</LegendLabel>
          <Filter>RTYPE = 'AGR'</Filter>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWOc0F4lwPGbgTjw4QcriwDHb0X+r0RquM/AzUSkUjgY1TCqgVoaWD78YL3PwE2k6g8/WAEoyAybnvNMrwAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>1</ThemeCategory>
          <LegendLabel>Zone:  EXM</LegendLabel>
          <Filter>RTYPE = 'EXM'</Filter>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWPs66zh4/rDQBz49I2FhY/rj6zwDyI1PGbgYCJSKRyMahjVQC0NLJ++sTxm4CBS9advLAA9KgyhkvW9tQAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>2</ThemeCategory>
          <LegendLabel>Zone:  MER</LegendLabel>
          <Filter>RTYPE = 'MER'</Filter>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWPs6a7l5fnHQBz4/IWJhZfnn6T4HyI1MDCwMBGtFApGNYxqoJYGls9fmBgYWIhU/fkLEwC9qwrV+OtROgAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>3</ThemeCategory>
          <LegendLabel>Zone:  MFG</LegendLabel>
          <Filter>RTYPE = 'MFG'</Filter>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOUlEQVQokWPs6q3n5mMgEnz9xMDCzccgJv2fSA2vGBiZiDUcBkY1jGqglgaWr58YXjEwEqn66ycGAIUGCqdLv0I4AAAAAElFTkSuQmCC</Content>
          </Icon>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>4</ThemeCategory>
          <LegendLabel>Zone:  RES</LegendLabel>
          <Filter>RTYPE = 'RES'</Filter>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAO0lEQVQokWPs7G/kFGBkIA58//CfhVOAUUiemUgN7xj+MhGpFA5GNYxqoJYGlu8f/r9j+Euk6u8f/gMArKMOreezChMAAAAASUVORK5CYII=</Content>
          </Icon>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>5</ThemeCategory>
          <LegendLabel>Zone:  S&amp;W</LegendLabel>
          <Filter>RTYPE = 'S&amp;W'</Filter>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAO0lEQVQokWNsn9jMLsTMQBz4+e4vC7sQM78yG5EaPjL8YiJSKRyMahjVQC0NLD/f/f3I8ItI1T/f/QUAw9kOsaqrjjYAAAAASUVORK5CYII=</Content>
          </Icon>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>6</ThemeCategory>
          <LegendLabel>Zone:  WTC</LegendLabel>
          <Filter>RTYPE = 'WTC'</Filter>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWNsndzCJsLKQBz49eY3C5sIK7c6F5EaGBi+MRGtFApGNYxqoJYGll9vfjMwfCNS9a83vwEcRQzJpppspAAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>7</ThemeCategory>
          <LegendLabel>Zone:  Other</LegendLabel>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAMUlEQVQokWM0NTU1NTVlIA6cPn2axdTUNCsri0gN06ZNYyJSKRyMahjVQC0NjKQmbwAmVgr+9vodNwAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
  </Group>
  <Group>
    <Name>Transportation</Name>
    <LegendLabel>Transportation</LegendLabel>
    <ObjectId>eaf58d7e-bbd2-11e2-8002-080027004461</ObjectId>
    <DisplayInLegend>true</DisplayInLegend>
    <ExpandInLegend>true</ExpandInLegend>
    <Visible>true</Visible>
    <ActuallyVisible>true</ActuallyVisible>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Roads.LayerDefinition</LayerDefinition>
      <Name>Roads</Name>
      <LegendLabel>Roads</LegendLabel>
      <ObjectId>eaf5b48e-bbd2-11e2-8000-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>10000</MaxScale>
        <Rule>
          <GeometryType>2</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAIklEQVQokWP8//8/AymAiSTVI1UDS3t7O21tYByNOFpoAAAJdQewcVU/XQAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
      <ScaleRange>
        <MinScale>10000</MinScale>
        <MaxScale>24000</MaxScale>
        <Rule>
          <GeometryType>2</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAIklEQVQokWP8//8/AymAiSTVI1UDS3t7O21tYByNOFpoAAAJdQewcVU/XQAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Tracks.LayerDefinition</LayerDefinition>
      <Name>Rail Lines</Name>
      <LegendLabel>Rail Lines</LegendLabel>
      <ObjectId>eaf5b48e-bbd2-11e2-8001-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>false</Visible>
      <ActuallyVisible>false</ActuallyVisible>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>24000</MaxScale>
        <Rule>
          <GeometryType>2</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAb0lEQVQokc2SwQnAIBAE15AmbMpSfdiIWIR3YAn62Dwur0AECULmtY9ZjoVzJLHCsWR/KIwxSilz1Zy70FqLMc4L5uzfcKaUAIiIiFh+oKoAvPfmrF8IIQCotaqq5TfM2T8aJEn23nPOnGKO+9/zXc8lZ5XdLNzmAAAAAElFTkSuQmCC</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
  </Group>
</RuntimeMap>

REQUESTEDFEATURES = 7 (Basic layer/group structure with inline icons and Feature Source information)

<RuntimeMap>
  <SiteVersion>2.6.0.0</SiteVersion>
  <SessionId>24698672-bbcf-11e2-8000-080027004461_en_MTI3LjAuMC4x0B060B050B04</SessionId>
  <Name>Sheboygan</Name>
  <MapDefinition>Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition</MapDefinition>
  <CoordinateSystem>
    <Wkt>GEOGCS["WGS84 Lat/Long's, Degrees, -180 ==&gt; +180",DATUM["D_WGS_1984",SPHEROID["World_Geodetic_System_of_1984",6378137,298.257222932867]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]</Wkt>
    <MentorCode>LL84</MentorCode>
    <EpsgCode>4326</EpsgCode>
    <MetersPerUnit>111319.49079327358</MetersPerUnit>
  </CoordinateSystem>
  <Extents>
    <LowerLeftCoordinate>
      <X>-87.764986990962839</X>
      <Y>43.691398128787782</Y>
    </LowerLeftCoordinate>
    <UpperRightCoordinate>
      <X>-87.695521510899724</X>
      <Y>43.797520000480347</Y>
    </UpperRightCoordinate>
  </Extents>
  <Group>
    <Name>Base Map</Name>
    <LegendLabel>Base Map</LegendLabel>
    <ObjectId>246d570c-bbcf-11e2-8000-080027004461</ObjectId>
    <DisplayInLegend>true</DisplayInLegend>
    <ExpandInLegend>true</ExpandInLegend>
    <Visible>true</Visible>
    <ActuallyVisible>true</ActuallyVisible>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Islands.LayerDefinition</LayerDefinition>
      <Name>Islands</Name>
      <LegendLabel>Islands</LegendLabel>
      <ObjectId>246da52c-bbcf-11e2-8003-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/Islands.FeatureSource</ResourceId>
        <ClassName>SHP_Schema:Islands</ClassName>
        <Geometry>SHPGEOM</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>1000000000000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWO8emINAymAiSTVoxpGNQwpDQAvoAJpPgoElwAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Hydrography.LayerDefinition</LayerDefinition>
      <Name>Hydrography</Name>
      <LegendLabel>Hydrography</LegendLabel>
      <ObjectId>246da52c-bbcf-11e2-8004-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/HydrographicPolygons.FeatureSource</ResourceId>
        <ClassName>SHP_Schema:HydrographicPolygons</ClassName>
        <Geometry>SHPGEOM</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>1000000000000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWNcffwlAymAiSTVoxpGNQwpDQBmNQJ7CUalHwAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/CityLimits.LayerDefinition</LayerDefinition>
      <Name>CityLimits</Name>
      <LegendLabel>CityLimits</LegendLabel>
      <ObjectId>246da52c-bbcf-11e2-8005-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/CityLimits.FeatureSource</ResourceId>
        <ClassName>SHP_Schema:CityLimits</ClassName>
        <Geometry>SHPGEOM</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>10000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWM8cOAAAymAiSTVoxpGNQwpDQAT+QJghokBTgAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
      <ScaleRange>
        <MinScale>10000</MinScale>
        <MaxScale>1000000000000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWO8emINAymAiSTVoxpGNQwpDQAvoAJpPgoElwAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
  </Group>
  <Group>
    <Name>Municipal</Name>
    <LegendLabel>Municipal</LegendLabel>
    <ObjectId>246d570c-bbcf-11e2-8001-080027004461</ObjectId>
    <DisplayInLegend>true</DisplayInLegend>
    <ExpandInLegend>true</ExpandInLegend>
    <Visible>true</Visible>
    <ActuallyVisible>true</ActuallyVisible>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Districts.LayerDefinition</LayerDefinition>
      <Name>Districts</Name>
      <LegendLabel>Districts</LegendLabel>
      <ObjectId>246da52c-bbcf-11e2-8000-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>false</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/VotingDistricts.FeatureSource</ResourceId>
        <ClassName>SDF_2_Schema:VotingDistricts</ClassName>
        <Geometry>Data</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>10000</MinScale>
        <MaxScale>1000000000000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOUlEQVQokWPcs6JOTFabgTjw6vFVhktHV/4nGlw6upKJSLPhYFTDqAZqaWB59fjq5WOriFT96vFVACkEOt/4XD28AAAAAElFTkSuQmCC</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Buildings.LayerDefinition</LayerDefinition>
      <Name>Buildings</Name>
      <LegendLabel>Buildings</LegendLabel>
      <ObjectId>246da52c-bbcf-11e2-8001-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/BuildingOutlines.FeatureSource</ResourceId>
        <ClassName>SHP_Schema:BuildingOutlines</ClassName>
        <Geometry>SHPGEOM</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>1500</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWM8evToy5cvGYgD4uLiLC9fvrx06RKRGvT09JiIVAoHoxpGNVBLA4u4uLienh6RqsXFxQHMyAxCMWcM4QAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Parcels.LayerDefinition</LayerDefinition>
      <Name>Parcels</Name>
      <LegendLabel>Parcels</LegendLabel>
      <ObjectId>246da52c-bbcf-11e2-8002-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/Parcels.FeatureSource</ResourceId>
        <ClassName>SHP_Schema:Parcels</ClassName>
        <Geometry>SHPGEOM</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>10000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel>Zone:  AGR</LegendLabel>
          <Filter>RTYPE = 'AGR'</Filter>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWOc0F4lwPGbgTjw4QcriwDHb0X+r0RquM/AzUSkUjgY1TCqgVoaWD78YL3PwE2k6g8/WAEoyAybnvNMrwAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>1</ThemeCategory>
          <LegendLabel>Zone:  EXM</LegendLabel>
          <Filter>RTYPE = 'EXM'</Filter>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWPs66zh4/rDQBz49I2FhY/rj6zwDyI1PGbgYCJSKRyMahjVQC0NLJ++sTxm4CBS9advLAA9KgyhkvW9tQAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>2</ThemeCategory>
          <LegendLabel>Zone:  MER</LegendLabel>
          <Filter>RTYPE = 'MER'</Filter>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWPs6a7l5fnHQBz4/IWJhZfnn6T4HyI1MDCwMBGtFApGNYxqoJYGls9fmBgYWIhU/fkLEwC9qwrV+OtROgAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>3</ThemeCategory>
          <LegendLabel>Zone:  MFG</LegendLabel>
          <Filter>RTYPE = 'MFG'</Filter>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOUlEQVQokWPs6q3n5mMgEnz9xMDCzccgJv2fSA2vGBiZiDUcBkY1jGqglgaWr58YXjEwEqn66ycGAIUGCqdLv0I4AAAAAElFTkSuQmCC</Content>
          </Icon>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>4</ThemeCategory>
          <LegendLabel>Zone:  RES</LegendLabel>
          <Filter>RTYPE = 'RES'</Filter>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAO0lEQVQokWPs7G/kFGBkIA58//CfhVOAUUiemUgN7xj+MhGpFA5GNYxqoJYGlu8f/r9j+Euk6u8f/gMArKMOreezChMAAAAASUVORK5CYII=</Content>
          </Icon>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>5</ThemeCategory>
          <LegendLabel>Zone:  S&amp;W</LegendLabel>
          <Filter>RTYPE = 'S&amp;W'</Filter>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAO0lEQVQokWNsn9jMLsTMQBz4+e4vC7sQM78yG5EaPjL8YiJSKRyMahjVQC0NLD/f/f3I8ItI1T/f/QUAw9kOsaqrjjYAAAAASUVORK5CYII=</Content>
          </Icon>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>6</ThemeCategory>
          <LegendLabel>Zone:  WTC</LegendLabel>
          <Filter>RTYPE = 'WTC'</Filter>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWNsndzCJsLKQBz49eY3C5sIK7c6F5EaGBi+MRGtFApGNYxqoJYGll9vfjMwfCNS9a83vwEcRQzJpppspAAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>7</ThemeCategory>
          <LegendLabel>Zone:  Other</LegendLabel>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAMUlEQVQokWM0NTU1NTVlIA6cPn2axdTUNCsri0gN06ZNYyJSKRyMahjVQC0NjKQmbwAmVgr+9vodNwAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
  </Group>
  <Group>
    <Name>Transportation</Name>
    <LegendLabel>Transportation</LegendLabel>
    <ObjectId>246d570c-bbcf-11e2-8002-080027004461</ObjectId>
    <DisplayInLegend>true</DisplayInLegend>
    <ExpandInLegend>true</ExpandInLegend>
    <Visible>true</Visible>
    <ActuallyVisible>true</ActuallyVisible>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Roads.LayerDefinition</LayerDefinition>
      <Name>Roads</Name>
      <LegendLabel>Roads</LegendLabel>
      <ObjectId>246d7e1c-bbcf-11e2-8000-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/RoadCenterLines.FeatureSource</ResourceId>
        <ClassName>SHP_Schema:RoadCenterLines</ClassName>
        <Geometry>SHPGEOM</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>10000</MaxScale>
        <Rule>
          <GeometryType>2</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAIklEQVQokWP8//8/AymAiSTVI1UDS3t7O21tYByNOFpoAAAJdQewcVU/XQAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
      <ScaleRange>
        <MinScale>10000</MinScale>
        <MaxScale>24000</MaxScale>
        <Rule>
          <GeometryType>2</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAIklEQVQokWP8//8/AymAiSTVI1UDS3t7O21tYByNOFpoAAAJdQewcVU/XQAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Tracks.LayerDefinition</LayerDefinition>
      <Name>Rail Lines</Name>
      <LegendLabel>Rail Lines</LegendLabel>
      <ObjectId>246d7e1c-bbcf-11e2-8001-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>false</Visible>
      <ActuallyVisible>false</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/Rail.FeatureSource</ResourceId>
        <ClassName>SHP_Schema:Rail</ClassName>
        <Geometry>SHPGEOM</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>24000</MaxScale>
        <Rule>
          <GeometryType>2</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAb0lEQVQokc2SwQnAIBAE15AmbMpSfdiIWIR3YAn62Dwur0AECULmtY9ZjoVzJLHCsWR/KIwxSilz1Zy70FqLMc4L5uzfcKaUAIiIiFh+oKoAvPfmrF8IIQCotaqq5TfM2T8aJEn23nPOnGKO+9/zXc8lZ5XdLNzmAAAAAElFTkSuQmCC</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
  </Group>
</RuntimeMap>

REQUESTEDFEATURES = 7 and ICONSPERSCALERANGE = 3 (Observe the theme rules of the Parcels. It is assumed client applications uses this lack of icons as a "hint" to compress the theme when displaying in an interactive legend control)

<RuntimeMap>
  <SiteVersion>2.6.0.0</SiteVersion>
  <SessionId>63ab622e-bbcf-11e2-8000-080027004461_en_MTI3LjAuMC4x0B060B050B04</SessionId>
  <Name>Sheboygan</Name>
  <MapDefinition>Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition</MapDefinition>
  <CoordinateSystem>
    <Wkt>GEOGCS["WGS84 Lat/Long's, Degrees, -180 ==&gt; +180",DATUM["D_WGS_1984",SPHEROID["World_Geodetic_System_of_1984",6378137,298.257222932867]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]</Wkt>
    <MentorCode>LL84</MentorCode>
    <EpsgCode>4326</EpsgCode>
    <MetersPerUnit>111319.49079327358</MetersPerUnit>
  </CoordinateSystem>
  <Extents>
    <LowerLeftCoordinate>
      <X>-87.764986990962839</X>
      <Y>43.691398128787782</Y>
    </LowerLeftCoordinate>
    <UpperRightCoordinate>
      <X>-87.695521510899724</X>
      <Y>43.797520000480347</Y>
    </UpperRightCoordinate>
  </Extents>
  <Group>
    <Name>Base Map</Name>
    <LegendLabel>Base Map</LegendLabel>
    <ObjectId>63af0bb8-bbcf-11e2-8001-080027004461</ObjectId>
    <DisplayInLegend>true</DisplayInLegend>
    <ExpandInLegend>true</ExpandInLegend>
    <Visible>true</Visible>
    <ActuallyVisible>true</ActuallyVisible>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Islands.LayerDefinition</LayerDefinition>
      <Name>Islands</Name>
      <LegendLabel>Islands</LegendLabel>
      <ObjectId>63af59d8-bbcf-11e2-8004-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/Islands.FeatureSource</ResourceId>
        <ClassName>SHP_Schema:Islands</ClassName>
        <Geometry>SHPGEOM</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>1000000000000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWO8emINAymAiSTVoxpGNQwpDQAvoAJpPgoElwAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Hydrography.LayerDefinition</LayerDefinition>
      <Name>Hydrography</Name>
      <LegendLabel>Hydrography</LegendLabel>
      <ObjectId>63af59d8-bbcf-11e2-8005-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/HydrographicPolygons.FeatureSource</ResourceId>
        <ClassName>SHP_Schema:HydrographicPolygons</ClassName>
        <Geometry>SHPGEOM</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>1000000000000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWNcffwlAymAiSTVoxpGNQwpDQBmNQJ7CUalHwAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/CityLimits.LayerDefinition</LayerDefinition>
      <Name>CityLimits</Name>
      <LegendLabel>CityLimits</LegendLabel>
      <ObjectId>63af59d8-bbcf-11e2-8006-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/CityLimits.FeatureSource</ResourceId>
        <ClassName>SHP_Schema:CityLimits</ClassName>
        <Geometry>SHPGEOM</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>10000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWM8cOAAAymAiSTVoxpGNQwpDQAT+QJghokBTgAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
      <ScaleRange>
        <MinScale>10000</MinScale>
        <MaxScale>1000000000000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAGUlEQVQokWO8emINAymAiSTVoxpGNQwpDQAvoAJpPgoElwAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
  </Group>
  <Group>
    <Name>Municipal</Name>
    <LegendLabel>Municipal</LegendLabel>
    <ObjectId>63af0bb8-bbcf-11e2-8002-080027004461</ObjectId>
    <DisplayInLegend>true</DisplayInLegend>
    <ExpandInLegend>true</ExpandInLegend>
    <Visible>true</Visible>
    <ActuallyVisible>true</ActuallyVisible>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Districts.LayerDefinition</LayerDefinition>
      <Name>Districts</Name>
      <LegendLabel>Districts</LegendLabel>
      <ObjectId>63af59d8-bbcf-11e2-8001-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>false</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/VotingDistricts.FeatureSource</ResourceId>
        <ClassName>SDF_2_Schema:VotingDistricts</ClassName>
        <Geometry>Data</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>10000</MinScale>
        <MaxScale>1000000000000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOUlEQVQokWPcs6JOTFabgTjw6vFVhktHV/4nGlw6upKJSLPhYFTDqAZqaWB59fjq5WOriFT96vFVACkEOt/4XD28AAAAAElFTkSuQmCC</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Buildings.LayerDefinition</LayerDefinition>
      <Name>Buildings</Name>
      <LegendLabel>Buildings</LegendLabel>
      <ObjectId>63af59d8-bbcf-11e2-8002-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/BuildingOutlines.FeatureSource</ResourceId>
        <ClassName>SHP_Schema:BuildingOutlines</ClassName>
        <Geometry>SHPGEOM</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>1500</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWM8evToy5cvGYgD4uLiLC9fvrx06RKRGvT09JiIVAoHoxpGNVBLA4u4uLienh6RqsXFxQHMyAxCMWcM4QAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Parcels.LayerDefinition</LayerDefinition>
      <Name>Parcels</Name>
      <LegendLabel>Parcels</LegendLabel>
      <ObjectId>63af59d8-bbcf-11e2-8003-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/Parcels.FeatureSource</ResourceId>
        <ClassName>SHP_Schema:Parcels</ClassName>
        <Geometry>SHPGEOM</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>10000</MaxScale>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel>Zone:  AGR</LegendLabel>
          <Filter>RTYPE = 'AGR'</Filter>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAOklEQVQokWOc0F4lwPGbgTjw4QcriwDHb0X+r0RquM/AzUSkUjgY1TCqgVoaWD78YL3PwE2k6g8/WAEoyAybnvNMrwAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>1</ThemeCategory>
          <LegendLabel>Zone:  EXM</LegendLabel>
          <Filter>RTYPE = 'EXM'</Filter>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>2</ThemeCategory>
          <LegendLabel>Zone:  MER</LegendLabel>
          <Filter>RTYPE = 'MER'</Filter>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>3</ThemeCategory>
          <LegendLabel>Zone:  MFG</LegendLabel>
          <Filter>RTYPE = 'MFG'</Filter>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>4</ThemeCategory>
          <LegendLabel>Zone:  RES</LegendLabel>
          <Filter>RTYPE = 'RES'</Filter>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>5</ThemeCategory>
          <LegendLabel>Zone:  S&amp;W</LegendLabel>
          <Filter>RTYPE = 'S&amp;W'</Filter>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>6</ThemeCategory>
          <LegendLabel>Zone:  WTC</LegendLabel>
          <Filter>RTYPE = 'WTC'</Filter>
        </Rule>
        <Rule>
          <GeometryType>3</GeometryType>
          <ThemeCategory>7</ThemeCategory>
          <LegendLabel>Zone:  Other</LegendLabel>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAMUlEQVQokWM0NTU1NTVlIA6cPn2axdTUNCsri0gN06ZNYyJSKRyMahjVQC0NjKQmbwAmVgr+9vodNwAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
  </Group>
  <Group>
    <Name>Transportation</Name>
    <LegendLabel>Transportation</LegendLabel>
    <ObjectId>63af0bb8-bbcf-11e2-8003-080027004461</ObjectId>
    <DisplayInLegend>true</DisplayInLegend>
    <ExpandInLegend>true</ExpandInLegend>
    <Visible>true</Visible>
    <ActuallyVisible>true</ActuallyVisible>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Roads.LayerDefinition</LayerDefinition>
      <Name>Roads</Name>
      <LegendLabel>Roads</LegendLabel>
      <ObjectId>63af32c8-bbcf-11e2-8000-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>true</Visible>
      <ActuallyVisible>true</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/RoadCenterLines.FeatureSource</ResourceId>
        <ClassName>SHP_Schema:RoadCenterLines</ClassName>
        <Geometry>SHPGEOM</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>10000</MaxScale>
        <Rule>
          <GeometryType>2</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAIklEQVQokWP8//8/AymAiSTVI1UDS3t7O21tYByNOFpoAAAJdQewcVU/XQAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
      <ScaleRange>
        <MinScale>10000</MinScale>
        <MaxScale>24000</MaxScale>
        <Rule>
          <GeometryType>2</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAIklEQVQokWP8//8/AymAiSTVI1UDS3t7O21tYByNOFpoAAAJdQewcVU/XQAAAABJRU5ErkJggg==</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
    <Layer>
      <Type>1</Type>
      <LayerDefinition>Library://Samples/Sheboygan/Layers/Tracks.LayerDefinition</LayerDefinition>
      <Name>Rail Lines</Name>
      <LegendLabel>Rail Lines</LegendLabel>
      <ObjectId>63af59d8-bbcf-11e2-8000-080027004461</ObjectId>
      <DisplayInLegend>true</DisplayInLegend>
      <ExpandInLegend>true</ExpandInLegend>
      <Visible>false</Visible>
      <ActuallyVisible>false</ActuallyVisible>
      <FeatureSource>
        <ResourceId>Library://Samples/Sheboygan/Data/Rail.FeatureSource</ResourceId>
        <ClassName>SHP_Schema:Rail</ClassName>
        <Geometry>SHPGEOM</Geometry>
      </FeatureSource>
      <ScaleRange>
        <MinScale>0</MinScale>
        <MaxScale>24000</MaxScale>
        <Rule>
          <GeometryType>2</GeometryType>
          <ThemeCategory>0</ThemeCategory>
          <LegendLabel/>
          <Filter/>
          <Icon>
            <MimeType>image/png</MimeType>
            <Content>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAAb0lEQVQokc2SwQnAIBAE15AmbMpSfdiIWIR3YAn62Dwur0AECULmtY9ZjoVzJLHCsWR/KIwxSilz1Zy70FqLMc4L5uzfcKaUAIiIiFh+oKoAvPfmrF8IIQCotaqq5TfM2T8aJEn23nPOnGKO+9/zXc8lZ5XdLNzmAAAAAElFTkSuQmCC</Content>
          </Icon>
        </Rule>
      </ScaleRange>
    </Layer>
  </Group>
</RuntimeMap>

Implications

This is a brand new API. There are no compatibility issues.

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

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.