Condividi tramite


Eseguire la migrazione dell'API Geocode Dataflow di Bing Maps

Questo articolo illustra come eseguire la migrazione dell'API Geocode Dataflow di Bing Maps alle API Geocoding Batch e Reverse Geocoding Batch di Mappe di Azure. L'API Geocoding Batch di Mappe di Azure viene usata per ottenere le coordinate di latitudine e longitudine di un indirizzo o di un nome di una posizione in modalità batch con una singola chiamata API. L'API Geocoding Batch di Mappe di Azure è una richiesta HTTP POST che invia batch di query all'API Geocoding di Mappe di Azure in una singola richiesta. L'API Reverse Geocoding Batch di Mappe di Azure viene usata per convertire le coordinate di latitudine e longitudine in un indirizzo stradale comprensibile. L'API Reverse Geocoding Batch di Mappe di Azure è una richiesta HTTP POST che invia batch di query all'API Get Reverse Geocoding di Mappe di Azure in una singola richiesta.

Prerequisiti

Differenze rilevanti

  • L'API Geocode Dataflow di Bing Maps supporta la geocodifica batch diretta e inversa all'interno della stessa API. Mappe di Azure include API separate per la geocodifica diretta e la geocodifica inversa.
  • L'API Geocode Dataflow di Bing Maps richiede il caricamento dei dati della posizione come file di dati XML o di testo (csv, pipe o delimitato da tabulazioni). Le API Geocoding Batch e Reverse Geocoding Batch di Mappe di Azure non usano un approccio di caricamento di file di dati, ma piuttosto una richiesta HTTP POST con dati sulla posizione in formato GeoJSON nel corpo della richiesta.
  • L'API Geocode Dataflow di Bing Maps supporta fino a 200.000 entità per caricamento. Le API Geocoding Batch e Reverse Geocoding Batch di Mappe di Azure supportano fino a 100 query in batch in una richiesta sincrona e fino a 200.000 in una richiesta asincrona.
  • L'API Geocode Dataflow di Bing Maps richiede una serie di chiamate API che seguono il caricamento iniziale dei dati per ottenere lo stato e scaricare i risultati. La richiesta sincrona delle API Geocoding Batch e Reverse Geocoding Batch di Mappe di Azure non richiede chiamate API aggiuntive. La richiesta asincrona richiede chiamate aggiuntive per ottenere lo stato del processo batch e scaricare i risultati.
  • Le coordinate di Geocode Dataflow di Bing Maps sono in formato latitudine/longitudine. Le coordinate delle API Geocoding Batch e Reverse Geocoding Batch di Mappe di Azure sono in formato longitudine/latitudine, per via del formato GeoJSON.
  • A differenza di Bing Maps for Enterprise, Mappe di Azure è un servizio globale che supporta la specifica di un ambito geografico, il che consente di limitare la residenza dei dati alle aree geografiche di Europa (UE) o Stati Uniti (US). Tutte le richieste (inclusi i dati di input) vengono elaborate esclusivamente nell'area geografica specificata. Per altre informazioni, vedere Ambito geografico del servizio Mappe di Azure.

Sicurezza e autenticazione

Bing Maps for Enterprise supporta solo l'autenticazione con chiave API. Mappe di Azure supporta diversi modi per autenticare le chiamate API, ad esempio una chiave di sottoscrizione, Microsoft Entra ID o il token di firma di accesso condiviso (SAS). Per altre informazioni sulla sicurezza e l'autenticazione in Mappe di Azure, vedere Autenticazione con Mappe di Azure e la sezione Sicurezza nella documentazione di Mappe di Azure Geocoding Batch.

Parametri della richiesta

Nella tabella seguente sono elencati i parametri di richiesta di Geocode Dataflow di Bing Maps e l'equivalente di Mappe di Azure:

Parametro di Bing Maps Parametro di Mappe di Azure Descrizione
dataLocation Non necessario
input Non necessario L'API Geocode Dataflow di Bing Maps supporta il formato XML e testuale (csv, tabulazione e delimitato da pipe) per il file di dati di input di geocodifica batch. Mappe di Azure supporta il formato JSON per i dati di input di geocodifica batch nella richiesta HTTP POST.
output Non necessario L'API Geocode Dataflow di Bing Maps supporta JSON e XML per i dati di output del codice di geocodifica batch. Mappe di Azure supporta il formato JSON per i dati di output di geocodifica batch.

Per altre informazioni sui parametri URI e sul corpo della richiesta di Mappe di Azure, vedere la documentazione di Geocoding Batch e Reverse Geocoding Batch di Mappe di Azure.

Confronto tra input e output dello schema dei dati di Bing Maps 2.0 con le API Geocode Batch e Reverse Geocode Batch di Mappe di Azure:

Campo Bing Maps Operazione di Bing Maps Campo Mappe di Azure Mappe di Azure tipo di dati Descrizione
Address.AddressLine Richiesta codifica geografica
Risposta codifica geografica
addressLine string
Address.AdminDistrict Richiesta codifica geografica
Risposta codifica geografica
adminDistrict string
Address.CountryRegion Richiesta codifica geografica
Risposta codifica geografica
countryRegion string
Address.District Richiesta codifica geografica adminDistrict2 string
Address.FormattedAddress Risposta codifica geografica
Address.Landmark Risposta codifica geografica Non supportate Non supportate
Address.Locality Richiesta codifica geografica
Risposta codifica geografica
locality string
Address.Neighborhood Risposta codifica geografica neighborhood string
Address.PostalCode Richiesta codifica geografica
Risposta codifica geografica
postalCode string
Address.PostalTown Richiesta codifica geografica adminDistrict3
BoundingBox.SouthLatitude, BoundingBox.EastLongitude, BoundingBox.NorthLatitude, BoundingBox.EastLongitude Risposta codifica geografica bbox number[] La proiezione di Mappe di Azure usata è EPSG:3857. Per altre informazioni, vedere RFC 7946.
Attendibilità Risposta codifica geografica confidence ConfidenceEnum Per altre informazioni, vedere la documentazione delle API Geocoding Batch e Reverse Geocoding Batch di Mappe di Azure. 
ConfidenceFilter.MinimumConfidence Richiesta codifica geografica
Richiesta codifica geografica inversa
Non supportate Non supportate
Impostazioni cultura Richiesta codifica geografica
Richiesta codifica geografica inversa
Intestazione richiesta: Accept-Language string Per altre informazioni, vedere Lingue supportate da Mappe di Azure.
EntityType Risposta codifica geografica type string Per altre informazioni, vedere la documentazione delle API Geocoding Batch e Reverse Geocoding Batch di Mappe di Azure. 
FaultReason Risposta codifica geografica Non supportate Non supportato
GeocodeEntity Contenitore XML Non necessario Non necessario
GeocodeFeed Contenitore XML Non necessario Non necessario
GeocodePoint Risposta codifica geografica geocodePoints GeocodePoints[] Per altre informazioni, vedere la documentazione delle API Geocoding Batch e Reverse Geocoding Batch di Mappe di Azure. 
GeocodeRequest Contenitore XML Non necessario Non necessario Mappe di Azure include API separate per la geocodifica diretta e la geocodifica inversa.
ID Richiesta codifica geografica Non necessario Non necessario
IncludeEntityTypes Richiesta codifica geografica
Richiesta codifica geografica inversa
Non supportate Non supportate
IncludeNeighborhood Richiesta codifica geografica
Richiesta codifica geografica inversa
Non necessario Non necessario In Mappe di Azure, le informazioni sul quartiere vengono restituite nella risposta per impostazione predefinita, se disponibili. 
IncludeQueryParse Richiesta codifica geografica Non supportate Non supportate
Location.Latitude
Location.Longitude
Richiesta codifica geografica inversa coordinate number[] Obbligatorio come input se si usa l'API Reverse Geocoding Batch di Mappe di Azure per eseguire la geocodifica inversa.
MatchCodes Risposta codifica geografica matchCodes MatchCodesEnum Per altre informazioni, vedere la documentazione delle API Geocoding Batch e Reverse Geocoding Batch di Mappe di Azure. 
MaxResults Richiesta codifica geografica
Richiesta codifica geografica inversa
top integer
int32
In Mappe di Azure, il numero massimo di risposte restituite. Il valore predefinito è 5, il minimo è 1 e il massimo è 20. 
Nome Risposta codifica geografica Non supportate Non supportate
Point.Latitude, Point.Longitude Risposta codifica geografica coordinate number[] Bing Maps restituisce le coordinate in formato latitudine/longitudine. Mappe di Azure restituisce le coordinate in formato longitudine/latitudine, per via del formato GeoJSON.
Query Richiesta codifica geografica query string
QueryParseValue Risposta codifica geografica Non supportate Non supportato
ReverseGeocodeRequest Contenitore XML Non necessario Non necessario Mappe di Azure include API separate per la geocodifica diretta e la geocodifica inversa.
StatusCode Risposta codifica geografica Non supportate Non supportate
StrictMatch Richiesta codifica geografica Non supportate Non supportate
TraceId Risposta codifica geografica Non supportate Non supportate
Versione Non necessario Non necessario

Per altre informazioni sui campi di risposta di Geocoding Batch di Mappe di Azure, vedere le Definizioni di risposta.

Esempi di richiesta

Richiesta API Geocode Dataflow di Bing Maps:

