Route - Post Snap To Roads

L'API Snap to Roads accetta i dati dei punti GPS, rappresentati come coordinate di longitudine e latitudine e genera punti allineati alle strade esistenti su una mappa. Questo processo, noto come "aggancio alle strade", produce una serie di oggetti che tracciano un percorso che segue attentamente la rete stradale. I dati risultanti includono i nomi delle strade e i rispettivi limiti di velocità, pertinenti ai segmenti attraversati.

Inoltre, l'API Snap to Roads offre una funzionalità di interpolazione, che affina i punti GPS per creare un percorso più fluido che rispetti la geometria della strada. Questa funzionalità è particolarmente utile per il rilevamento degli asset e il miglioramento della visualizzazione dei dati nelle applicazioni di mapping.

Importante

I punti GPS devono trovarsi a una distanza massima di 6 chilometri l'uno dall'altro.

Per informazioni sulla disponibilità di routing in paesi/regioni, vedi Mappe di Azure routing coverage.

POST {endpoint}/route/snapToRoads?api-version=2025-01-01

Parametri dell'URI

Nome In Necessario Tipo Descrizione
endpoint
path True

string (uri)

Il nome host del servizio Mappe di Azure. Usa https://atlas.microsoft.com per il cloud pubblico Azure. Per puntare a una specifica Mappe di Azure geografica o a una nuvola sovrana, vedi Mappe di Azure ambito geografico.

api-version
query True

string

minLength: 1

Versione dell'API da usare per questa operazione.

Intestazione della richiesta

Media Types: "application/geo+json"

Nome Necessario Tipo Descrizione
x-ms-client-id

string

Indica l'account destinato all'uso con il modello di sicurezza Microsoft Entra ID. Questo ID univoco per l'account Mappe di Azure può essere ottenuto dall'Account API Mappe di Azure piano di gestione. Per maggiori informazioni sull'uso della sicurezza Microsoft Entra ID in Mappe di Azure, vedi Gestire l'autenticazione in Mappe di Azure.

Accept-Language

string

Lingua in cui devono essere restituiti i risultati del routing.

Per maggiori informazioni, consulta Supporto alla localizzazione in Mappe di Azure.

Corpo della richiesta

Media Types: "application/geo+json"

Nome Necessario Tipo Descrizione
features True

InputSnapToRoadsFeaturesItem[]

Set di punti da agganciare alla rete stradale. Si possono avere un minimo di 2 punti e un massimo di 5000 punti e i due punti consecutivi devono trovarsi entro 6 chilometri l'uno dall'altro e una distanza stradale totale fino a 100 chilometri. Per informazioni dettagliate sul formato GeoJSON, fare riferimento alla RFC 7946 .

Note: l'API non restituirà un oggetto punto nella risposta per il punto GPS che non può essere agganciato a una rete stradale.

type True

FeatureTypeEnum

Specifica il tipo di GeoJSON. L'unico tipo di oggetto supportato è FeatureCollection. Per altre informazioni, vedere RFC 7946.

includeSpeedLimit

boolean

Specifica se includere le informazioni sul limite di velocità per i punti ritagliati nella risposta. L'unità è in chilometri all'ora.

interpolate

boolean

Specifica se restituire punti aggiuntivi tra i punti intrappolati per completare il percorso completo che segue senza problemi la geometria della strada.

I punti interpolati avranno isInterpolate:true nella risposta che può essere usata per identificare i punti ritagliati dai punti interpolati.

travelMode

SnapToRoadsTravelModeEnum

Specifica il profilo di routing per bloccare i punti. Se non specificato, la modalità predefinita è "guida", che ottimizza i punti troncato per i percorsi di guida.

Risposte

Nome Tipo Descrizione
200 OK

SnapToRoadsResponse

La richiesta ha avuto esito positivo.

Media Types: "application/geo+json", "application/json"

Other Status Codes

MapsErrorResponse

Risposta di errore imprevista.

Media Types: "application/geo+json", "application/json"

Sicurezza

AadToken

Questi sono i flussi Microsoft Entra OAuth 2.0. Quando abbinata al controllo Azure basato su ruolo può essere utilizzata per controllare l'accesso alle API REST di Mappe di Azure. I controlli di accesso basati su ruoli di Azure sono utilizzati per designare l'accesso a uno o più account o sottorisorse risorse di Mappe di Azure. A qualsiasi utente, gruppo o entità servizio può essere concesso l'accesso tramite un ruolo predefinito o un ruolo personalizzato composto da una o più autorizzazioni per le API REST di Mappe di Azure.

