Changes between Version 9 and Version 10 of SoCWMSDriver


Ignore:
Timestamp:
Jul 16, 2007, 8:59:07 AM (17 years ago)
Author:
nowakpl
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoCWMSDriver

    v9 v10  
    1111url: http://example.com/?width=500&height=500&bbox=5,10,10,15
    1212 3. The images are downloaded, resampled, mosaicked, cropped to fit the user request.
    13 The interface layer implements:
     13'''The interface layer implements''':
    1414{{{
    1515        class GDALWMSDataset : public GDALPamDataset {
     
    5050        };
    5151}}}
    52 Dataset open
     52===Dataset open===
    5353 1. open, verify and read XML configuration file into CPL MiniXML tree
    5454 2. update XML tree with arguments specified in dataset name
    5555 3. create instance of mini-driver and pass in the XML tree
    56 Dataset image request
     56===Dataset image request===
    5757 1. validate the request
    5858 2. check if request can be satisfied from block cache only and return the data to user if possible
     
    6161 5. update block cache wherever possible (resolution match, complete coverage)
    6262 6. return the data to user
    63 Download cache
     63===Download cache===
    6464If enabled in XML configuration file and allowed by mini-driver, downloaded images will be written to disk for future use. This should reduce load on the WMS server or even allow off-line operation.
    6565HTTP download queue
    6666Download queue is implemented using libcurl (http://curl.haxx.se/libcurl/), running in dedicated background thread to allow data preloading (AdviseRead or guessed). Can be configured to use HTTP pipelining and multiple connections.
    67 XML configuration file
     67===XML configuration file===
    6868{{{
    6969        <GDALWMS>
     
    7474        </GDALWMS>
    7575}}}
    76 <HTTP> configures the HTTP download queue.
     76'''<HTTP>''' configures the HTTP download queue.
    7777{{{
    7878        <HTTP>
     
    8888        </HTTP>
    8989}}}
    90 <DataSource> specifies name and configuration for mini-driver.
     90'''<DataSource>''' specifies name and configuration for mini-driver.
    9191{{{
    9292        <DataSource driver=”some mini-driver”>
     
    9494        </DataSource>
    9595}}}
    96 <DataWindow> specifies projection, extents and resolution of data as visible by GDAL. Image size is in pixels, upper-left and lower-right corners are in specified projection. Overview count is optional and can be set to 0, default is calculated so last overview is bigger than 512x512. Block size is optional and defaults to 512x512.
     96'''<DataWindow>''' specifies projection, extents and resolution of data as visible by GDAL. Image size is in pixels, upper-left and lower-right corners are in specified projection. Overview count is optional and can be set to 0, default is calculated so last overview is bigger than 512x512. Block size is optional and defaults to 512x512.
    9797{{{
    9898        <DataWindow>
     
    123123        </DataWindow>
    124124}}}
    125 <Cache> specifies location of disk cache. If location is not set cache is disabled.
     125'''<Cache>''' specifies location of disk cache. If location is not set cache is disabled.
    126126{{{
    127127        <Cache>
     
    129129        </Cache>
    130130}}}
    131 Mini-driver
    132 Image download request, filled in by mini-driver and returned to interface layer.
     131===Mini-driver===
     132'''Image download request''', filled in by mini-driver and returned to interface layer.
    133133{{{
    134134        class ImageDownloadRequest {
     
    143143        typedef std::vector<ImageDownloadRequest> ImageDownloadRequestList;
    144144}}}
    145 Mini-driver
     145'''Mini-driver'''
    146146{{{
    147147        class MiniDriver {
     
    156156        };
    157157}}}
    158 Mini-driver factory, used to create instance of given mini-driver.
     158'''Mini-driver factory''', used to create instance of given mini-driver.
    159159{{{
    160160        class MiniDriverFactory {
     
    183183}}}
    184184
    185 Planned mini-drivers
     185===Planned mini-drivers===
    186186 * OGC WMS (http://www.opengeospatial.org/standards/wms)
    187187 * TMS (http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification)
     
    190190 * World Wind tiled datasets, both remote http and local file versions (http://issues.worldwind.arc.nasa.gov/confluence/download/attachments/394/world+wind+tile+systemt.gif)
    191191 * TileService (no docs, similar to World Wind, example http://s0.tileservice.worldwindcentral.com/getTile?interface=map&version=1&dataset=bmng.topo.bathy.200401&level=0&x=0&y=0)
    192 OGC WMS mini-driver
     192===OGC WMS mini-driver===
    193193The driver will not issue GetCapabilities requests, all information has to be stored in XML configuration file. Small utility program will be provided (probably a script) to handle GetCapabilities requests and write configuration file.
    194194Arbitrary overviews handled by WMS server.
     
    198198 2. one download per image request, extended to block cache grid, disk cache not allowed
    199199 3. many downloads per image request (tiled), full block cache, disk cache allowed
    200 OGC WMS mini-driver configuration
     200'''OGC WMS mini-driver configuration'''
    201201{{{
    202202        <DataSource driver=”WMS”>
     
    212212        </DataSource>
    213213}}}
    214 Example mini-driver implementation
     214===Example mini-driver implementation===
    215215Mini-driver for a WMS-like service with requests in format:
    216216http://server/file?width=...&height=...&bbox=...