HTTP-POST-Optionen für GetRouteCostMatrix
URL-Format von HTTP-POST-Anforderungen
Zusätzlich zu den regulären HTTP-GET-Parametern können Sie HTTP-POST-Nutzlastoptionen zu Ihrer Anforderung hinzufügen, in denen vorübergehende Aktualisierungen und die Priorität für Straßentypen angegeben werden. Die HTTP-POST-Nutzlast kann auch verwendet werden, wenn die Liste der eingegebenen Punkte die Grenzen des URL-Puffers des Aufrufers überschreitet. Der Inhaltstyp muss auf „application/json“ festgelegt werden. Für HTTP-POST-Anforderungen wird das folgende Format verwendet:
HTTP POST: /rest/Spatial/erm/databases/dbsource.json?q=routeCostMatrix&query_parameters
POST BODY: Content-Type:application/json {Route Data}
Start- und Endpunkte definieren
Fügen Sie zum Einschließen einer Reihe von Start- oder Endpunkten in eine HTTP-POST-Anforderung die MultiPoint-JSON-Nutzlast hinzu, in der die in der Route enthaltenen Punkte angegeben werden. Wenn in der HTTP-POST-Nutzlast Start- und Endpunkte definiert sind, sind die Abfrageparameter startPoints und endPoints in der URL nicht obligatorisch. Wenn sie in der URL definiert sind, werden sie ignoriert. In der Datei „wrapper.log“ wird eine Warnmeldung protokolliert, wenn Punkte in der URL ignoriert werden.
Beispiel für Startpunkte in der HTTP-POST-Nutzlast.
{
"startPoints": {"type": "MultiPoint","crs": {"type": "name","properties": {"name": "epsg:4326"}},"coordinates": [[ -73.976266,40.788717],[ -73.973562,40.792193],[ -73.971802,40.794630]]}
}
Beispiel für Endpunkte in der HTTP-POST-Nutzlast.
{
"endPoints": {"type": "MultiPoint","crs": {"type": "name","properties": {"name": "epsg:4326"}},"coordinates": [[ -73.976266,40.788717],[ -73.973562,40.792193],[ -73.971802,40.794630]]}
}
Vorübergehende Aktualisierungen
Diese Einstellungen ermöglichen es Ihnen, für jede Anforderung vorübergehende Aktualisierungen festzulegen. Sie können beispielsweise anfordern, dass der Server versucht, alle Hauptverkehrsstraßentypen zu vermeiden. Jede Anforderung kann mindestens eine Aktualisierung enthalten. Bei Geschwindigkeitsaktualisierungen steht ein positiver Geschwindigkeitswert für eine Geschwindigkeitserhöhung und ein negativer Geschwindigkeitswert für eine Geschwindigkeitsverringerung. Im Folgenden wird eine Beschreibung der vorübergehender Aktualisierungstypen dargestellt:
Aktualisierungstyp |
Beschreibung |
---|---|
Punkt |
Punktaktualisierungen sind Änderungen, die auf einen entsprechenden Punkt (Breitengrad, Längengrad) angewendet werden. Bei einem bestimmten Punkt können Sie den Punkt ausschließen, die Geschwindigkeit des Punktes festlegen oder die Geschwindigkeit des Punktes durch einen Wert oder einen Prozentsatz ändern (erhöhen oder verringern). Verwenden Sie einen der folgenden Aktualisierungstypen:
|
segmentID |
Bei Segmentaktualisierungen handelt es sich um Änderungen, die auf eine entsprechende Segment-ID angewendet werden. Für ein bestimmtes Segment können Sie das Segment ausschließen, die Geschwindigkeit des Segments festlegen, die Geschwindigkeit des Segments um einen Wert oder Prozentsatz ändern (erhöhen oder verringern) oder den Straßentyp des Segments ändern. Verwenden Sie einen der folgenden Aktualisierungstypen:
|
roadType |
Straßentypaktualisierungen sind auf einen entsprechenden Straßentyp angewendete Änderungen. Bei einem bestimmten Straßentyp können Sie den Straßentyp ausschließen oder die Geschwindigkeit des Straßentyps durch einen Wert oder einen Prozentsatz ändern (erhöhen oder verringern). Verwenden Sie einen der folgenden Aktualisierungstypen:
|
Beispiel für vorläufige Aktualisierungen der HTTP-POST-Nutzlast.
{
"transientUpdates": [
{
"segmentID": "specify a segment id",
"updates": [
{"exclude": "Y"},
{"roadType": "a road type"},
{"percentage": 26.0},
{"speed": { "velocity": 25, "velocityUnit": "kph"}},
{"percentage": -13.5},
{"speedAdjustment" : { "velocity": 5, "velocityUnit": "kph"}}
]
},
{
"point": "specify a geojson point",
"updates": [
{"exclude": "Y"},
{"percentage": 26.0},
{"speed": { "velocity": 25, "velocityUnit": "kph"}},
{"percentage": -13.5},
{"speedAdjustment" : { "velocity": 5, "velocityUnit": "kph"}}
]
},
{
"roadType": "specify a road type",
"updates": [
{"percentage": 26.0},
{"speed": { "velocity": 25, "velocityUnit": "kph"}},
{"percentage": -13.5},
{"speedAdjustment" : { "velocity": 5, "velocityUnit": "kph"}}
]
}
]
}
Beispiel für GeoJSON-Punkt.
"point": {"type": "Point", "crs":
{
"type": "name",
"properties":
{"name": "epsg:4326"}
},
"coordinates":
[-73.979102,40.785193]
}
Straßentyppriorität
Gibt die Priorität an, die verschiedenen Straßentypen beim Bestimmen der Route gegeben werden soll. Im Folgenden wird eine Beschreibung der Optionen für die Straßentyppriorität dargestellt:
Option |
Beschreibung |
---|---|
hoch |
Ziehen Sie den Straßentyp anderen Straßentypen vor. |
mittel |
Geben Sie diesem Straßentyp die gleiche Präferenz wie anderen Straßentypen. Wenn für einen Straßentyp keine Präferenz angegeben ist, lautet der Standard „Mittel“. |
niedrig |
Ziehen Sie diesem Straßentyp andere Straßentypen vor. |
vermeiden |
Schließen Sie den Straßentyp, wenn möglich, aus Routen aus. Ein Straßentyp kann nicht immer aus den Fahrtanweisungen ausgeschlossen werden. Abhängig von der Situation kann die Alternative zu einem vermiedenen Straßentyp so schlecht sein, dass die Software eine Route auswählt, bei der ein anderer vermiedener Straßentyp verwendet wird. Zudem verwendet die Software dieses Segment weiterhin, wenn der Start- oder Endpunkt entlang eines Segments liegt, dessen Straßentyp vermieden wurde. |
Beispiel für Straßentyppriorität in HTTP-POST-Nutzlast.
{
" roadTypesPriority ": {
"RoadType.MajorRoadDenseUrban": "High",
"RoadType.LimitedAccessDenseUrban":"Low",
"RoadType.LimitedAccessRural":"Medium",
"RoadType.PrimaryHighwayUrban":"Avoid"
}
}