Per implementare scenari, è consigliabile visualizzare concetti di autenticazione. In sintesi, questa definizione di sicurezza offre una soluzione per la modellazione di applicazioni tramite oggetti in grado di controllare l'accesso su API e ambiti specifici.

Note

  • Questa definizione di sicurezza richiede l'uso dell'intestazione x-ms-client-id per indicare a quale risorsa di Mappe di Azure l'applicazione richiede l'accesso. Questa operazione può essere acquisita dall'API di gestione di mappe .
  • Il Authorization URL è specifico dell'istanza del cloud pubblico di Azure. I cloud sovrani hanno URL di autorizzazione unici e configurazioni Microsoft Entra ID.
  • Il controllo degli accessi in base al ruolo di Azure viene configurato dal piano di gestione di Azure tramite il portale di Azure, PowerShell, l'interfaccia della riga di comando, gli SDK di Azure o le API REST.
  • L'utilizzo della Sdk Web di Mappe di Azure consente la configurazione basata sulla configurazione di un'applicazione per più casi d'uso.
  • Per altre informazioni su Microsoft Identity Platform, vedere panoramica di Microsoft Identity Platform.

Tipo: oauth2
Flow: implicit
URL di autorizzazione: https://login.microsoftonline.com/common/oauth2/authorize

Ambiti

Nome Descrizione
https://atlas.microsoft.com/.default

subscription-key

Si tratta di una chiave condivisa di cui viene effettuato il provisioning quando si Creare un account di Mappe di Azure nel portale di Azure o usando PowerShell, l'interfaccia della riga di comando, gli SDK di Azure o l'API REST.

Con questa chiave, qualsiasi applicazione può accedere a tutte le API REST. In altre parole, questa chiave può essere usata come chiave master nell'account in cui vengono rilasciati.

Per le applicazioni esposte pubblicamente, è consigliabile usare l'approccio applicazioni client riservate per accedere alle API REST di Mappe di Azure in modo che la chiave possa essere archiviata in modo sicuro.

Tipo: apiKey
In: header

SAS Token

Si tratta di un token di firma di accesso condiviso creato dall'operazione List SAS nell'risorsa di Mappe di Azure tramite il piano di gestione di Azure tramite il portale di Azure, PowerShell, l'interfaccia della riga di comando, gli SDK di Azure o le API REST.

Con questo token, qualsiasi applicazione è autorizzata ad accedere ai controlli di accesso in base al ruolo di Azure e al controllo granulare per la scadenza, la frequenza e le aree d'uso per il token specifico. In altre parole, il token di firma di accesso condiviso può essere usato per consentire alle applicazioni di controllare l'accesso in modo più protetto rispetto alla chiave condivisa.

Per le applicazioni esposte pubblicamente, è consigliabile configurare un elenco specifico di origini consentite nella risorsa account mappa per limitare l'abuso di rendering e rinnovare regolarmente il token di firma di accesso condiviso.

Tipo: apiKey
In: header

Esempio

Successfully retrieve snap to roads points with additional parameters in the body

Esempio di richiesta

POST https://atlas.microsoft.com/route/snapToRoads?api-version=2025-01-01

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          -122.336729,
          47.590868
        ]
      },
      "properties": {}
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          -122.336042,
          47.601604
        ]
      },
      "properties": {}
    }
  ],
  "includeSpeedLimit": true,
  "travelMode": "driving"
}

Risposta di esempio

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          -122.336769,
          47.590885
        ]
      },
      "properties": {
        "name": "State Rte-99 N",
        "inputIndex": 0,
        "isInterpolated": false,
        "speedLimitInKilometersPerHour": 80
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          -122.336008,
          47.601609
        ]
      },
      "properties": {
        "name": "State Rte-99 N",
        "inputIndex": 1,
        "isInterpolated": false,
        "speedLimitInKilometersPerHour": 80
      }
    }
  ]
}

Definizioni

Nome Descrizione
FeaturesItemTypeEnum

Specifica il tipo di GeoJSON. L'unico tipo di oggetto supportato è Feature. Per altre informazioni, vedere RFC 7946.

FeatureTypeEnum

Specifica il tipo di GeoJSON. L'unico tipo di oggetto supportato è FeatureCollection. Per altre informazioni, vedere RFC 7946.

GeoJsonObjectType

