GetCapabilities

Beschreibung

Mit dem „GetCapabilites“-Dienst können Benutzer Metadaten über die genutzte Routing-Engine abrufen. Anhand dieser Metadaten können Benutzer einen Dienst und seine Funktionen entdecken und so die Verwendung dieser Routenführungsdienste optimieren.

Dieser Dienst ist nur als REST-Dienst verfügbar.

URL-Format von HTTP-GET-Anforderungen
http://<server>:<port>/rest/Spatial/erm/v1/capabilities.json
Abfrageparameter
Parameter Erforderlich Beschreibung
acceptVersions Optional Platzhalter (nicht funktional)
sections Optional

Wird dieser Parameter ausgelassen, werden Informationen über alle Abschnitte zurückgegeben.

Ungeordnete, durch Komma getrennte Liste von null oder mehr Abschnittsnamen, die im Dienstmetadatendokument zurückgegeben werden. Bei Abschnittswerten muss die Groß-/Kleinschreibung beachtet werden. Zulässige Abschnittswerte sind „ServiceIdentification“, „ServiceProvider“, „operationsMetadata“ und „databases“.

Antwort

Die Antwort entspricht den OGC GetCapabilities. Sie ist im JSON-Format angegeben und hat diese Abschnitte:

  • serviceIdentification
  • serviceProvider
  • operationsMetadata
  • databases

serviceIdentification

Dieser Abschnitt enthält grundlegenden Metadaten über diesen bestimmten Server. Der Inhalt sieht folgendermaßen aus:

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

Diese Informationen sind identisch mit den in der Konfigurationsdatei getCapabilities.json verfügbaren Informationen.

Diese Datei befindet sich in <<SpectrumFolder>\server\modules\routing. Der Server muss neu gestartet werden, damit Änderungen an der Datei wirksam werden. Der Administrator bestimmt, welche Informationen der Benutzer erhalten soll und kann entsprechende Einträge in der JSON-Datei ändern oder löschen. Alle Felder in der JSON-Datei sind optional.

serviceProvider

Dieser Abschnitt enthält Metadaten über die Organisation, die diesen Server betreibt. Der Inhalt sieht folgendermaßen aus:

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

Dieser wird auch mithilfe der oben beschriebenen Konfigurationsdatei getCapabilities.json konfiguriert.

operationsMetadata

Dieser Abschnitt enthält Metadaten über die von diesem Server implementierten Optionen, einschließlich die URLs für Vorgangsanforderungen. Diese feststehenden Vorgänge oder Dienste sind in diesem Abschnitt aufgeführt:

  • GetRoute: Point-to-Point-Dienst
  • GetRouteCostMatrix: Matrix des Punktverarbeitungsdienstes
  • GetTravelBoundary: generiert eine Fahrt- bzw. Gehzeit oder einen Entfernungsrahmen.
  • DescribeDatasets: enthält Informationen über die konfigurierten Datasets
  • DescribeDatabases: enthält Informationen über alle konfigurierten Datenbanken.
  • GetSegmentDataForPoint: gibt die Segmentinformationen für einen Punkt zurück.
  • GetSegmentDataForSegment: gibt Segmentinformationen für eine Segment-ID zurück.
  • ListPersistentUpdates: listet alle Persistent Updates auf, die auf dem Server vorhanden sind.
  • DeletePersistentUpdates: löscht alle Persistent Updates, die auf dem Server vorhanden sind.
  • SetPersistentUpdatesAtPoint: speichert das Persistent Update für den angegebenen Punkt auf dem Server.
  • SetPersistentUpdatesForSegment: speichert das Persistent Update für die angegebene Segment-ID auf dem Server.
  • SetPersistentUpdatesForRoadType: speichert das Persistent Update für den angegebenen Straßentyp auf dem Server.

Der Inhalt sieht folgendermaßen aus:

{"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

Dieser Abschnitt enthält die Liste von Namen der Datenbanken, die im Server konfiguriert sind.

Beispiel:

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

Wenn keine Datenbank auf dem Server konfiguriert ist, wird dies zurückgegeben:

{
	"databases":[
]
}