C.2 WMS Specification and Corresponding Map Visualization Component Concepts

This section describes the association between, or interpretation of, terms and concepts used in the WMS 1.1.1 and 1.3.0 specifications and the map visualization component.

It also includes some parameters that are specific to the map visualization component but that are not in the WMS 1.1.1 and 1.3.0 specifications.

C.2.1 Supported GetMap Request Parameters

This section describes the supported GetMap request parameters and their interpretation by the map visualization component. (Parameters that are specific to the map visualization component and not mentioned in the WMS 1.1.1 and 1.3.0 specifications are labeled Map Visualization Component-Only.) The supported parameters are in alphabetical order, with each in a separate subsection. Example C-1 shows some GetMap requests. (Each URL should be entered as a single string.)

Example C-1 GetMap Requests

http://localhost:8888/mapviewer/wms?REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/gif&
SERVICE=WMS&BBOX=-121,37,-119,35&SRS=EPSG:4326&LAYERS=theme_demo_states,theme_
demo_counties,theme_demo_highways,theme_demo_cities&WIDTH=580&HEIGHT=500

http://localhost:8888/mapviewer/wms?REQUEST=GetMap&VERSION=1.3.0&FORMAT=image/gif&
SERVICE=WMS&BBOX=35,-121,37,-119&CRS=EPSG:4326&LAYERS=theme_demo_states,theme_
demo_counties,theme_demo_highways,theme_demo_cities&WIDTH=580&HEIGHT=500

http://localhost:8888/mapviewer/wms?request=GetMap&version=1.3.0&crs=none
&bbox=-122,36,-121,37&width=600&height=400&format=image/png&layers=theme_us_
states&mvthemes=<themes><theme%20name="theme_us_counties"/><theme%20name="theme_
us_road1"/></themes>&legend_
request=<legend%20bgstyle="fill:%23ffffff;stroke:%23ff0000"%20profile="medium"%20p
osition="SOUTH_EAST"><column><entry%20style="v.rb1"%20tab="1"/></column></legend>& 

The default data source for a GetMap request is WMS.

The following optional GetMap parameters are not supported in the current release of the map visualization component:

  • TIME (time dimension)

  • ELEVATION (elevation dimension)

  • SLD and WFS URLs