Specifica il tipo di GeoJSON. Deve essere uno dei nove tipi di oggetto GeoJSON validi: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature e FeatureCollection.

GeoJsonPoint

Tipo geometry GeoJSON Point valido. Per informazioni dettagliate, vedere RFC 7946.

InputSnapToRoadsFeaturesItem

Specifica lo snap di input per i punti delle strade. GeoJSON oggetto funzionalità e proprietà aggiuntive. Per informazioni dettagliate, vedere RFC 7946.

MapsErrorDetail

Dettagli dell'errore.

MapsErrorResponse

Risposta comune all'errore per le API di Mappe di Azure per restituire dettagli di errore per operazioni fallite.

MapsInnerError

Oggetto contenente informazioni più specifiche dell'oggetto corrente sull'errore.

SnapToRoadFeaturesItem

Oggetto funzionalità GeoJSON che contiene l'oggetto Geometry e proprietà aggiuntive della route.

SnapToRoadsFeatureProperties

Aggancia alle proprietà Strade.

SnapToRoadsRequest

Questo oggetto è il corpo della richiesta.

SnapToRoadsResponse

Questo oggetto viene restituito da una chiamata riuscita.

SnapToRoadsTravelModeEnum

Specifica il profilo di routing per bloccare i punti. Se non specificato, la modalità predefinita è "guida", che ottimizza i punti troncato per i percorsi di guida.

FeaturesItemTypeEnum

Specifica il tipo di GeoJSON. L'unico tipo di oggetto supportato è Feature. Per altre informazioni, vedere RFC 7946.

Valore Descrizione
Feature

Specifica il tipo di oggetto Feature GeoJSON.

FeatureTypeEnum

Specifica il tipo di GeoJSON. L'unico tipo di oggetto supportato è FeatureCollection. Per altre informazioni, vedere RFC 7946.

Valore Descrizione
FeatureCollection

Specifica il tipo di oggetto GeoJSONFeatureCollection.

GeoJsonObjectType

Specifica il tipo di GeoJSON. Deve essere uno dei nove tipi di oggetto GeoJSON validi: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature e FeatureCollection.

Valore Descrizione
Point

GeoJSON Point geometria.

MultiPoint

GeoJSON MultiPoint geometria.

LineString

GeoJSON LineString geometria.

MultiLineString

GeoJSON MultiLineString geometria.

Polygon

GeoJSON Polygon geometria.

MultiPolygon

GeoJSON MultiPolygon geometria.

GeometryCollection

GeoJSON GeometryCollection geometria.

Feature

Oggetto GeoJSON Feature.

FeatureCollection

Oggetto GeoJSON FeatureCollection.

GeoJsonPoint

Tipo geometry GeoJSON Point valido. Per informazioni dettagliate, vedere RFC 7946.

Nome Tipo Descrizione
coordinates

number[] (double)

Un Position è una matrice di numeri con due o più elementi. I primi due elementi sono longitudine e latitudine, esattamente in tale ordine. altitudine/elevazione è un terzo elemento facoltativo. Per informazioni dettagliate, vedere RFC 7946.

type string:

Point

Specifica il tipo di GeoJSON. Deve essere uno dei nove tipi di oggetto GeoJSON validi: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature e FeatureCollection.

InputSnapToRoadsFeaturesItem

Specifica lo snap di input per i punti delle strade. GeoJSON oggetto funzionalità e proprietà aggiuntive. Per informazioni dettagliate, vedere RFC 7946.

Nome Tipo Descrizione
geometry

GeoJsonPoint

Tipo geometry GeoJSON Point valido. Per informazioni dettagliate, vedere RFC 7946.

properties

L'oggetto proprietà è obbligatorio in un GeoJSON valido, ma può essere vuoto perché i metadati non vengono usati per l'allineamento alla strada.

type

FeaturesItemTypeEnum

Specifica il tipo di GeoJSON. L'unico tipo di oggetto supportato è Feature. Per altre informazioni, vedere RFC 7946.

MapsErrorDetail

Dettagli dell'errore.

Nome Tipo Descrizione
code

string

Uno di un set definito dal server di codici di errore.

details

MapsErrorDetail[]

Matrice di dettagli sugli errori specifici che hanno causato l'errore segnalato.

innererror

MapsInnerError

Oggetto contenente informazioni più specifiche dell'oggetto corrente sull'errore.

message

string

Rappresentazione leggibile dell'errore.

target

string

