Comment on page
MapServer
MapServer is an open source platform for publishing spatial data and interactive mapping applications to the web. MapServer allows you to render data from TileDB arrays and combine other sources and formats such as GeoJSON to render cartographic quality maps.
You can run the MapServer and TileDB examples as follows;
docker run -it --rm -u 0 -v /local/path:/data tiledb/tiledb-geospatial /bin/bash
We will use the following MapServer mapfile;
MAP
IMAGETYPE PNG
SIZE 400 300
EXTENT -77.8751 34.1472 -77.7869 34.267
CONFIG "TILEDB_CONFIG" "./aws.config"
PROJECTION
"init=epsg:4326"
END
WEB
METADATA
"wms_title" "TileDB tutorial"
"wms_onlineresource" "https://myhost/mapserv"
"wms_enable_request" "*"
END
END
LAYER
NAME "tiledb_coastal"
TYPE RASTER
DATA "s3://tiledb-mapserver/tiledb_mosaic"
CONNECTIONOPTIONS
"TILEDB_CONFIG" "aws.config"
END
OFFSITE 0 0 0
PROJECTION
"init=epsg:4326"
END
METADATA
"wms_title" "TileDB Sample 2017 NOAA NGS Ortho-rectified Oblique Imagery of the East Coast"
END
END # tiledb_coastal raster layer ends here
END # end of map file
And sample data from https://coast.noaa.gov/dataviewer/#/, in this case the 2017 NOAA NGS Ortho-rectified Oblique Imagery of the East Coast.
The following GDAL commands are used to produce a single tiledb array from multiple sources.
gdalbuildvrt mosaic.vrt *.tif
gdal_translate -OF TILEDB -CO COMPRESSION=ZSTD -CO BLOCKXSIZE=1024 -CO BLOCKYSIZE=1024 mosaic.vrt tiledb_mosaic
As in our TileDB and GDAL tutorials, we store the S3 credentials in an
aws.config
file. Note that this aws.config
file should be stored in a location that is accessible by your web server but is not public.To test rendering a map with MapServer we use the
shp2img
command;shp2img -m tutorial.map -l tiledb_coastal -e -77.82 34.17 -77.80 34.20 -s 250 250 -o ~/Desktop/test.png -map_debug 3
We have tested this mapfile on an AWS
m5a.2xlarge
instance and successfully created a map from a query to a TileDB array stored on S3.
Last modified 2yr ago