http://spatial.virtualearth.net/REST/v1/Dataflows/Geocode?input=xml&key={BingMapsKey}

Per esempi che mostrano dati di input e output di esempio per la versione 2.0 di Geocode Dataflow, vedere Input di esempio di Geocode Dataflow e versione dati di output 2.0.

Richiesta API Geocoding Batch di Mappe di Azure:

POST https://atlas.microsoft.com/geocode:batch?api-version=2023-06-01&subscription-key={Your-Azure-Maps-Subscription-key}

Per inviare le query di geocodifica, usare una richiesta HTTP POST in cui il corpo contiene la matrice batchItems in formato JSON e l'intestazione Content-Type è impostata su application/json.

Il codice JSON seguente mostra una richiesta di esempio contenente due query di geocodifica, con una posizione in formato non strutturato e una posizione in formato strutturato:

{ 
  "batchItems": [ 
    { 
      "addressLine": "One, Microsoft Way, Redmond, WA 98052", 
      "top": 2 
    }, 
    { 
      "addressLine": "Pike Pl", 
      "adminDistrict": "WA", 
      "locality": "Seattle", 
      "top": 3 
    } 
  ] 
} 

Richiesta dell'API Reverse Geocoding Batch di Mappe di Azure di esempio:

POST https://atlas.microsoft.com/reverseGeocode:batch?api-version=2023-06-01&subscription-key={Your-Azure-Maps-Subscription-key}

Per inviare le query di geocodifica inversa, usare una richiesta HTTP POST in cui il corpo contiene una matrice batchItems in formato JSON e l'intestazione Content-Type è impostata su application/json.

Il codice JSON seguente mostra una richiesta di esempio contenente due query di geocodifica inversa:

{ 
  "batchItems": [ 
    { 
      "coordinates": [ 
        -122.128275, 
        47.639429 
      ], 
      "resultTypes": [ 
        "Address", 
        "PopulatedPlace" 
      ], 
      "optionalId": "4C3681A6C8AA4AC3441412763A2A25C81444DC8B" 
    }, 
    { 
      "coordinates": [ 
        -122.341979399674, 
        47.6095253501216 
      ], 
      "optionalId": "6M9W39P12SNHGAIZ4JQ7F57NWJLV2BRYEQRD7OH7" 
    } 
  ] 
} 

Esempi di risposta

Un URL per scaricare i risultati del processo di geocodifica viene fornito quando il processo batch Geocode Dataflow di Bing Maps viene elaborato correttamente, come illustrato dallo stato Completato del processo. Per un esempio di output Geocode Dataflow riuscito di Bing Maps, vedere Input di esempio di Geocode Dataflow e versione dati di output 2.0 nella documentazione di Bing Maps.

L'esempio seguente illustra cosa viene restituito nel corpo della risposta HTTP durante l'esecuzione di una richiesta API Geocoding Batch di Mappe di Azure:

{ 
  "summary": { 
    "successfulRequests": 1, 
    "totalRequests": 2 
  }, 
  "batchItems": [ 
    {
      "type": "FeatureCollection", 
      "features": [ 
        { 
          "type": "Feature", 
          "properties": { 
            "type": "Address", 
            "confidence": "High", 
            "matchCodes": [ 
              "Good" 
            ], 
            "address": { 
              "locality": "Redmond", 
              "adminDistricts": [ 
                { 
                  "shortName": "WA" 
                }, 
                { 
                  "shortName": "King" 
                } 
              ], 
              "countryRegion": { 
                "ISO": "US", 
                "name": "United States" 
              }, 
              "postalCode": "98052", 
              "formattedAddress": "1 Microsoft Way, Redmond, WA 98052", 
              "addressLine": "1 Microsoft Way" 
            }, 
            "geocodePoints": [ 
              { 
                "geometry": { 
                  "type": "Point", 
                  "coordinates": [ 
                    -122.128275, 
                    47.639429 
                  ] 
                }, 
                "calculationMethod": "Rooftop", 
                "usageTypes": [ 
                  "Display", 
                  "Route" 
                ] 
              }, 
              { 
                "geometry": { 
                  "type": "Point", 
                  "coordinates": [ 
                    -122.127028, 
                    47.638545 
                  ] 
                }, 
                "calculationMethod": "Rooftop", 
                "usageTypes": [ 
                  "Route" 
                ] 
              } 
            ] 
          }, 
          "geometry": { 
            "type": "Point", 
            "coordinates": [ 
              -122.128275, 
              47.639429 
            ] 
          }, 
          "bbox": [ 
            -122.1359181505759, 
            47.63556628242932, 
            -122.1206318494241, 
            47.643291717570676 
          ] 
        } 
      ]
    },
    {
      "error": {
        "code": "Conflicting Parameters",
        "message": "When 'query' is present, only the following parameters are valid: 'bbox, location, view, top'. 'addressLine' was passed"
      }
    }
  ]
}