Destinazione dell'errore.

MapsErrorResponse

Risposta comune all'errore per le API di Mappe di Azure per restituire dettagli di errore per operazioni fallite.

Nome Tipo Descrizione
error

MapsErrorDetail

Dettagli dell'errore.

MapsInnerError

Oggetto contenente informazioni più specifiche dell'oggetto corrente sull'errore.

Nome Tipo Descrizione
code

string

Codice di errore.

innererror

MapsInnerError

Oggetto contenente informazioni più specifiche dell'oggetto corrente sull'errore.

SnapToRoadFeaturesItem

Oggetto funzionalità GeoJSON che contiene l'oggetto Geometry e proprietà aggiuntive della route.

Nome Tipo Descrizione
bbox

number[] (double)

Area rettangolare sulla terra definita come oggetto rettangolo delimitatore. I lati dei rettangoli sono definiti dai valori di latitudine e longitudine. Per altre informazioni, vedere RFC 7946, sezione 5.

Esempio: "bbox": [-10.0, -10.0, 10.0, 10.0]

geometry

GeoJsonPoint

Tipo geometry GeoJSON Point valido. Per informazioni dettagliate, vedere RFC 7946.

properties

SnapToRoadsFeatureProperties

Aggancia alle proprietà Strade.

type

FeaturesItemTypeEnum

Specifica il tipo di GeoJSON. L'unico tipo di oggetto supportato è Feature. Per altre informazioni, vedere RFC 7946.

SnapToRoadsFeatureProperties

Aggancia alle proprietà Strade.

Nome Tipo Descrizione
inputIndex

integer (int64)

Identificare l'indice corrispondente nell'elenco originale di punti per ogni punto bloccato. Solo i punti ritagliati restituiranno indici e possono essere usati per distinguerli dai punti interpolati.

isInterpolated

boolean

Identificare se si tratta del punto interpolato.

name

string

Nome della strada a cui è a capo il punto.

speedLimitInKilometersPerHour

number (double)

Limite di velocità in chilometri all'ora.

SnapToRoadsRequest

Questo oggetto è il corpo della richiesta.

Nome Tipo Valore predefinito Descrizione
features

InputSnapToRoadsFeaturesItem[]

Set di punti da agganciare alla rete stradale. Si possono avere un minimo di 2 punti e un massimo di 5000 punti e i due punti consecutivi devono trovarsi entro 6 chilometri l'uno dall'altro e una distanza stradale totale fino a 100 chilometri. Per informazioni dettagliate sul formato GeoJSON, fare riferimento alla RFC 7946 .

Note: l'API non restituirà un oggetto punto nella risposta per il punto GPS che non può essere agganciato a una rete stradale.

includeSpeedLimit

boolean

False

Specifica se includere le informazioni sul limite di velocità per i punti ritagliati nella risposta. L'unità è in chilometri all'ora.

interpolate

boolean

False

Specifica se restituire punti aggiuntivi tra i punti intrappolati per completare il percorso completo che segue senza problemi la geometria della strada.

I punti interpolati avranno isInterpolate:true nella risposta che può essere usata per identificare i punti ritagliati dai punti interpolati.

travelMode

SnapToRoadsTravelModeEnum

driving

Specifica il profilo di routing per bloccare i punti. Se non specificato, la modalità predefinita è "guida", che ottimizza i punti troncato per i percorsi di guida.

type

FeatureTypeEnum

Specifica il tipo di GeoJSON. L'unico tipo di oggetto supportato è FeatureCollection. Per altre informazioni, vedere RFC 7946.

SnapToRoadsResponse

Questo oggetto viene restituito da una chiamata riuscita.

Nome Tipo Descrizione
features

SnapToRoadFeaturesItem[]

GeoJSON oggetto feature che contiene l'oggetto Geometry e le proprietà aggiuntive. Per informazioni dettagliate, vedere RFC 7946, Sezione 3.2.

type

FeatureTypeEnum

Specifica il tipo di GeoJSON. L'unico tipo di oggetto supportato è FeatureCollection. Per altre informazioni, vedere RFC 7946.

SnapToRoadsTravelModeEnum

Specifica il profilo di routing per bloccare i punti. Se non specificato, la modalità predefinita è "guida", che ottimizza i punti troncato per i percorsi di guida.

Valore Descrizione
driving

I punti sono troncato sulla strada adatto per le auto.

truck

I punti vengono agganciati alla strada adatta per il camion.