Version 17 (modified by 17 years ago) ( diff ) | ,
---|
FDOGDAL Raster Provider
The fdogdal provider is the open source raster provider for FDO (and hence MapGuide). It is implemented on top of the GDAL raster library. Frank Warmerdam (warmerdam at pobox.com) is the primary author of fdogdal. Questions about the provider may asked on the fdo or mapguide users lists.
Index
- Documentation
- MrSID and ECW Plugin Support
- Using with Autodesk MapGuide Studio
- Creating Tile Index Config Files
- Debugging Rasters in MapGuide
- Current Issues and Work Items
Documentation
MrSID and ECW Plugin Support
MrSID and ECW are popular wavelet compression formats used for imagery. Support for these formats is not included in the official FDO or MapGuide releases for licensing issues, but you can add plugins to your installation to use these formats.
Frank Warmerdam is making these plugins available on his site:
http://home.gdal.org/dl/mapguide/
Make sure to read the appropriate license agreements, and then follow these instructions for your version of FDO/MapGuide
FDO 3.2.0 / MapGuide 1.1.0
Follow the instructions in the readme file (http://home.gdal.org/dl/mapguide/README.txt), downloading and unzipping the files mg_fdogdal_110.zip, mg_ecw.zip, and/or mg_mrsid.zip into your MapGuideOpenSource/Server/Bin directory
FDO 3.2.3 / MapGuide 1.2.0
Only download and unzip the mg_ecw.zip and/or mg_mrsid.zip files into your MapGuideOpenSource/Server/Bin directory
Using with Autodesk MapGuide Studio
To publish rasters using the open source raster provider with Autodesk MapGuide Studio use the following steps:
- Start Studio and connect to your MapGuide Open Source server.
- Then do File > New > Data Connection...
- In the Connect To Data dialog that comes up, select OSGeo FDO Provider for Raster, then press OK. An editor that says "Configure a Feature Resource using the Generic Editor" will display.
- In the Connection Properties grid, there is a DefaultRasterFileLocation property. Click in the value column and enter the directory where your image files are. On Linux it has the form /home/thf/myimages and on Windows it has the form C:\myimages.
- The configuration of the raster source is now complete, save the resource and start using it.
Notes:
- In MapGuide 1.1, the layer definition preview does not show the raster. In order to preview the data, create a map definition and set the extents of the map to contain the raster data. If the extents are set correctly the raster data should show in the preview.
Creating Tile Index Config Files
Please note that this only applies to FDO 3.2.3 and MapGuide 1.2 or greater.
If you have a lot of raster images in a single directory, it can be prohibitively slow to read through all of these images just to display a small area of them.
With the release of FDOGDAL 3.2.3, Frank has added support for tile indexes in an XML config file.
If you are using MapGuide 1.2, you can easily create a new tile-enabled data connection by running a script that Jason has provided. Usage notes are included:
View Source | README | Zip Download
Debugging Rasters in MapGuide
If your rasters are not showing correctly in MapGuide, it can be instructive to run MgServer.exe at the command line in interactive mode, with the CPL_DEBUG environment variable set to ON. This will report various GDAL level debugging output. At the very least this should give an idea of the files that GDAL is trying to open.
eg.
cd \"Program Files"\MapGuideOpenSource\server\bin set CPL_DEBUG=ON mgserver stop mgserver run
Development Status
This is just a quick reference of outstanding issues / working points
- #111
- GDAL Override schema does not show bounds support
- #654
- GDAL FDO does not handle rotate images
- #687
- GDAL Provider memory leak
- #820
- FDO GDAL as multithreading data provider
- #985
- Update GDAL to 3.x
- #994
- Ship supporting GDAL/OGR tools and data
- #995
- Open should actually try to GDALOpen the data source in question to test if it valid
- #1001
- Where possible, the GDAL provider should try to include the result of CPLGetLastErrorMsg() in its exception message before throwing