Partager via


Migrer l’API Bing Cartes Geocode Dataflow

Cet article décrit comment migrer l’API Bing Cartes Geocode Dataflow vers les API Azure Maps Geocoding Batch et Reverse Geocoding Batch. L’API Azure Maps Geocoding Batch permet d’obtenir par lots des coordonnées de latitude et de longitude d’une adresse postale ou d’un nom de lieu avec un seul appel d’API. L’API Azure Maps Geocoding Batch est une requête HTTP POST qui envoie des lots de requêtes à l’API Azure Maps Geocoding dans une seule demande. L’API Azure Maps Reverse Geocoding Batch permet de traduire les coordonnées de latitude et longitude en adresse postale compréhensible par l’homme. L’API Azure Maps Reverse Geocoding Batch est une requête HTTP POST qui envoie des lots de requêtes à l’API Azure Maps Get Reverse Geocoding dans une seule demande.

Prérequis

Différences notables

  • L’API Bing Cartes Geocode Dataflow prend en charge le géocodage par lots direct et inverse au sein de la même API. Azure Maps a une API distincte pour le géocodage direct et inverse.
  • L’API Bing Cartes Geocode Dataflow nécessite le chargement de vos données de localisation dans un fichier de données XML ou texte (csv, délimité par une barre verticale ou une tabulation). Les API Azure Maps Geocoding Batch et Reverse Geocoding Batch n’utilisent pas l’approche du chargement de fichier de données, mais une requête HTTP POST avec les données de localisation au format GeoJSON dans le corps de la demande.
  • L’API Bing Cartes Geocode Dataflow prend en charge jusqu’à 200 000 entités par chargement. Les API Azure Maps Geocoding Batch et Reverse Geocoding Batch prennent en charge jusqu’à 100 requêtes par lots dans une demande synchrone, et jusqu’à 200 000 dans une demande asynchrone.
  • L’API Bing Cartes Geocode Dataflow nécessite une série d’appels d’API après le chargement initial des données pour obtenir l’état et télécharger les résultats. La demande synchrone des API Azure Maps Geocoding Batch et Reverse Geocoding Batch ne nécessite pas d’appels d’API supplémentaires. La demande asynchrone nécessite des appels supplémentaires pour obtenir l’état du traitement par lots et télécharger les résultats.
  • Les coordonnées de l’API Bing Cartes Geocode Dataflow sont au format latitude/longitude. Les coordonnées des API Azure Maps Geocoding Batch et Reverse Geocoding Batch sont au format longitude/latitude (car elles sont au format GeoJSON).
  • Contrairement à Bing Maps for Enterprise, Azure Maps est un service mondial qui prend en charge la spécification d’une étendue géographique, ce qui vous permet de limiter la résidence des données aux zones géographiques (geos) européennes (EU) ou Amérique du Nord (US). Toutes les requêtes (y compris les données d’entrée) sont traitées exclusivement dans la zone géographique spécifiée. Pour plus d’informations, consultez Étendue géographique du service Azure Maps.

Sécurité et authentification

Bing Maps for Enterprise ne prend en charge que l’authentification par clé API. Azure Maps prend en charge plusieurs méthodes d’authentification pour vos appels d’API, comme une clé d’abonnement, Microsoft Entra ID ou le Jeton de signature d’accès partagé (SAS). Pour plus d’informations sur la sécurité et l’authentification dans Azure Maps, consultez Authentification avec Azure Maps et la section Sécurité de la documentation Azure Maps sur le traitement Geocoding.

Paramètres de la demande

Le tableau suivant liste les paramètres de demande de l’API Geocode Dataflow de Bing Cartes et l’équivalent Azure Maps :

