wiki:FDORfc13

Version 3 (modified by jackwang, 17 years ago) ( diff )

--

FDO RFC 13 - The WMS tile caching support in the FDO

This page contains a request for comments document (RFC) for the FDO Open Source project. More FDO RFCs can be found on the RFCs page.

Status

RFC Template Version(1.0)
Submission Date
Last ModifiedJack Wang Timestamp
AuthorJack Wang
RFC StatusDraft
Implementation Status Pending
Proposed Milestone3.3.0.0
Assigned PSC guide(s)
Voting History
+1
+0
-0
-1

Overview

The tile caching technology is a commonly used approach to optimize the delivery of map imagery across the Internet. Many applications such as Microsoft® Virtual Earth™ and Google Earth have leveraged it and got significant improvement of the user experience.

Currently, WMS doesn’t support it appropriately. But some people have written proposals in order to introduce it to the WMS standard. Refer to those articles at http://wiki.osgeo.org/index.php/WMS_Tile_Caching and http://portal.opengeospatial.org/files/?artifact_id=23206

We’ve started preparing for tile caching support in FDO. And we found that in most cases the GETMAP request in current WMS protocol can be used for the tiling query. One exception is for the case where some stylization rules applied. For example, the following picture shows that duplicated labels are drawn when tiling is done.

To solve this problem, we’re intent to add a flag per WMS layer which indicates whether using tile cache or not. This way, user can set it up for different WMS layers, and can persist it in the FDO configuration.

Proposed Solution

In order to facilitate the implementation, some new WMS Override APIs will be added.

The following section outlines the necessary unmanaged and managed code changes as well as the corresponding configuration xml document change.

Unmanaged Code

/// \brief
///
/// The FdoWmsOvRasterDefinition class defines the physical overrides for a raster property in a WMS FDO schema.
class FdoWmsOvRasterDefinition : public FdoPhysicalElementMapping
{
...
    /// \brief
    /// Gets the tile caching option value.
    /// 
    /// \remarks
    /// This option specifies whether using the tile caching method to query the raster data. 
    /// The default value is true.
    ///
    /// \return
    /// Returns a FdoBoolean indicating whether using tile cache or not.
    /// 
    FDOWMS_API FdoBoolean GetTileCacheOption(void) const;

    /// \brief
    /// Sets the tile caching option value.
    /// 
    /// \remarks
/// This option specifies whether using the tile caching method to query the raster data. 
/// The default value is true.
    /// 
    /// \return
    /// Returns nothing.
    /// 
    FDOWMS_API void SetTileCacheOption(FdoBoolean value);
...
}

Managed Code

/// <summary> 
/// The FdoWmsOvRasterDefinition class defines the physical overrides for a raster property in a WMS FDO schema.
/// </summary>
public __gc class OvRasterDefinition : public NAMESPACE_OSGEO_FDO_COMMANDS_SCHEMA::PhysicalElementMapping
{
...
    /// <summary> Gets the tile caching option value. </summary>
    /// <returns> Returns a FdoBoolean indicating whether using tile cache or not. </returns> 
    /// <remarks> This option specifies whether using the tile caching method to query the raster data.
    /// The default value is true.</remarks> 
    __property System::Boolean get_TileCacheOption ();

    /// <summary> Sets the tile caching option value. </summary>
    /// <returns> Returns nothing. </returns> 
    /// <remarks> This option specifies whether using the tile caching method to query the raster data.
    /// The default value is true.</remarks> 
    __property System::Void set_TileCacheOption(System::Boolean value);
...
}

Configuration xml document:

<RasterDefinition name="Image">
...
  <TileCacheOption>True</TileCacheOption > 
...
</RasterDefinition>

Test Plan

Existing unit tests will be expanded to test the proposed enhancements defined above.

Funding/Resources

Autodesk to provide resources / funding to update WMS Override API.

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.