L'esempio seguente illustra cosa viene restituito nel corpo della risposta HTTP durante l'esecuzione di una richiesta API Reverse Geocoding Batch di Mappe di Azure:

{ 
    "batchItems": [ 
        { 
            "type": "FeatureCollection", 
            "features": [ 
                { 
                    "type": "Feature", 
                    "geometry": { 
                        "type": "Point", 
                        "coordinates": [ 
                            -122.1294081, 
                            47.6391325 
                        ] 
                    }, 
                    "properties": { 
                        "geocodePoints": [ 
                            { 
                                "geometry": { 
                                    "type": "Point", 
                                    "coordinates": [ 
                                        -122.1294081, 
                                        47.6391325 
                                    ] 
                                }, 
                                "calculationMethod": "Rooftop", 
                                "usageTypes": [ 
                                    "Display" 
                                ] 
                            } 
                        ], 
                        "address": { 
                            "addressLine": "15770 NE 31st St", 
                            "adminDistricts": [ 
                                { 
                                    "shortName": "WA" 
                                }, 
                                { 
                                    "shortName": "King Co." 
                                } 
                            ], 
                            "countryRegion": { 
                                "name": "United States", 
                                "iso": "US" 
                            }, 
                            "locality": "Redmond", 
                            "neighborhood": "Overlake", 
                            "postalCode": "98052", 
                            "formattedAddress": "15770 NE 31st St, Redmond, WA 98052, United States" 
                        }, 
                        "confidence": "High", 
                        "matchCodes": [ 
                            "Good" 
                        ], 
                        "type": "Address" 
                    }, 
                    "bbox": [ 
                        -122.13705120720665, 
                        47.635269782429326, 
                        -122.12176499279336, 
                        47.64299521757068 
                    ] 
                } 
            ] 
        }, 
        { 
            "type": "FeatureCollection", 
            "features": [ 
                { 
                    "type": "Feature", 
                    "geometry": { 
                        "type": "Point", 
                        "coordinates": [ 
                            -122.341979399674, 
                            47.6095253501216 
                        ] 
                    }, 
                    "properties": { 
                        "geocodePoints": [ 
                            { 
                                "geometry": { 
                                    "type": "Point", 
                                    "coordinates": [ 
                                        -122.341979399674, 
                                        47.6095253501216 
                                    ] 
                                }, 
                                "calculationMethod": "Interpolation", 
                                "usageTypes": [ 
                                    "Display", 
                                    "Route" 
                                ] 
                            } 
                        ], 
                        "address": { 
                            "addressLine": "1736 Pike Pl", 
                            "adminDistricts": [ 
                                { 
                                    "shortName": "WA"
                                }, 
                                { 
                                    "shortName": "King Co." 
                                } 
                            ], 
                            "countryRegion": { 
                                "name": "United States", 
                                "iso": "US" 
                            }, 
                            "intersection": { 
                                "baseStreet": "Pike Pl", 
                                "displayName": "Pike Pl and Stewart St", 
                                "intersectionType": "Near", 
                                "secondaryStreet1": "Stewart St", 
                                "secondaryStreet2": null 
                            }, 
                            "locality": "Seattle", 
                            "neighborhood": "Downtown Seattle", 
                            "postalCode": "98101", 
                            "formattedAddress": "1736 Pike Pl, Seattle, WA 98101, United States" 
                        }, 
                        "confidence": "Medium", 
                        "matchCodes": [ 
                            "Good" 
                        ], 
                        "type": "Address" 
                    }, 
                    "bbox": [ 
                        -122.34961817972945, 
                        47.605662632550924, 
                        -122.33434061961856, 
                        47.61338806769228 
                    ] 
                } 
            ] 
        } 
    ], 
    "summary": { 
        "successfulRequests": 2, 
        "totalRequests": 2 
    } 
} 

Utilizzo delle transazioni

Analogamente all'API Geocode Dataflow di Bing Maps, le API Geocoding Batch e Reverse Geocoding Batch di Mappe di Azure registrano una transazione fatturabile per ogni elemento geocodificato. Ad esempio, 100 posizioni geocodificate nella richiesta batch generano 100 transazioni fatturabili. Per altre informazioni sulle transazioni di Mappe di Azure, vedere Informazioni sulle transazioni di Mappe di Azure.

Informazioni aggiuntive

Altre API per la geocodifica in Mappe di Azure

  • Get Geocoding: usare per ottenere le coordinate di latitudine e longitudine di un indirizzo o di un nome di un luogo.
  • Get Reverse Geocoding: usare per ottenere un indirizzo e informazioni sulla posizione dalle coordinate di latitudine e longitudine.

Supporto tecnico