Paramètre Bing Cartes Paramètre Azure Maps Description
dataLocation Inutile
entrée Inutile L’API Bing Cartes Geocode Dataflow prend en charge le format XML et texte (csv, délimité par une barre verticale ou une tabulation) pour le fichier de données d’entrée du géocodage par lots. Azure Maps prend en charge le format JSON pour les données d’entrée du géocodage par lots dans la requête HTTP POST.
sortie Inutile L’API Bing Cartes Geocode Dataflow prend en charge JSON et XML pour les données de sortie du géocodage par lots. Azure Maps prend en charge le format JSON pour les données de sortie du géocodage par lots.

Pour plus d’informations sur les paramètres d’URI et le corps de la demande Azure Maps, consultez la documentation Azure Maps sur Geocoding Batch et Reverse Geocoding Batch.

Comparaison entre l’entrée et la sortie Bing Cartes Data Schema 2.0 et les API Azure Maps Geocode Batch et Reverse Geocode Batch :

Champ Bing Maps Opération Bing Cartes Champ Azure Maps Type de données Azure Maps Description
Address.AddressLine Demande de géocodage
Réponse de géocodage
addressLine string
Address.AdminDistrict Demande de géocodage
Réponse de géocodage
adminDistrict string
Address.CountryRegion Demande de géocodage
Réponse de géocodage
countryRegion string
Address.District Demande de géocodage adminDistrict2 string
Address.FormattedAddress Réponse de géocodage
Address.Landmark Réponse de géocodage Non pris en charge Non pris en charge
Address.Locality Demande de géocodage
Réponse de géocodage
localité string
Address.Neighborhood Réponse de géocodage neighborhood string
Address.PostalCode Demande de géocodage
Réponse de géocodage
postalCode string
Address.PostalTown Demande de géocodage adminDistrict3
BoundingBox.SouthLatitude, BoundingBox.EastLongitude, BoundingBox.NorthLatitude, BoundingBox.EastLongitude Réponse de géocodage bbox number[] La projection Azure Maps utilisée est EPSG:3857. Pour plus d’informations, consultez RFC 7946.
Confiance Réponse de géocodage confidence ConfidenceEnum Pour plus d’informations, consultez la documentation Azure Maps sur les API Geocoding Batch et Reverse Geocoding Batch
ConfidenceFilter.MinimumConfidence Demande de géocodage
Demande de géocodage inverse
Non pris en charge Non pris en charge
Culture Demande de géocodage
Demande de géocodage inverse
En-tête de requête : Accept-Language string Pour plus d’informations, consultez Langues prises en charge dans Azure Maps.
EntityType Réponse de géocodage type string Pour plus d’informations, consultez la documentation Azure Maps sur les API Geocoding Batch et Reverse Geocoding Batch
FaultReason Réponse de géocodage Non pris en charge Non pris en charge
GeocodeEntity Conteneur XML Inutile Inutile
GeocodeFeed Conteneur XML Inutile Inutile
GeocodePoint Réponse de géocodage geocodePoints GeocodePoints[] Pour plus d’informations, consultez la documentation Azure Maps sur les API Geocoding Batch et Reverse Geocoding Batch
GeocodeRequest Conteneur XML Inutile Inutile Azure Maps a des API distinctes pour le géocodage direct et le géocodage inverse.
Id Demande de géocodage Inutile Inutile
IncludeEntityTypes Demande de géocodage
Demande de géocodage inverse
Non pris en charge Non pris en charge
IncludeNeighborhood Demande de géocodage
Demande de géocodage inverse
Inutile Inutile Dans Azure Maps, les informations de voisinage sont renvoyées par défaut dans la réponse, si elles sont disponibles. 
IncludeQueryParse Demande de géocodage Non pris en charge Non pris en charge
Location.Latitude
Location.Longitude
Demande de géocodage inverse coordinates number[] Obligatoire en entrée si vous utilisez l’API Azure Maps Reverse Geocoding Batch pour effectuer un géocodage inverse.
MatchCodes Réponse de géocodage matchCodes MatchCodesEnum Pour plus d’informations, consultez la documentation Azure Maps sur les API Geocoding Batch et Reverse Geocoding Batch
MaxResults Demande de géocodage
Demande de géocodage inverse
top entier
int32
Dans Azure Maps, nombre maximal de réponses renvoyées. La valeur par défaut est 5, le minimum est 1 et le maximum est 20. 
Nom Réponse de géocodage Non pris en charge Non pris en charge
Point.Latitude, Point.Longitude Réponse de géocodage coordinates number[] Bing Cartes renvoie les coordonnées au format latitude/longitude. Azure Maps renvoie les coordonnées au format longitude/latitude (car elles sont au format GeoJSON).
Requête Demande de géocodage query string
QueryParseValue Réponse de géocodage Non pris en charge Non pris en charge
ReverseGeocodeRequest Conteneur XML Inutile Inutile Azure Maps a des API distinctes pour le géocodage direct et le géocodage inverse.
StatusCode Réponse de géocodage Non pris en charge Non pris en charge
StrictMatch Demande de géocodage Non pris en charge Non pris en charge
TraceId Réponse de géocodage Non pris en charge Non pris en charge
Version Inutile Inutile

