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 „spectrum-server.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. Für Geschwindigkeitsaktualisierungen ist ein positiver Geschwindigkeitswert eine Geschwindigkeitserhöhung und ein negativer Geschwindigkeitswert 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 |
Segmentaktualisierungen sind auf eine entsprechende Segment-ID angewendete Änderungen. 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": "7e3396fc:151186f", "updates": [ {"percentage": 26.0} ] }, { "point": {"type": "Point", "crs": { "type": "name", "properties": { "name": "epsg:4326" } }, "coordinates": [ -73.972776, 40.795076 ] }, "updates": [ {"speedAdjustment" : { "velocity": 5, "velocityUnit": "kph"}} ] }, { "roadType": "major road dense urban", "updates": [ {"speed": { "velocity": 25, "velocityUnit": "kph"}} ] } ] }
Nutzfahrzeugeinschränkungen
Nutzfahrzeugeinschränkungen bestehen aus Anweisungen für das Routingverhalten der Routing-Engine und Attributen für Nutzfahrzeuge, die einer solchen Route folgen. Abhängig von den vorhandenen Fahrzeugattributen (wie Höhe, Breite, Länge, Gewicht) und den Attributen für im Straßennetz vorhandenen Nutzfahrzeugeinschränkungen werden Entscheidungen getroffen, ob ein bestimmtes Fahrzeug über ein bestimmtes Segment geführt werden darf oder nicht. Wenn keine Attribute für im Straßennetz vorhandene Nutzfahrzeugeinschränkungen vorhanden sind, haben die Einschränkungsparameter der Eingabe keine Auswirkungen auf die resultierende Route.
Folgende Parameter sind für Nutzfahrzeugeinschränkungen vorhanden:
Option | Beschreibung |
---|---|
looseningBarrierRestrictions |
Gibt an, dass bei der Bestimmung der Route Durchfahrtsbeschränkungen entfernt werden. Diese Einschränkungen sind oftmals Durchfahrtsverbote für Nutzfahrzeuge durch ein bestimmtes Segment aufgrund von lokalen Bestimmungen, oder ein Nutzfahrzeug ist nur erlaubt, wenn es unbedingt durchfahren muss (z. B. Letzter-Meilen-Zugang, lokale Anlieferung usw.). Routen, auf denen eine Durchfahrtseinschränkung entfernt wurde, haben dennoch höhere Routenkosten, selbst wenn die Route kürzer/schneller als die Route ohne Einschränkung ist. |
vehicleAttributes |
Gibt die Fahrzeugeinzelheiten an, die basierend auf dem Typ, der Höhe, Breite, Länge oder des Gewichts bei der Routenbestimmung eingeschränkt werden. Nutzfahrzeuge sind in unterschiedliche Typen unterteilt, die von kurzen Anhängern bis zu langen Transportern reichen. Die Zuordnung der Nutzfahrzeugeinschränkungen wird von Fahrzeug zu Fahrzeug organisiert. Das bedeutet, dass ein gesamtes Segment für einen bestimmten Fahrzeugtyp bevorzugt und das gleiche Segment für einen anderen Fahrzeugtyp eingeschränkt sein kann. Verwenden Sie die folgenden Informationen zu Fahrzeugtypen:
|
Beispiele
Ohne FahrzeugbeschränkungenAnforderung:
HTTP GET /rest/Spatial/erm/databases/US_CVR.json? q=routeCostMatrix&startPoints=-74.7221203,42.9737073,epsg:4326& endPoints=-74.6671887,42.8097083,epsg:4326
Antwort:{ "matrix": [{ "distance": 40025, "distanceUnit": "m", "endPoint": { "type": "Point", "coordinates": [-74.6671887, 42.8097083] }, "startPoint": { "type": "Point", "coordinates": [-74.7221203, 42.9737073] }, "time": 36.57, "timeUnit": "min" }] }
Mit Fahrzeugbeschränkungen
Anforderung:
HTTP GET /rest/Spatial/erm/databases/US_CVR.json? q=routeCostMatrix&startPoints=-74.7221203,42.9737073,epsg:4326& endPoints=-74.6671887,42.8097083,epsg:4326
Nutzungsfahrzeugeinschränkung in HTTP-POST-Nutzlast. { "cvr":{ "looseningBarrierRestrictions":"n","vehicleAttributes":{ "vehicleType":"ALL","heightUnit":"meter","height":"4","weightUnit":"Kilogram","weight":"40000" } } }
Antwort:{ "matrix": [{ "distance": 44933, "distanceUnit": "m", "endPoint": { "type": "Point", "coordinates": [-74.6671887, 42.8097083] }, "startPoint": { "type": "Point", "coordinates": [-74.7221203, 42.9737073] }, "time": 37.48, "timeUnit": "min" }] }
Der Entfernungs- und der Zeitwert haben sich bei CVR geändert. 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" } }