GetCapabilities

Description

The GetCapabilities service enables user to get metadata about the routing engine deployed. This metadata allows users to explore a service and its capabilities, therefore optimizing their experience using the routing services.

This is available as REST service only.

HTTP GET URL Format
http://<server>:<port>/rest/Spatial/erm/v1/capabilities.json
Query Parameters
Parameter Required Description
acceptVersions Optional Placeholder (not functional)
sections Optional

When omitted, returns information about all sections.

Comma-separated unordered list of zero or more names of sections of service metadata document to be returned in the service metadata document. Section values are case-insensitive. Accepted section values are ServiceIdentification, ServiceProvider, operationsMetadata and databases.

Response

The response will be in line with OGC GetCapabilities. It is in JSON format and has these sections:

  • serviceIdentification
  • serviceProvider
  • operationsMetadata
  • databases

serviceIdentification

This section contains basic metadata about this specific server. Its content will look as follows:

  "serviceIdentification":
      {
          "title": "PBS Routing Service",
          "abstract": "Routing service maintained by PBS",
          "keywords":
          {
              "keyword":
              [
              ]
          },
          "serviceType": "Routing",
          "serviceTypeVersion": "v1",
          "fees": "none",
          "accessConstraints": "none"
      }

This information will be same as what is available in the getCapabilities.json configuration file.

This file is present in <SpectrumFolder>\server\modules\routing. The server needs to be restarted for any change made to the file to have an effect. The administrator determines which information the user should get and can modify or delete corresponding entries in the JSON file. All fields in the JSON file are optional.

serviceProvider

This section contains metadata about the organization operating this server. Its content will look like as follows:

"serviceProvider":
      {
          "providerName": "Routing Service Provider",
          "providerSite":
          {
              "href": "http://www.yourcompany.com/",
              "type": "simple"
          },
          "serviceContact":
          {
              "contactInfo":
              {
                  "address":
                  {
                      "administrativeArea": "Province",
                      "city": "City",
                      "country": "Country",
                      "deliveryPoint": "Mail Delivery Location",
                "electronicMailaddress":"mailto://support@yourcompany.com",
                      "postalCode": "PostCode"
                  },
                  "contactInstructions": "Contact Instructions",
                  "hoursOfservice": "24 Hours",
                  "phone":
                  {
                      "facsimile": "1.800.000.0000",
                      "voice": "1.800.000.0000"
                  }
              },
              "individualName": "Contact Person",
              "positionName": "Contact Person's Title",
              "role": "Contact Person's Role"
          }
      }

This will also be configured using the getCapabilities.json configuration file as described above.

operationsMetadata

This section contains metadata about the operations implemented by this server, including the URLs for operation requests. These fixed operations or services are listed in this section:

  • GetRoute: point to point service
  • GetRouteCostMatrix: matrix of points processing service
  • GetTravelBoundary : generates a drive or walk time or distance boundary
  • DescribeDatasets: gives information about the datasets configured
  • DescribeDatabases: gives information about all the databases configured
  • GetSegmentDataForPoint: returns segment information for a point
  • GetSegmentDataForSegment: returns segment information for a segment ID
  • ListPersistentUpdates: lists down all the persistent updates that exists in the server
  • DeletePersistentUpdates: deletes all the persistent updates that exists in the server
  • SetPersistentUpdatesAtPoint: saves persistent update for the specified point in the server
  • SetPersistentUpdatesForSegment: saves persistent update for the specified segment ID in the server
  • SetPersistentUpdatesForRoadType: saves persistent update for the specified road type in the server

Its content will look like as follows:

