Share via


Data - Upload Preview

La demande de chargement permet à l’appelant de charger le contenu des données dans son compte Azure Maps.
S’applique à : Niveau tarifaire S1.

L’API de chargement de données permet à l’appelant de charger le contenu des données sur le service Azure Maps. Vous pouvez utiliser cette API dans un scénario tel que le chargement d’une collection de geofences au GeoJSON format, pour une utilisation dans notre Azure Maps geofencing Service.

Notes

Retrait du service de données Azure Maps

Le service Data Azure Maps (v1 et v2) est désormais déconseillé et sera mis hors service le 16/09/2024. Pour éviter les interruptions de service, tous les appels au service Data devront être mis à jour pour utiliser le service Data Registry d’Azure Maps avant le 16/09/2024. Pour plus d'informations, consultez Guide pratique pour créer un registre de données.

Envoyer une demande de chargement

Pour charger votre contenu, vous allez utiliser une POST requête. Le corps de la requête contient les données à charger. L’en-tête Content-Type est défini sur le type de contenu des données.

Par exemple, pour charger une collection de limites géographiques au GeoJSON format, définissez le corps de la requête sur le contenu de la limite géographique. Définissez le dataFormat paramètre de requête sur geojson et définissez l’en-tête Content-Type sur l’un des types de médias suivants :

  • application/json
  • application/vnd.geo+json
  • application/octet-stream

Voici un exemple de corps de requête pour le chargement d’une limite géographique simple représentée sous la forme d’un cercle avec un point central et un rayon. L’exemple ci-dessous se trouve dans GeoJSON:

{
    "type": "FeatureCollection",
    "features": [{
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [-122.126986, 47.639754]
        },
        "properties": {
            "geometryId": "001",
            "radius": 500
        }
    }]
}

L’API de chargement de données effectue une opération de longue durée.

Limites de chargement de données

N’oubliez pas que chaque compte Azure Maps a actuellement une limite de stockage de données. Une fois la limite de stockage atteinte, tous les nouveaux appels d’API de chargement retournent une réponse d’erreur 409 Conflict http. Vous pouvez toujours utiliser l’API Suppression de données pour supprimer du contenu ancien/inutilisé et créer de l’espace pour les nouveaux chargements.

POST https://{geography}.atlas.microsoft.com/mapData/upload?api-version=1.0&dataFormat={dataFormat}
POST https://{geography}.atlas.microsoft.com/mapData/upload?subscription-key={subscription-key}&api-version=1.0&dataFormat={dataFormat}

Paramètres URI

Nom Dans Obligatoire Type Description
geography
path True

string

Ce paramètre spécifie l’emplacement de la ressource Creator Azure Maps. Les valeurs valides sont us et eu.

api-version
query True

string

Numéro de version de l’API Azure Maps. La version actuelle est 1.0

dataFormat
query True

UploadDataFormat

Format de données du contenu en cours de chargement.

subscription-key
query

string

L’une des clés Azure Maps fournies par un compte Azure Map. Reportez-vous à cet article pour plus d’informations sur la gestion de l’authentification.

En-tête de la demande

Nom Obligatoire Type Description
x-ms-client-id

string

Spécifie quel compte est destiné à être utilisé conjointement avec le modèle de sécurité Microsoft Entra ID. Il représente un ID unique pour le compte Azure Maps et peut être récupéré à partir de l’API compte du plan de gestion Azure Maps. Pour utiliser Microsoft Entra ID sécurité dans Azure Maps consultez les articles suivants pour obtenir des conseils.

Corps de la demande

Nom Type Description
UploadContent

object

Contenu à charger.

Réponses

Nom Type Description
200 OK

ODataErrorResponse

Échec du chargement des données. Le contenu chargé n’a pas satisfait à toutes les vérifications de validation. Le corps de la réponse contient toutes les erreurs qui ont été rencontrées.

201 Created

LongRunningOperationResult

La ressource a été créée avec succès.

Headers

Location: string

202 Accepted

Pris en charge uniquement pour la requête asynchrone. Demande acceptée : la demande a été acceptée pour traitement. Utilisez l’URL de l’en-tête d’emplacement pour réessayer ou accéder aux résultats.

