Publish raster data

更新时间:
复制 MD 格式

This document describes how to publish Ganos raster data by using GeoServer.

Add a data source

Note

The GeoServer web console may vary with the version. This topic uses GeoServer 2.23.2 as an example.

  1. Open the GeoServer web console and click Stores .

  2. Click Add new Store.

  3. Select GanosRaster(PG/PolarDB).

  4. Enter the connection information about the Ganos database.

    Parameter

    Description

    Example

    host

    The database endpoint. The endpoint can be an IP address or an ApsaraDB RDS connection endpoint.

    xxxxxxx.pg.rds.aliyuncs.com

    port

    The port number of the database.

    3432

    database

    The database name.

    rasterdb

    username

    The database username.

    pguser

    password

    The database password.

    123456

    schema

    The schema that contains the table.

    public

    table

    The name of the table that stores raster data.

    raster_table

    column name

    The name of the raster column.

    raster_column

    filter

    The filter condition for raster objects, which is used as the WHERE clause in an SQL statement. If multiple raster objects meet the condition, the first one is used.

    id=1 or name='srtm'

    name

    The name of the raster layer that is displayed in GeoServer.

    myraster

REST API

  • Create a data source

    • API: http://host:port/geoserver/rest/workspaces/{workspace}/coveragestores

    • Method: POST

    • Parameters:

      • workspace: the name of an existing workspace.

      • datastore body: In the request body, set the type parameter to GanosRaster(PG/PolarDB), and specify the database connection parameters in JSON format for the url parameter.

        {
          "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}"
          }
        }
    • Sample request:

      {
        "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}"
        }
      }
  • Query data sources

    • API: http://host:port/geoserver/rest/workspaces/{workspace}/coveragestores

    • Method: GET

    • Parameters:

      • workspace: the name of an existing workspace.

      • Sample response: The following response shows the coverage stores in the specified workspace.

        {
          "coverageStores": {
            "coverageStore": [
              {
                "name": "srtm",
                "href": "http://11.xxx.xxx.xxx:8080/geoserver/rest/workspaces/tianxun/coveragestores/srtm.json"
              },
              {
                "name": "myraster",
                "href": "http://11.xxx.xxx.xxx:8080/geoserver/rest/workspaces/tianxun/coveragestores/myraster.json"
              }
            ]
          }
        }
  • Publish a raster layer

    • API: http://host:port/geoserver/rest/workspaces/{workspace}/coveragestores/{store}/coverages

    • Method: POST

    • Parameters:

      • workspace: the name of an existing workspace.

      • Request 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"
          }
        }