The Map Visualization Component-Only parameters must contain valid XML fragments. Because these are supplied in an HTTP GET request, they must be appropriately encoded using a URL encoding mechanism. For example, replace each space ( ) with %20 and each pound sign (#) with %23. The following example shows the use of such encoding:

http://localhost:8888/mapviewer/wms?request=GetMap&version=1.1.1&srs=none&bbox=-12
2,36,-121,37&width=600&height=400&format=image/png&layers=theme_us_
states&mvthemes=<themes><theme%20name="theme_us_counties"/><theme%20name="theme_
us_road1"/></themes>&legend_
request=<legend%20bgstyle="fill:%23ffffff;stroke:%23ff0000"%20profile="medium"%20p
osition="SOUTH_EAST"><column><entry%20style="v.rb1"%20tab="1"/></column></legend>&

C.2.1.1 BASEMAP Parameter (Map Visualization Component-Only)

The BASEMAP parameter specifies a named base map for the specified (or default) data source. If you specify both the BASEMAP and LAYERS parameters, all themes specified in the LAYERS parameters are added to the base map. Therefore, if you just want to get a map using a named base map, specify the BASEMAP parameter but specify an empty LAYERS parameter, as in the following examples:

REQUEST=GetMap&VERSION=1.1.1&BASEMAP=demo_map&LAYERS=&WIDTH=500&HEIGHT=560&SRS=SDO:8307&BBOX=-122,36,-120,38.5&FORMAT=image/png
 
REQUEST=GetMap&VERSION=1.3.0&BASEMAP=demo_map&LAYERS=&WIDTH=500&HEIGHT=560&CRS=SDO:8307&BBOX=-122,36,-120,38.5&FORMAT=image/png

The base map name can also be part of the LAYERS parameter. In this case, the BASEMAP parameter does not need to be defined in the URL (see LAYERS Parameter for additional details).

C.2.1.2 BBOX Parameter

The BBOX parameter specifies the lower-left and upper-right coordinates of the bounding box for the data from the data source to be displayed. It has the format BBOX=minX,minY,maxX,maxY. For example: BBOX=-122,36,-120,38.5

For version 1.3.0 and CRS=EPSG:4326, this BBOX parameter has the format of BBOX=min_latitude,min_longitude,max_latitude,max_longitude. For example: BBOX=36,-122,38.5,-120

C.2.1.3 BGCOLOR Parameter

The BGCOLOR parameter specifies background color for the map display using the RBG color value. It has the format 0xHHHHHH (where each H is a hexadecimal value from 0 to F). For example: BGCOLOR=0xF5F5DC (beige).

C.2.1.4 DATASOURCE Parameter (Map Visualization Component-Only)

The DATASOURCE parameter specifies the name of the data source for the GetMap or GetFeatureInfo request. The default value is WMS. The specified data source must exist prior to the GetMap or GetFeatureInfo request. That is, it must have been created using the <add_data_source> MapViewer administrative request or defined in the map visualization component configuration file (map visualization componentConfig.xml).

C.2.1.5 DYNAMIC_STYLES Parameter (Map Visualization Component-Only)

The DYNAMIC_STYLES parameter specifies a <styles> element as part of the GetMap request..

C.2.1.6 EXCEPTIONS Parameter

For the EXCEPTIONS parameter, the only supported value is the default: EXCEPTIONS=application/vnd.ogc.se_xml for WMS 1.1.1 and EXCEPTIONS=XML for WMS 1.3.0. The exception is reported as an XML document conforming to the Service Exception DTD available at the following URLs:

http://schemas.opengis.net/wms/1.1.1/WMS_exception_1_1_1.dtd

http://schemas.opengis.net/wms/1.3.0/exceptions_1_3_0.xsd

The application/vnd.ogc.se_inimage (image overwritten with Exception message), and application/vnd.ogc.se_blank (blank image because Exception occurred) options are not supported.

C.2.1.7 FORMAT Parameter

The FORMAT parameter specifies the image format. The supported values are image/gif, image/jpeg, image/png, image/png8, and image/svg+xml.

The default value is image/png.

C.2.1.8 HEIGHT Parameter

The HEIGHT parameter specifies the height for the displayed map in pixels.

C.2.1.9 LAYERS Parameter

The LAYERS parameter specifies a comma-delimited list of predefined theme names to be used for the display. The specified values are considered to a be a case-sensitive, ordered, comma-delimited list of predefined theme names in a default data source (named WMS) or in a named data source specified by the parameter DATASOURCE=<name>. For example, LAYERS=THEME_DEMO_STATES,theme_demo_counties,THEME_demo_HIGHWAYS translates to the following <themes> element in a map visualization component map request:

<themes>
<theme name="THEME_DEMO_STATES"/>
<theme name="theme_demo_counties"/>
<theme name="THEME_demo_HIGHWAYS"/>
</themes>

The base map name can also be part of the LAYERS list. The following example retrieves the image from a base map named DEMO_MAP:

http://localhost:7001/mapviewer/wms?VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG:4326&BBOX=-101.19489559164734,27.0,-78.80510440835268,37.0&WIDTH=965&HEIGHT=431&FORMAT=image/gif&BGCOLOR=0xA6CAF0&TRANSPARENT=TRUE&LAYERS=DEMO_MAP&STYLES=&EXCEPTIONS=application/vnd.ogc.se_xml&datasource=mvdemo

See also BASEMAP Parameter (Map Visualization Component-Only).

C.2.1.10 LEGEND_REQUEST Parameter (Map Visualization Component-Only)

The LEGEND_REQUEST parameter specifies a <legend> element as part of the GetMap request. For information about the <legend> element, see Map Legend.

C.2.1.11 MVTHEMES Parameter (Map Visualization Component-Only)

The MVTHEMES parameter specifies a <themes> element as part of the GetMap request. The primary purpose for the MVTHEMES parameter is to support JDBC themes in a MapViewer request. The MVTHEMES parameter is not a substitute or synonym for the LAYERS parameter; you still must specify the LAYERS parameter.

C.2.1.12 REQUEST Parameter

The REQUEST parameter specifies the type of request. The value must be GetMap, GetFeatureInfo, or GetCapabilities.

C.2.1.13 SERVICE Parameter

The SERVICE parameter specifies the service name. The value must be WMS.

C.2.1.14 SRS (1.1.1) or CRS (1.3.0) Parameter

The SRS parameter (WMS 1.1.1) or the CRS parameter (WMS 1.3.0) specifies the spatial reference system (coordinate system) for the map visualization component to use. The value must be one of the following: SDO:srid-value (where srid-value is a numeric Oracle Spatial SRID value), EPSG:4326 (equivalent to SDO:8307), or none (equivalent to SDO:0).

Except for EPSG:4326 (the standard WGS 84 longitude/latitude coordinate system), EPSG numeric identifiers are not supported. The namespace AUTO ( WMS 1.1.1) or AUTO2 (WMS 1.3.0), for projections that have an arbitrary center of projection, is not supported.

C.2.1.15 STYLES Parameter

The STYLES parameter is ignored. Instead, use the LAYERS parameter to specify predefined themes for the display.

C.2.1.16 TRANSPARENT Parameter

The TRANSPARENT=TRUE parameter (for a transparent image) is supported for PNG images, that is, with FORMAT=image/png, or FORMAT=image/png8 for indexed (8-bit) PNG format. the map visualization component does not support transparent GIF (GIF89) images.

C.2.1.17 VERSION Parameter

The VERSION parameter specifies the WMS version number. The value must be 1.1.1 or 1.3.0.

C.2.1.18 WIDTH Parameter

The WIDTH parameter specifies the width for the displayed map in pixels.

C.2.2 Supported GetCapabilities Request and Response Features

A WMS GetCapabilities request to the map visualization component should specify only the following parameters:

  • REQUEST=GetCapabilities

  • VERSION=1.1.1 or VERSION=1.3.0

  • SERVICE=WMS

For example:

http://localhost:8888/mapviewer/wms?REQUEST=GetCapabilities&VERSION=1.1.1&SERVICE=WMS
or
http://localhost:8888/mapviewer/wms?REQUEST=GetCapabilities&VERSION=1.3.0&SERVICE=WMS

The response is an XML document conforming to the WMS Capabilities DTD available at the following, depending on the value of the VERSION parameter (1.1.1 or 1.3.0):

http://schemas.opengis.net/wms/1.1.1/WMS_MS_Capabilities.dtd

http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd

However, the current release of the map visualization component returns an XML document containing the <Service> and <Capability> elements with the following information:

  • The <Service> element is mostly empty, with just the required value of OGC:WMS for the <Service.Name> element. Support for more informative service metadata is planned for a future release of the map visualization component.

  • The <Capability> element has <Request>, <Exception>, and <Layer> elements.

  • The <Request> element contains the GetCapabilities and GetMap elements that describe the supported formats and URL for an HTTP GET or POST operation.

  • The <Exception> element defines the exception format. The Service Exception XML is the only supported format in this release. The <Exception> element returns an XML document compliant with the Service Exception DTD, but it does not report exceptions as specified in the implementation specification. The current release simply uses the CDATA section of a <ServiceException> element to return the OMSException returned by the map visualization component server.

  • The <Layer> element contains a nested set of <Layer> elements. The first (outermost) layer contains a name (WMS), a title (Oracle WebMapServer Layers by data source), and one <Layer> element for each defined data source. Each data source layer contains a <Layer> element for each defined base map and one entry for each valid theme (layer) not listed in any base map. Each base map layer contains a <Layer> element for each predefined theme in the base map.

    Themes that are defined in the USER_SDO_THEMES view, that have valid entries in the USER_SDO_GEOM_METADATA view for the base table and geometry column, and that are not used in any base map will be listed after the base maps for a data source. These themes will have no <ScaleHint> element. They will have their own <LatLonBoundingBox> and <BoundingBox> elements.

The Content-Type of the response is set to application/vnd.ogc.wms_xml, as required by the WMS implementation specification.

Because the list of layers is output by base map, a given layer or theme can appear multiple times in the GetCapabilities response. For example, the theme THEME_DEMO_STATES, which is part of the base maps named DEMO_MAP and DENSITY_MAP, appears twice in Example C-2, which is an excerpt (reformatted for readability) from a GetCapabilities response.

In Example C-2, the innermost layer describes the IMAGE_LEVEL_2 theme. The <ScaleHint> element lists the min_scale and max_scale values, if any, for that theme in the base map definition. For example, the base map definition for IMAGE_MAP is as follows:

SQL> select definition from user_sdo_maps where name='IMAGE_MAP';
 
DEFINITION
------------------------------------------------------------------------
<?xml version="1.0" standalone="yes"?>
<map_definition>
  <theme name="IMAGE_LEVEL_2" min_scale="1000.0" max_scale="0.0"/>
  <theme name="IMAGE_LEVEL_8" min_scale="5000.0" max_scale="1000.0"/>
  <theme name="MA_ROAD3"/>
  <theme name="MA_ROAD2"/>
  <theme name="MA_ROAD1"/>
  <theme name="MA_ROAD0"/>
</map_definition>

In the innermost layer, the <SRS> and <BoundingBox> elements identify the SRID and the DIMINFO information for that theme's base table, as shown in the following Spatial metadata query:

SQL> select srid, diminfo from user_sdo_geom_metadata, user_sdo_themes 
  2  where name='IMAGE_LEVEL_2' and 
  3  base_table=table_name and
  4  geometry_column=column_name ;
 
      SRID
----------
DIMINFO(SDO_DIMNAME, SDO_LB, SDO_UB, SDO_TOLERANCE)
--------------------------------------------------------------------------------
     41052
SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X', 200000, 500000, .5), SDO_DIM_ELEMENT('Y', 750
000, 950000, .5))