Headers

Location: string

400 Bad Request

ODataErrorResponse

Requête incorrecte : un ou plusieurs paramètres ont été incorrectement spécifiés ou s’excluent mutuellement.

401 Unauthorized

ODataErrorResponse

Accès refusé en raison d’une clé d’abonnement non valide ou d’un jeton Microsoft Entra ID porteur non valide. Veillez à fournir une clé valide pour un abonnement Azure actif et une ressource Maps. Sinon, vérifiez l’en-tête WWW-Authenticate pour le code d’erreur et la description du jeton du porteur Microsoft Entra ID fourni.

Headers

WWW-Authenticate: string

403 Forbidden

ODataErrorResponse

Problèmes d’autorisation, de capacité ou d’authentification.

404 Not Found

ODataErrorResponse

Introuvable : la ressource demandée est introuvable, mais elle peut être à nouveau disponible à l’avenir.

500 Internal Server Error

ODataErrorResponse

Une erreur s’est produite lors du traitement de la demande. Veuillez réessayer plus tard.

Sécurité

AADToken

Il s’agit des flux Microsoft Entra OAuth 2.0. Lorsqu’il est associé au contrôle d’accès en fonction du rôle Azure, il peut être utilisé pour contrôler l’accès à Azure Maps API REST. Les contrôles d’accès en fonction du rôle Azure sont utilisés pour désigner l’accès à un ou plusieurs Azure Maps compte de ressources ou sous-ressources. Tout utilisateur, groupe ou principal de service peut se voir accorder l’accès via un rôle intégré ou un rôle personnalisé composé d’une ou plusieurs autorisations pour Azure Maps API REST.

Pour implémenter des scénarios, nous vous recommandons d’afficher les concepts d’authentification. En résumé, cette définition de sécurité fournit une solution pour modéliser des applications via des objets capables de contrôler l’accès sur des API et des étendues spécifiques.

Notes

  • Cette définition de sécurité nécessite l’utilisation de l’en-tête x-ms-client-id pour indiquer à quelle ressource Azure Maps l’application demande l’accès. Vous pouvez l’acquérir à partir de l’API de gestion Maps.

Authorization URL est spécifique au cloud public Azure instance. Les clouds souverains ont des URL d’autorisation et des configurations Microsoft Entra ID uniques. * Le contrôle d’accès en fonction du rôle Azure est configuré à partir du plan de gestion Azure via Portail Azure, PowerShell, CLI, sdk Azure ou API REST. * L’utilisation du Kit de développement logiciel (SDK) web Azure Maps permet une configuration basée sur la configuration d’une application pour plusieurs cas d’usage.

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

Nom Description
https://atlas.microsoft.com/.default https://atlas.microsoft.com/.default

subscription-key

Il s’agit d’une clé partagée qui est provisionnée lorsque vous créez un compte Azure Maps dans le Portail Azure ou à l’aide de PowerShell, de l’interface CLI, des SDK Azure ou de l’API REST.

Avec cette clé, n’importe quelle application peut accéder à toutes les API REST. En d’autres termes, cette clé peut être utilisée comme clé master dans le compte dans lequel elle est émise.

Pour les applications exposées publiquement, notre recommandation est d’utiliser l’approche des applications clientes confidentielles pour accéder à Azure Maps API REST afin que votre clé puisse être stockée en toute sécurité.

Type: apiKey
In: query

SAS Token

Il s’agit d’un jeton de signature d’accès partagé créé à partir de l’opération List SAS sur la ressource Azure Maps via le plan de gestion Azure via Portail Azure, PowerShell, CLI, kits SDK Azure ou API REST.

Avec ce jeton, toute application est autorisée à accéder avec des contrôles d’accès en fonction du rôle Azure et un contrôle de grain précis à l’expiration, au taux et aux régions d’utilisation pour le jeton particulier. En d’autres termes, le jeton SAP peut être utilisé pour permettre aux applications de contrôler l’accès de manière plus sécurisée que la clé partagée.

