通过GeoServer发布Ganos中的栅格数据。
添加数据源
不同的GeoServer版本,打开的GeoServer Web Portal可能存在差异,本文以GeoServer 2.23.2
为例。
打开GeoServer Web Portal,选择stores。
单击add new Store。
选择GanosRaster(PG/PolarDB)。
填写Ganos数据库的连接信息。
参数名称
描述
示例
host
数据库地址(IP或RDS连接地址)。
xxxxxxx.pg.rds.aliyuncs.com
port
数据库端口号。
3432
database
数据库名称。
rasterdb
username
数据库用户名。
pguser
password
数据库密码。
123456
schema
表所在的schema。
默认为public
table
栅格所在表名。
raster_table
column name
栅格列名称。
raster_column
filter
栅格对象过滤条件,为SQL语句中的where条件。 如果符合条件的栅格有多个,总是使用第一个。
id=1或name='srtm'
name
geoserver显示的栅格名称。
myraster
REST API
创建数据源
接口:http://host:port/geoserver/rest/workspaces/{workspace}/coveragestores
方法:POST
参数:
workspace:已经创建好的workspace名称。
datastore body:示例如下,其中type为固定写法,url中填写阿里云PG/PolarDB的连接参数(json格式)。
{ "coverageStore": { "name": "<datasource_name>", "type": "GanosRaster(PG/PolarDB)", "enabled":"true", "workspace":"<wokrspace>", "url": "{\"column\":\"<raster_column>\",\"database\":\"<database_name>\",\"filter\":\"<raster_filter>\",\"host\":\"<pg_host>\",\"name\":\"<public_name>\",\"password\":\"<user_password>\",\"port\":<pg_port>,\"schema\":\"<schema_name>\",\"ssl\":false,\"table\":\"<raster_table_name>\",\"userName\":\"<user_name>\",\"valid\":true}" } }
创建数据源示例
{ "coverageStore": { "name": "srtm", "type": "GanosRaster(PG/PolarDB)", "enabled":"true", "workspace":"test", "url": "{\"column\":\"rast\",\"database\":\"test_db\",\"filter\":\"name='srtm'\",\"host\":\"pgm-xxxxxxxx.pg.rds.aliyuncs.com\",\"name\":\"srtm_image\",\"password\":\"xxxx\",\"port\":3432,\"schema\":\"public\",\"ssl\":true,\"table\":\"raster_table\",\"userName\":\"raster_user\",\"valid\":true}" } }
获取数据源
发布栅格图层
接口:http://host:port/geoserver/rest/workspaces/{workspace}/coveragestores/{store}/coverages
方法:POST
参数:
workspace:已经创建好的workspace名称。
post的body格式如下:
{ "coverage": { "abstract": "Digital elevation model for the Spearfish region.\r\n\r\nsfdem is a Tagged Image File Format with Geographic information", "defaultInterpolationMethod": "nearest neighbor", "description": "Generated from sfdem", "dimensions": { "coverageDimension": [ { "description": "GridSampleDimension[-9.999999933815813E36,-9.999999933815813E36]", "name": "GRAY_INDEX", "range": { "max": -9.999999933815813e+36, "min": -9.999999933815813e+36 } } ] }, "enabled": true, "grid": { "@dimension": "2", "crs": "EPSG:26713", "range": { "high": "634 477", "low": "0 0" }, "transform": { "scaleX": 30, "scaleY": -30, "shearX": 0, "shearY": 0, "translateX": 589995, "translateY": 4927995 } }, "interpolationMethods": { "string": [ "nearest neighbor", "bilinear", "bicubic" ] }, "keywords": { "string": [ "WCS", "sfdem", "sfdem", "type\\@language=fr\\;\\@vocabulary=test\\;" ] }, "latLonBoundingBox": { "crs": "EPSG:4326", "maxx": -103.62940739432703, "maxy": 44.5016011535299, "minx": -103.87108701853181, "miny": 44.370187074132616 }, "metadata": { "entry": [ { "@key": "elevation", "dimensionInfo": { "enabled": false } }, { "$": "10", "@key": "cacheAgeMax" }, { "@key": "time", "dimensionInfo": { "defaultValue": "", "enabled": false } }, { "$": "true", "@key": "cachingEnabled" }, { "$": "sfdem_sfdem", "@key": "dirName" } ] }, "name": "sfdem", "namespace": { "href": "http://localhost:8075/geoserver/restng/namespaces/sf.json", "name": "sf" }, "nativeBoundingBox": { "crs": { "$": "EPSG:26713", "@class": "projected" }, "maxx": 609000, "maxy": 4928010, "minx": 589980, "miny": 4913700 }, "nativeCRS": { "$": "PROJCS[\"NAD27 / UTM zone 13N\", \n GEOGCS[\"NAD27\", \n DATUM[\"North American Datum 1927\", \n SPHEROID[\"Clarke 1866\", 6378206.4, 294.9786982138982, AUTHORITY[\"EPSG\",\"7008\"]], \n TOWGS84[2.478, 149.752, 197.726, 0.526, -0.498, 0.501, 0.685], \n AUTHORITY[\"EPSG\",\"6267\"]], \n PRIMEM[\"Greenwich\", 0.0, AUTHORITY[\"EPSG\",\"8901\"]], \n UNIT[\"degree\", 0.017453292519943295], \n AXIS[\"Geodetic longitude\", EAST], \n AXIS[\"Geodetic latitude\", NORTH], \n AUTHORITY[\"EPSG\",\"4267\"]], \n PROJECTION[\"Transverse_Mercator\", AUTHORITY[\"EPSG\",\"9807\"]], \n PARAMETER[\"central_meridian\", -105.0], \n PARAMETER[\"latitude_of_origin\", 0.0], \n PARAMETER[\"scale_factor\", 0.9996], \n PARAMETER[\"false_easting\", 500000.0], \n PARAMETER[\"false_northing\", 0.0], \n UNIT[\"m\", 1.0], \n AXIS[\"Easting\", EAST], \n AXIS[\"Northing\", NORTH], \n AUTHORITY[\"EPSG\",\"26713\"]]", "@class": "projected" }, "nativeFormat": "GeoTIFF", "nativeName": "sfdem", "requestSRS": { "string": [ "EPSG:26713" ] }, "responseSRS": { "string": [ "EPSG:26713" ] }, "srs": "EPSG:26713", "store": { "@class": "coverageStore", "href": "http://localhost:8075/geoserver/restng/workspaces/sf/coveragestores/sfdem.json", "name": "sf:sfdem" }, "supportedFormats": { "string": [ "ARCGRID", "IMAGEMOSAIC", "GTOPO30", "GEOTIFF", "GIF", "PNG", "JPEG", "TIFF" ] }, "title": "Spearfish elevation" } }