In Example C-2, the <Layer> element for a base map has an <SRS> element and a <LatLonBoundingBox> element. The <SRS> element is empty if all layers in the base map definition do not have the same SRID value specified in the USER_SDO_GEOM_METADATA view. If they all have the same SRID value (for example, 41052), the SRS element contains that value (for example, SDO:41052). The required <LatLonBoundingBox> element currently has default values (-180,-90,180,90). When this feature is supported by map visualization component, this element will actually be the bounds specified in the DIMINFO column of the USER_SDO_GEOM_METADATA view for that layer, converted to geodetic coordinates if necessary and possible.

All layers are currently considered to be opaque and queryable. That is, all layers are assumed to be vector layers, and not GeoRaster, logical network, or image layers.

Example C-2 GetCapabilities Response (Excerpt)

<Title>Oracle WebMapServer Layers by data source</Title>
<Layer>
 <Name>mvdemo</Name>
 <Title>Datasource mvdemo</Title>
   <Layer>
     <Name>DEMO_MAP</Name>
     <Title>Basemap DEMO_MAP</Title>
     <SRS>SDO:8307</SRS>
     <LatLonBoundingBox>-180,-90,180,90</LatLonBoundingBox>
. . .
   <Layer>
     <Name>DENSITY_MAP</Name>
     <Title>Basemap DENSITY_MAP</Title>
     <SRS>SDO:8307</SRS>
     <LatLonBoundingBox>-180,-90,180,90</LatLonBoundingBox>
       <Layer>
         <Name>THEME_DEMO_STATES</Name>
         <Title>THEME_DEMO_STATES</Title>
         <SRS>SDO:8307</SRS>
         <BoundingBox SRS="SDO:8307" minx="-180" miny="-90" maxx="180"
                      maxy="90" resx="0.5" resy="0.5"/>
         <ScaleHint min="50.0" max="4.0"/>
       </Layer>