Pour plus d’informations sur les champs de réponse de l’API Azure Maps Geocoding Batch, consultez les Définitions de la réponse.

Exemples de requête

Demande de l’API Bing Cartes Geocode Dataflow :

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

Pour des exemples montrant les données d’entrée et de sortie de la version 2.0 de Geocode Dataflow, consultez Exemple de données d’entrée et de sortie de Geocode Dataflow version 2.0.

Demande de l’API Azure Maps Geocoding Batch :

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

Pour envoyer les requêtes de géocodage, utilisez une requête HTTP POST où le corps de la demande contient le tableau batchItems au format JSON et l’en-tête Content-Type défini sur application/json.

Le code JSON suivant montre un exemple de demande contenant deux requêtes de géocodage, avec une localisation au format non structuré et une localisation au format structuré :

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

Exemple de demande de l’API Azure Maps Reverse Geocoding Batch :

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

Pour envoyer les requêtes de géocodage inverse, utilisez une requête HTTP POST où le corps de la demande contient un tableau batchItems au format JSON et l’en-tête Content-Type est défini sur application/json.

Le code JSON suivant montre un exemple de demande contenant deux requêtes de géocodage inverse :

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

Exemples de réponse

Une URL pour télécharger les résultats du travail de géocodage est fournie si le travail de traitement par lots de l’API Bing Cartes Geocode Dataflow fonctionne correctement, comme indiqué par l’état de travail terminé. Pour un exemple de sortie réussie de l’API Bing Cartes Geocode Dataflow, consultez Exemple de données d’entrée et de sortie de Geocode Dataflow version 2.0 dans la documentation Bing Cartes.

L’exemple suivant montre ce qui est renvoyé dans le corps de la réponse HTTP pendant l’exécution d’une demande d’API Azure Maps Geocoding Batch :

{ 
  "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’exemple suivant montre ce qui est renvoyé dans le corps de la réponse HTTP pendant l’exécution d’une demande d’API Azure Maps Reverse Geocoding Batch :

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

Utilisation des transactions

Comme pour l’API Bing Cartes Geocode Dataflow, les API Azure Maps Geocoding Batch et Reverse Geocoding Batch journalisent une seule transaction facturable par élément géocodé. Par exemple, 100 localisations géocodées dans la demande par lots entraînent 100 transactions facturables. Pour plus d’informations sur les transactions Azure Maps, consultez Comprendre les transactions Azure Maps.

Informations supplémentaires

Autres API Azure Maps de géocodage

  • Get Geocoding : permet d’obtenir les coordonnées de latitude et de longitude d’une adresse postale ou d’un nom de lieu.
  • Get Reverse Geocoding : permet d’obtenir une adresse postale et des informations de localisation à partir des coordonnées de latitude et de longitude.

Support