Changes between Version 9 and Version 10 of SoCWMSDriver
- Timestamp:
- Jul 16, 2007, 8:59:07 AM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoCWMSDriver
v9 v10 11 11 url: http://example.com/?width=500&height=500&bbox=5,10,10,15 12 12 3. The images are downloaded, resampled, mosaicked, cropped to fit the user request. 13 The interface layer implements:13 '''The interface layer implements''': 14 14 {{{ 15 15 class GDALWMSDataset : public GDALPamDataset { … … 50 50 }; 51 51 }}} 52 Dataset open 52 ===Dataset open=== 53 53 1. open, verify and read XML configuration file into CPL MiniXML tree 54 54 2. update XML tree with arguments specified in dataset name 55 55 3. create instance of mini-driver and pass in the XML tree 56 Dataset image request 56 ===Dataset image request=== 57 57 1. validate the request 58 58 2. check if request can be satisfied from block cache only and return the data to user if possible … … 61 61 5. update block cache wherever possible (resolution match, complete coverage) 62 62 6. return the data to user 63 Download cache 63 ===Download cache=== 64 64 If 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. 65 65 HTTP download queue 66 66 Download 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=== 68 68 {{{ 69 69 <GDALWMS> … … 74 74 </GDALWMS> 75 75 }}} 76 <HTTP>configures the HTTP download queue.76 '''<HTTP>''' configures the HTTP download queue. 77 77 {{{ 78 78 <HTTP> … … 88 88 </HTTP> 89 89 }}} 90 <DataSource>specifies name and configuration for mini-driver.90 '''<DataSource>''' specifies name and configuration for mini-driver. 91 91 {{{ 92 92 <DataSource driver=”some mini-driver”> … … 94 94 </DataSource> 95 95 }}} 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. 97 97 {{{ 98 98 <DataWindow> … … 123 123 </DataWindow> 124 124 }}} 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. 126 126 {{{ 127 127 <Cache> … … 129 129 </Cache> 130 130 }}} 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. 133 133 {{{ 134 134 class ImageDownloadRequest { … … 143 143 typedef std::vector<ImageDownloadRequest> ImageDownloadRequestList; 144 144 }}} 145 Mini-driver 145 '''Mini-driver''' 146 146 {{{ 147 147 class MiniDriver { … … 156 156 }; 157 157 }}} 158 Mini-driver factory, used to create instance of given mini-driver.158 '''Mini-driver factory''', used to create instance of given mini-driver. 159 159 {{{ 160 160 class MiniDriverFactory { … … 183 183 }}} 184 184 185 Planned mini-drivers 185 ===Planned mini-drivers=== 186 186 * OGC WMS (http://www.opengeospatial.org/standards/wms) 187 187 * TMS (http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification) … … 190 190 * 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) 191 191 * 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=== 193 193 The 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. 194 194 Arbitrary overviews handled by WMS server. … … 198 198 2. one download per image request, extended to block cache grid, disk cache not allowed 199 199 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''' 201 201 {{{ 202 202 <DataSource driver=”WMS”> … … 212 212 </DataSource> 213 213 }}} 214 Example mini-driver implementation 214 ===Example mini-driver implementation=== 215 215 Mini-driver for a WMS-like service with requests in format: 216 216 http://server/file?width=...&height=...&bbox=...