. . .              
   </Layer>
   <Layer>
     <Name>IMAGE_MAP</Name>
     <Title>Basemap IMAGE_MAP</Title>
     <SRS>SDO:41052</SRS>
     <LatLonBoundingBox>-180,-90,180,90</ LatLonBoundingBox>
       <Layer>
         <Name>IMAGE_LEVEL_2</Name>
         <Title>IMAGE_LEVEL_2</Title>
         <SRS>SDO:41052</SRS>
         <BoundingBox SRS="SDO:41052" minx="200000" miny="500000" maxx="750000"
                    maxy="950000" resx="0.5" resy="0.5"/>
         <ScaleHint min="1000.0" max="0.0"/>
       </Layer>
. . .    
   </Layer>

C.2.3 Supported GetFeatureInfo Request and Response Features

This section describes the supported GetFeatureInfo request parameters and their interpretation by the map visualization component. Example C-3 shows some GetFeatureInfo requests.

The response is an XML document and the Content-Type of the response is text/xml. Example C-4 is a response to a GetFeatureInfo request in Example C-3.

Most of the following sections describe parameters supported for a GetFeatureInfo request. (Parameters that are specific to MapViewer and not mentioned in the WMS 1.1.1 specification are labeled Map Visualization Component-Only.) Specifying Attributes to Be Queried for a GetFeatureInfo Request explains how to query attributes in a GetFeatureInfo request.