Pour les applications exposées publiquement, notre recommandation est de configurer une liste spécifique d’origines autorisées sur la ressource de compte Map afin de limiter les abus de rendu et de renouveler régulièrement le jeton SAP.

Type: apiKey
In: header

Exemples

Upload GeoJSON data containing geometries that represent a collection of geofences

Sample Request

POST https://us.atlas.microsoft.com/mapData/upload?subscription-key=[subscription-key]&api-version=1.0&dataFormat=geojson

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          -122.126986,
          47.639754
        ]
      },
      "properties": {
        "geometryId": "001",
        "radius": 500
      }
    }
  ]
}

Sample Response

Location: https://atlas.microsoft.com/mapData/metadata/{udid}?api-version=1.0
Access-Control-Expose-Headers: Location
{
  "operationId": "{operationId}",
  "status": "Succeeded",
  "created": "2020-01-02 1:02:03 AM +00:00",
  "resourceLocation": "https://atlas.microsoft.com/mapData/metadata/{resourceId}?api-version=1.0"
}
operation-Location: https://atlas.microsoft.com/mapData/operations/{operationId}?api-version=1.0
Access-Control-Expose-Headers: Location
{
  "error": {
    "code": "400 Bad Request",
    "message": "Upload request failed. Your data has been removed as we encountered the following problems with it: Map data is not a valid GeoJSON geometry."
  }
}
{
  "error": {
    "code": "400 BadRequest",
    "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive."
  }
}
{
  "error": {
    "code": "401 Unauthorized",
    "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription."
  }
}
{
  "error": {
    "code": "403 Forbidden",
    "message": "Permission, capacity, or authentication issues."
  }
}
{
  "error": {
    "code": "404 NotFound",
    "message": "Not Found: the requested resource could not be found, but it may be available again in the future."
  }
}
{
  "error": {
    "code": "500 InternalServerError",
    "message": "An error occurred while processing the request. Please try again later."
  }
}

Définitions

Nom Description
LongRunningOperationResult

Modèle de réponse pour une API Operations Long-Running.

ODataError

Cet objet est retourné lorsqu’une erreur se produit dans l’API Azure Maps.

ODataErrorResponse

Cet objet de réponse est retourné lorsqu’une erreur se produit dans l’API Azure Maps.

type

État status de la demande.

UploadDataFormat

Format de données du contenu en cours de chargement.

LongRunningOperationResult

Modèle de réponse pour une API Operations Long-Running.

Nom Type Description
created

string

Horodatage créé.

error

ODataError

Cet objet est retourné lorsqu’une erreur se produit dans l’API Azure Maps.

operationId

string

ID de cette opération de longue durée.

resourceLocation

string

URI d’emplacement pour plus d’informations sur la ressource créée. Ce n’est fourni que lorsque la demande a été effectuée avec succès.

status

type

État status de la demande.

warning

ODataError

Cet objet est retourné lorsqu’une erreur se produit dans l’API Azure Maps.

ODataError

Cet objet est retourné lorsqu’une erreur se produit dans l’API Azure Maps.

Nom Type Description
code

string

Code ODataError.

details

ODataError[]

Cet objet est retourné lorsqu’une erreur se produit dans l’API Azure Maps.

message

string

Si disponible, une description lisible par l’utilisateur de l’erreur.

target

string

Si disponible, la cible à l’origine de l’erreur.

ODataErrorResponse

Cet objet de réponse est retourné lorsqu’une erreur se produit dans l’API Azure Maps.

Nom Type Description
error

ODataError

Cet objet est retourné lorsqu’une erreur se produit dans l’API Azure Maps.

type

État status de la demande.

Nom Type Description
Failed

string

La requête présente un ou plusieurs échecs.

NotStarted

string

Le traitement de la demande n’a pas encore commencé.

Running

string

Le traitement de la demande a commencé.

Succeeded

string

La demande s’est terminée avec succès.

UploadDataFormat

Format de données du contenu en cours de chargement.

Nom Type Description
geojson

string

GeoJSON est un format d’échange de données géospatiales basé sur JSON.

zip

string

Format de données compressées.