{"operationsMetadata": [{
		"name": "GetRoute",
		"DCP": {
			"HTTP": {
				"GET": "<schema>://<server>:<port>/rest/Spatial/erm/databases/<DB_NAME>.json?q=route",
				"POST": "<schema>://<server>:<port>/rest/Spatial/erm/databases/<DB_NAME>.json?q=route"
			}
		},
		"parameter": {
			"name": "OutputFormat",
			"value": "text/json"
		}
	}, 
	
	{
		"name": "GetRouteCostMatrix",
		"DCP": {
			"HTTP": {
				"GET": "<schema>://<server>:<port>/rest/Spatial/erm/databases/<DB_NAME>.json?q=routeCostMatrix",
				"POST": "<schema>://<server>:<port>/rest/Spatial/erm/databases/<DB_NAME>.json?q=routeCostMatrix"
			}
		},"parameter": {
			"name": "OutputFormat",
			"value": "text/json"}
			
	},
				
	{
			
		"name": "GetTravelBoundary",
		"DCP": {
			"HTTP": {
				"GET": "<schema>://<server>:<port>/rest/Spatial/erm/databases/<DB_NAME>.json?q=travelBoundary",
				"POST": "<schema>://<server>:<port>/rest/Spatial/erm/databases/<DB_NAME>.json?q=travelBoundary"
			}
		},
		"parameter": {
			"name": "OutputFormat",
			"value": "text/json"
		}
	}, 
	
	{
		"name": "DescribeDatasets",
		"DCP": {
			"HTTP": {
				"GET": "<schema>://<server>:<port>/rest/Spatial/erm/v1/datasets.json"
			}
		},
		"parameter": {
			"name": "OutputFormat",
			"value": "text/json"
		}
	}, 
	
	{
		"name": "DescribeDatabases",
		"DCP": {
			"HTTP": {
				"GET": "<schema>://<server>:<port>/rest/Spatial/erm/v1/databases.json"
			}
		},
		"parameter": {
			"name": "OutputFormat",
			"value": "text/json"
		}
	},
	
	{
		"name": "GetSegmentDataForPoint",
		"DCP": {
			"HTTP": {
				"GET": "<schema>://<server>:<port>/rest/Spatial/erm/databases/<DB_NAME>/segments.json"
				
			}
		},
		"parameter": {
			"name": "OutputFormat",
			"value": "text/json"
		}
	},
	
	{
		"name": "GetSegmentDataForSegment",
		"DCP": {
			"HTTP": {
				"GET": "<schema>://<server>:<port>/rest/Spatial/erm/databases/<DB_NAME>/segments/<segmentID>.json"
			}
		},
		"parameter": {
			"name": "OutputFormat",
			"value": "text/json"
		}
	},
	
	{
		"name": "ListPersistentUpdates",
		"DCP": {
			"HTTP": {
				"GET": "<schema>://<server>:<port>/rest/Spatial/erm/databases/<DB_NAME>/persistentUpdates.json"
			}
		},
		"parameter": {
			"name": "OutputFormat",
			"value": "text/json"
		}
	},
	
	{
		"name": "DeletePersistentUpdates",
		"DCP": {
			"HTTP": {
				"DELETE": "<schema>://<server>:<port>/rest/Spatial/erm/databases/<DB_NAME>/persistentUpdates"
			}
		},
		"parameter": {
			"name": "OutputFormat",
			"value": "text/json"
		}
	},
	
	{
		"name": "SetPersistentUpdatesAtPoint",
		"DCP": {
			"HTTP": {
				"POST": "<schema>://<server>:<port>/rest/Spatial/erm/databases/<DB_NAME>/persistentUpdates.jason"
			}
		},
		"parameter": {
			"name": "OutputFormat",
			"value": "text/json"
		}
	},
	
	{
		"name": "SetPersistentUpdatesForSegment",
		"DCP": {
			"HTTP": {
				"POST": "<schema>://<server>:<port>/rest/Spatial/erm/databases/<DB_NAME>/persistentUpdates/segments/<segmentID>.json"
			}
		},
		"parameter": {
			"name": "OutputFormat",
			"value": "text/json"
		}
	},
	
	
	{
		"name": "SetPersistentUpdatesForRoadType",
		"DCP": {
			"HTTP": {
				"POST": "<schema>://<server>:<port>/rest/Spatial/erm/databases/<DB_NAME>/persistentUpdates/roadTypes/<roadtype>.json"
			}
		},
		"parameter": {
			"name": "OutputFormat",
			"value": "text/json"
		}
	}
	
]
}

databases

This section will contain the list of names of databases which are configured in the server.

For example:

{
	"databases":
	[
	"US_NE",
	"US"
	]}

If no database is configured on the server, this is returned:

{
	"databases":[
]
}