Example C-3 GetFeatureInfo Request

http://localhost:8888/mapviewer/wms?REQUEST=GetFeatureInfo&VERSION=1.1.1&BBOX=0,-0
.0020,0.0040&SRS=EPSG:4326&LAYERS=cite:Lakes,cite:Forests&WIDTH=200&HEIGHT=100&INF
O_FORMAT=text/xml&QUERY_LAYERS=cite:Lakes,cite:Forests&X=60&Y=60

http://localhost:8888/mapviewer/wms?REQUEST=GetFeatureInfo&VERSION=1.3.0
&BBOX=0,-0.0020,0.0040&CRS=EPSG:4326&LAYERS=cite:Lakes,cite:Forests&WIDTH=200&HEIGHT=100
&INFO_FORMAT=text/xml&QUERY_LAYERS=cite:Lakes,cite:Forests&I=60&J=60

Example C-4 GetFeatureInfo Response

<?xml version="1.0" encoding="UTF-8" ?>
<GetFeatureInfo_Result>
  <ROWSET name="cite:Lakes">
    <ROW num="1">
      <ROWID>AAAK22AAGAAACUiAAA</ROWID>
    </ROW>
  </ROWSET>
  <ROWSET name="cite:Forests">
    <ROW num="1">
      <FEATUREID>109</FEATUREID>
    </ROW>
  </ROWSET>
</GetFeatureInfo_Result>

C.2.3.1 GetMap Parameter Subset for GetFeatureInfo Requests

A GetFeatureInfo request contains a subset of a GetMap request (BBOX, SRS [1.1.1] or CRS [1.3.0], WIDTH, HEIGHT, and optionally LAYERS parameters). These parameters are used to convert the X, Y (1.1.1) or I, J (1.3.0) point from screen coordinates to a point in the coordinate system for the layers being queried. It is assumed all layers are in the same coordinate system, the one specified by the SRS parameter.

C.2.3.2 EXCEPTIONS Parameter

The only supported value for the EXCEPTIONS parameter is the default: application/vnd.ogc.se_xml for WMS 1.1.1 or xml for WMS 1.3.0. That is, only Service Exception XML is supported. The exception is reported as an XML document conforming to the Service Exception DTD available at the following, depending on the version (1.1.1 or 1.3.0):

http://schemas.opengis.net/wms/1.1.1/WMS_exception_1_1_1.dtd

http://schemas.opengis.net/wms/1.3.0/exceptions_1_3_0.xsd

C.2.3.3 FEATURE_COUNT Parameter

The FEATURE_COUNT parameter specifies the maximum number of features in the result set. The default value is 1. If more features than the parameter's value interact with the query point (X, Y), then an arbitrary subset (of the size of the parameter's value) of the features is returned in the result set. That is, a GetFeatureInfo call translates into a query of the following general form:

SELECT <info_columns> FROM <layer_table>
  WHERE SDO_RELATE(<geom_column>, 
    <query_point>, 'mask=ANYINTERACT')='TRUE'
  AND ROWNUM <= FEATURE_COUNT;

C.2.3.4 INFO_FORMAT Parameter

The value of the INFO_FORMAT parameter is always text/xml.

C.2.3.5 QUERY_LAYERS Parameter

The QUERY_LAYERS parameter specifies a comma-delimited list of layers to be queried. If the LAYERS parameter is specified, the QUERY_LAYERS specification must be a subset of the list specified in the LAYERS parameter.

If the QUERY_LAYERS parameter is specified, any BASEMAP parameter value is ignored.

C.2.3.6 QUERY_TYPE Parameter (Map Visualization Component-Only)

The QUERY_TYPE parameter limits the result set to a subset of possibly qualifying features by specifying one of the following values:

  • at_point: returns only the feature at the specified point.

  • nn: returns only the nearest neighbor features, with the number of results depending on the value of the FEATURE_COUNT parameter value (see FEATURE_COUNT Parameter). The result set is not ordered by distance.

  • within_radius (or within_distance, which is a synonym): returns only results within the distance specified by the RADIUS parameter value (see RADIUS Parameter (Map Visualization Component-Only)), up to the number matching the value of the FEATURE_COUNT parameter value (see FEATURE_COUNT Parameter). The result set is an arbitrary subset of the answer set of potential features within the specified radius. The result set is not ordered by distance.

C.2.3.7 RADIUS Parameter (Map Visualization Component-Only)

The RADIUS parameter specifies the radius of the circular search area for a query in which the QUERY_TYPE parameter value is within_radius (see QUERY_TYPE Parameter (Map Visualization Component-Only)). If you specify the RADIUS parameter, you must also specify the UNIT parameter (see UNIT Parameter (Map Visualization Component-Only)).

C.2.3.8 UNIT Parameter (Map Visualization Component-Only)

The UNIT parameter specifies the unit of measurement for the radius of the circular search area for a query in which the QUERY_TYPE parameter value is within_radius (see QUERY_TYPE Parameter (Map Visualization Component-Only)). The value must be a valid linear measure value from the SHORT_NAME column of the SDO_UNITS_OF_MEASURE table, for example: meter, km, or mile.

If you specify the UNIT parameter, you must also specify the RADIUS parameter (see RADIUS Parameter (Map Visualization Component-Only)).

C.2.3.9 X and Y or I and J Parameters

The X and Y (WMS 1.1.1) or I and J (WMS 1.3.0) parameters specify the x-axis and y-axis coordinate values (in pixels), respectively, of the query point.

C.2.3.10 Specifying Attributes to Be Queried for a GetFeatureInfo Request

In a GetFeatureInfo request, the styling rule for each queryable layer (theme) must contain a <hidden_info> element that specifies which attributes are queried and returned in the XML response. The <hidden_info> element is the same as the one used for determining the attributes returned in an SVG map request.

An example of such a styling rule as follows:

SQL> select styling_rules from user_sdo_themes where name='cite:Forests';
 
STYLING_RULES
--------------------------------------------------------------------------------
<?xml version="1.0" standalone="yes"?>
<styling_rules>
  <hidden_info>
          <field column="FID" name="FeatureId"/>
       </hidden_info>
  <rule>
    <features style="C.PARK FOREST">  </features>
    <label column="NAME" style="T.PARK NAME"> 1 </label>
  </rule>
</styling_rules>

This styling rule specifies that if cite:Forests is one of the QUERY_LAYERS parameter values in a GetFeatureInfo request, the column named FID is queried, and its tag in the response document will be <FEATUREID>. The tag is always in uppercase. If no <hidden_info> element is specified in the styling rules for the theme's query layer, then the rowid is returned. In Example C-4, the styling rule for the cite:Lakes layer has no <hidden_info> element; therefore, the default attribute ROWID is returned in the XML response. The cite:Forests layer, however, does have a <hidden_info> element, which specifies that the attribute column is FID, and that its tag name, in the response document, should be <FEATUREID>.