Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
- Un compte Azure
- Compte Azure Maps
- Une Clé d’abonnement ou autre forme d’Authentification avec Azure Maps
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