Tutorial: Uso de Creator para crear planos interiores

En este tutorial se describe cómo crear mapas de interiores. En este tutorial, aprenderá a:

  • Cargar el paquete de dibujo del plano interior.
  • Convertir el paquete de dibujo en datos del plano.
  • Crear un conjunto de datos a partir de los datos del plano.
  • Crear un conjunto de mosaicos a partir de los datos del conjunto de datos.
  • Consultar la Web Feature Service (WFS) API de Azure Maps para obtener información acerca de las características del plano.
  • Crear un conjunto de estados de características mediante las características del plano y los datos del conjunto de datos.
  • Actualizar el conjunto de estados de características.

Requisitos previos

  1. Cree una cuenta de Azure Maps.
  2. Obtenga una clave de suscripción principal, también conocida como clave principal o clave de suscripción.
  3. Cree un recurso de Creator
  4. Descargue el paquete de dibujo de ejemplo.

En este tutorial se usa la aplicación Postman, pero puede usar un entorno de desarrollo de API diferente.

Importante

En este tutorial se usa la dirección URL geográfica us.atlas.microsoft.com. Si el servicio Creator no se creó en la Estados Unidos, debe usar una dirección URL geográfica diferente. Para más información, consulte Acceso a los servicios de Creator. Para ver las asignaciones de región a una ubicación geográfica, consulte el ámbito geográfico del servicio Creator.

Carga de un paquete de dibujo

Use Data Upload API para cargar un paquete de dibujo a los recursos de Azure Maps.

Data Upload API es una transacción de larga duración que implementa el patrón que se define en Ámbito geográfico del servicio Creator.

Para cargar el paquete de dibujo:

  1. En la aplicación Postman, seleccione New (Nuevo).

  2. En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).

  3. En Nombre de solicitud, escriba un nombre para la solicitud, como POST Data Upload.

  4. Seleccione el método HTTP POST.

  5. Escriba la siguiente dirección URL a la Data Upload API. La solicitud debe ser como la siguiente dirección URL (reemplace {Azure-Maps-Primary-Subscription-key} por la clave de suscripción principal):

    https://us.atlas.microsoft.com/mapData?api-version=2.0&dataFormat=dwgzippackage&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  6. Seleccione la pestaña Encabezados.

  7. En el campo CLAVE, seleccione Content-Type.

  8. En el campo VALUE, seleccione application/octet-stream.

    Información de la pestaña Encabezado para la carga de datos.

  9. Seleccione la pestaña Cuerpo.

  10. En la lista desplegable, seleccione binary (binario).

  11. Seleccione Select File (Seleccionar archivo) y elija un paquete de dibujo.

    Selección de un paquete de dibujo

  12. Seleccione Enviar.

  13. En la ventana de respuesta, seleccione la pestaña Headers (Encabezados).

  14. Copie el valor de la clave de Operation-Location, que es status URL. Usaremos status URL para comprobar el estado de la carga del paquete de dibujo.

    Copie la dirección URL de estado en la clave de ubicación.

Comprobación del estado de carga del paquete de dibujo

Para comprobar el estado del paquete de dibujo y recuperar su identificador único (udid):

  1. En la aplicación Postman, seleccione New (Nuevo).

  2. En la ventana Crear nuevo, seleccione Solicitud HTTP.

  3. En Request name (Nombre de solicitud), escriba un nombre para la solicitud, como GET Data Upload Status.

  4. Seleccione el método HTTP GET.

  5. Escriba la status URL que copió en Upload a Drawing package (Cargar un paquete de dibujo). La solicitud debe ser como la siguiente dirección URL (reemplace {Azure-Maps-Primary-Subscription-key} por la clave de suscripción principal):

    https://us.atlas.microsoft.com/mapData/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  6. Seleccione Enviar.

  7. En la ventana de respuesta, seleccione la pestaña Headers (Encabezados).

  8. Copie el valor de la clave Resource-Location, que es resource location URL. resource location URL contiene el identificador único (udid) del recurso del paquete de dibujo.

    Copie la dirección URL de la ubicación del recurso.

(Opcional) Recuperación de metadatos del paquete de dibujo

Puede recuperar los metadatos del recurso de paquete de dibujo. Los metadatos contienen información como la dirección URL de la ubicación del recurso, la fecha de creación, la fecha de actualización, el tamaño y el estado de carga.

Para recuperar los metadatos de contenido:

  1. En la aplicación Postman, seleccione New (Nuevo).

  2. En la ventana Crear nuevo, seleccione Solicitud HTTP.

  3. En Nombre de solicitud, escriba un nombre para la solicitud, como GET Data Upload Metadata.

  4. . Seleccione el método HTTP GET.

  5. Escriba la resource Location URL que copió en Check Drawing package upload status (Comprobación del estado de carga del paquete de dibujo). La solicitud debe ser como la siguiente dirección URL (reemplace {Azure-Maps-Primary-Subscription-key} por la clave de suscripción principal):

    https://us.atlas.microsoft.com/mapData/metadata/{udid}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  6. Seleccione Enviar.

  7. En la ventana de respuesta, seleccione la pestaña Cuerpo. Los metadatos deben ser como el siguiente fragmento JSON:

    {
        "udid": "{udid}",
        "location": "https://us.atlas.microsoft.com/mapData/6ebf1ae1-2a66-760b-e28c-b9381fcff335?api-version=2.0",
        "created": "5/18/2021 8:10:32 PM +00:00",
        "updated": "5/18/2021 8:10:37 PM +00:00",
        "sizeInBytes": 946901,
        "uploadStatus": "Completed"
    }
    

Conversión de un paquete de dibujo

Cuando se haya cargado el paquete de dibujos, usaremos el udid para el paquete cargado con el fin de convertirlo en datos de mapa. Conversion API usa una transacción de larga duración que implementa el patrón que se define aquí.

Para convertir un paquete de dibujo:

  1. En la aplicación Postman, seleccione New (Nuevo).

  2. En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).

  3. En Nombre de solicitud, escriba un nombre para la solicitud, como POST Convert Drawing Package.

  4. Seleccione el método HTTP POST.

  5. Escriba la siguiente dirección URL en el servicio de conversión (reemplace {Azure-Maps-Primary-Subscription-key} por su clave de suscripción principal y udid por udid del paquete cargado):

    https://us.atlas.microsoft.com/conversions?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=2.0&udid={udid}&inputType=DWG&outputOntology=facility-2.0
    
  6. Seleccione Enviar.

  7. En la ventana de respuesta, seleccione la pestaña Headers (Encabezados).

  8. Copie el valor de la clave de Operation-Location, que es status URL. Usaremos status URL para comprobar el estado de la conversión.

    Copie el valor de la clave de ubicación para el paquete de dibujo.

Comprobación del estado de conversión del paquete de dibujo

Una vez completada la operación de conversión, devuelve un conversionId. Podemos acceder a conversionId comprobando el estado del proceso de conversión del paquete de dibujo. A continuación, se puede usar conversionId para acceder a los datos convertidos.

Para comprobar el estado del proceso de conversión y recuperar conversionId:

  1. En la aplicación Postman, seleccione New (Nuevo).

  2. En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).

  3. En Nombre de solicitud, escriba un nombre para la solicitud, como GET Conversion Status.

  4. Seleccione el método HTTP GET:

  5. Escriba la status URL que copió en Convert a Drawing package (Convertir un paquete de dibujo). La solicitud debe ser como la siguiente dirección URL (reemplace {Azure-Maps-Primary-Subscription-key} por la clave de suscripción principal):

    https://us.atlas.microsoft.com/conversions/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  6. Seleccione Enviar.

  7. En la ventana de respuesta, seleccione la pestaña Headers (Encabezados).

  8. Copie el valor de la clave Resource-Location, que es resource location URL. resource location URL contiene el identificador único (conversionId), que pueden usar otras API para acceder a los datos de mapa convertidos.

    Copia del identificador de conversión.

Tenga en cuenta que el paquete de dibujo de ejemplo debe convertirse sin errores ni advertencias. Sin embargo, si recibe errores o advertencias de su propio paquete de dibujo, la respuesta JSON incluye un vínculo al visualizador de errores de dibujo. El visualizador de errores de dibujo le permitirá inspeccionar los detalles de los errores y las advertencias. Para recibir recomendaciones sobre cómo resolver errores y advertencias de conversión, consulte Errores y advertencias en la conversión de dibujos.

El siguiente fragmento JSON muestra una advertencia de conversión de ejemplo:

{
    "operationId": "{operationId}",
    "created": "2021-05-19T18:24:28.7922905+00:00",
    "status": "Succeeded",
     "warning": {
        "code": "dwgConversionProblem",
        "details": [
            {
                "code": "warning",
                "details": [
                    {
                        "code": "manifestWarning",
                        "message": "Ignoring unexpected JSON property: unitProperties[0].nonWheelchairAccessible with value False"
                    }
                ]
            }
        ]
    },
    "properties": {
        "diagnosticPackageLocation": "https://atlas.microsoft.com/mapData/ce61c3c1-faa8-75b7-349f-d863f6523748?api-version=1.0"
    }
}

Crear un conjunto de datos

Un conjunto de datos es una colección de características de plano, como edificios, niveles y salones. Para crear un conjunto de datos, use Dataset Create API. Dataset Create API toma el valor conversionId del paquete de dibujo convertido y devuelve un valor datasetId del conjunto de datos creado.

Para crear un conjunto de datos

  1. En la aplicación Postman, seleccione New (Nuevo).

  2. En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).

  3. En Nombre de solicitud, escriba un nombre para la solicitud, como POST Dataset Create.

  4. Seleccione el método HTTP POST.

  5. Escriba la siguiente dirección URL para la Dataset API. La solicitud debe tener un aspecto similar a la siguiente dirección URL (reemplace {Azure-Maps-Primary-Subscription-key} por la clave de suscripción principal y {conversionId} por el conversionId obtenido en la sección Comprobación del estado de conversión del paquete de dibujo):

    https://us.atlas.microsoft.com/datasets?api-version=2.0&conversionId={conversionId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  6. Seleccione Enviar.

  7. En la ventana de respuesta, seleccione la pestaña Headers (Encabezados).

  8. Copie el valor de la clave de Operation-Location, que es status URL. Usaremos status URL para comprobar el estado del conjunto de datos.

    Copia del valor de la clave de ubicación para el conjunto de datos

Comprobación del estado de creación del conjunto de datos

Para comprobar el estado del proceso de creación del conjunto de datos y recuperar datasetId:

  1. En la aplicación Postman, seleccione New (Nuevo).

  2. En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).

  3. En Nombre de solicitud, escriba un nombre para la solicitud, como GET Dataset Status.

  4. Seleccione el método HTTP GET.

  5. Escriba la status URL que copió en Creación de un conjunto de datos. La solicitud debe ser como la siguiente dirección URL (reemplace {Azure-Maps-Primary-Subscription-key} por la clave de suscripción principal):

    https://us.atlas.microsoft.com/datasets/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  6. Seleccione Enviar.

  7. En la ventana de respuesta, seleccione la pestaña Headers (Encabezados). El valor de la clave Resource-Location es la resource location URL. La resource location URL contiene el identificador único (datasetId) del conjunto de datos.

  8. Copie datasetId, ya que lo usará en las secciones siguientes de este tutorial.

    Copia del identificador del conjunto de datos

Creación de un conjunto de mosaicos

Un conjunto de mosaicos es un conjunto de mosaicos vectoriales que se representan en el plano. Los conjuntos de mosaicos se crean a partir de conjuntos de datos existentes. Sin embargo, un conjunto de mosaicos es independiente del conjunto de datos del que se creó. Si se elimina el conjunto de datos, el conjunto de mosaicos seguirá existiendo.

Para crear un conjunto de mosaicos:

  1. En la aplicación Postman, seleccione New (Nuevo).

  2. En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).

  3. En Nombre de solicitud, escriba un nombre para la solicitud, como POST Tileset Create.

  4. Seleccione el método HTTP POST.

  5. Escriba la siguiente dirección URL para Tileset API. La solicitud debe tener un aspecto similar a la siguiente dirección URL (reemplace {Azure-Maps-Primary-Subscription-key} por la clave de suscripción principal) y {datasetId} por el datasetId obtenido en la sección Comprobación del estado de creación del conjunto de datos:

    https://us.atlas.microsoft.com/tilesets?api-version=2.0&datasetID={datasetId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  6. Seleccione Enviar.

  7. En la ventana de respuesta, seleccione la pestaña Headers (Encabezados).

  8. Copie el valor de la clave de Operation-Location, que es status URL. Usaremos status URL para comprobar el estado del conjunto de mosaicos.

    Copia del valor de la dirección URL de estado del conjunto de mosaicos

Comprobación del estado de creación del conjunto de mosaicos

Para comprobar el estado del proceso de creación del conjunto de datos y recuperar tilesetId:

  1. En la aplicación Postman, seleccione New (Nuevo).

  2. En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).

  3. En Nombre de solicitud, escriba un nombre para la solicitud, como GET Tileset Status.

  4. Seleccione el método HTTP GET.

  5. Escriba la status URL que copió en Creación de un conjunto de mosaicos. La solicitud debe ser como la siguiente dirección URL (reemplace {Azure-Maps-Primary-Subscription-key} por la clave de suscripción principal):

    https://us.atlas.microsoft.com/tilesets/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  6. Seleccione Enviar.

  7. En la ventana de respuesta, seleccione la pestaña Headers (Encabezados). El valor de la clave Resource-Location es la resource location URL. resource location URL contiene el identificador único (tilesetId) del conjunto de datos.

    Copia del identificador del conjunto de mosaicos

Consulta de conjuntos de datos con la API de WFS

Los conjuntos de datos se pueden consultar mediante la API de WFS. Puede usar la API de WFS para consultar todas las colecciones de características o una recopilación específica. En esta sección del tutorial, haremos ambas cosas. En primer lugar, se consultarán todas las colecciones y, a continuación, se consultará la colección unit.

Consulta de colecciones de características

Para consultar todas las colecciones del conjunto de datos:

  1. En la aplicación Postman, seleccione New (Nuevo).

  2. En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).

  3. En Nombre de solicitud, escriba un nombre para la solicitud, como GET Dataset Collections.

  4. Seleccione el método HTTP GET.

  5. Escriba la siguiente dirección URL en la API de WFS. La solicitud debe tener un aspecto similar a la siguiente dirección URL (reemplace {Azure-Maps-Primary-Subscription-key} por la clave de suscripción principal) y {datasetId} por el datasetId obtenido en la sección Comprobación del estado de creación del conjunto de datos:

    https://us.atlas.microsoft.com/wfs/datasets/{datasetId}/collections?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=2.0
    
  6. Seleccione Enviar.

  7. El cuerpo de la respuesta se devuelve en formato GeoJSON y contendrá todas las colecciones del conjunto de datos. Para simplificar, en este ejemplo solo se muestra la colección de unit. Para ver un ejemplo que contenga todas las colecciones, consulte Describe Collections API de WFS. Para obtener más información sobre cualquier colección, puede seleccionar cualquiera de las direcciones URL del elemento link.

    {
    "collections": [
        {
            "name": "unit",
            "description": "A physical and non-overlapping area which might be occupied and traversed by a navigating agent. Can be a hallway, a room, a courtyard, etc. It is surrounded by physical obstruction (wall), unless the is_open_area attribute is equal to true, and one must add openings where the obstruction shouldn't be there. If is_open_area attribute is equal to true, all the sides are assumed open to the surroundings and walls are to be added where needed. Walls for open areas are represented as a line_element or area_element with is_obstruction equal to true.",
            "links": [
                {
                    "href": "https://atlas.microsoft.com/wfs/datasets/{datasetId}/collections/unit/definition?api-version=1.0",
                    "rel": "describedBy",
                    "title": "Metadata catalogue for unit"
                },
                {
                    "href": "https://atlas.microsoft.com/wfs/datasets/{datasetId}/collections/unit/items?api-version=1.0",
                    "rel": "data",
                    "title": "unit"
                }
                {
                    "href": "https://atlas.microsoft.com/wfs/datasets/{datasetId}/collections/unit?api-version=1.0",
                    "rel": "self",
                    "title": "Metadata catalogue for unit"
                }
            ]
        },
    

Consulta de la colección de características unitarias

En esta sección, se consultará la API de WFS para la colección unit de características.

Para consultar la colección de unidades en el conjunto de datos:

  1. En la aplicación Postman, seleccione New (Nuevo).

  2. En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).

  3. En Nombre de solicitud, escriba un nombre para la solicitud, como GET Unit Collection.

  4. Seleccione el método HTTP GET.

  5. Escriba la siguiente dirección URL (reemplace {Azure-Maps-Primary-Subscription-key} por su clave de suscripción principal y {datasetId} por el datasetId obtenido en Comprobación del estado de creación del conjunto de datos):

    https://us.atlas.microsoft.com/wfs/datasets/{datasetId}/collections/unit/items?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=2.0
    
  6. Seleccione Enviar.

  7. Una vez que se devuelva la respuesta, copie la característica id de una de las características unit. En el ejemplo siguiente, el id de la característica es "UNIT26". En este tutorial, usaremos "UNIT26" como característica id en la sección siguiente.

    {
        "type": "FeatureCollection",
        "features": [
            {
                "type": "Feature",
                "geometry": {
                    "type": "Polygon",
                    "coordinates": ["..."]
                },
                "properties": {
                    "original_id": "b7410920-8cb0-490b-ab23-b489fd35aed0",
                    "category_id": "CTG8",
                    "is_open_area": true,
                    "navigable_by": [
                        "pedestrian"
                    ],
                    "route_through_behavior": "allowed",
                    "level_id": "LVL14",
                    "occupants": [],
                    "address_id": "DIR1",
                    "name": "157"
                },
                "id": "UNIT26",
                "featureType": ""
            }, {"..."}
        ]
    }
    

Creación de un conjunto de estados de características

Los conjuntos de estados de características definen propiedades dinámicas y valores en características específicas que los admiten. En esta sección, crearemos un conjunto de estados que define los valores booleanos y los estilos correspondientes para la propiedad occupancy.

Para crear un conjunto de estados:

  1. En la aplicación Postman, seleccione New (Nuevo).

  2. En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).

  3. En Nombre de solicitud, escriba un nombre para la solicitud, como POST Create Stateset.

  4. Seleccione el método HTTP POST.

  5. Escriba la siguiente dirección URL para Stateset API. La solicitud debe tener un aspecto similar a la siguiente dirección URL (reemplace {Azure-Maps-Primary-Subscription-key} por la clave de suscripción principal) y {datasetId} por el datasetId obtenido en la sección Comprobación del estado de creación del conjunto de datos):

    https://us.atlas.microsoft.com/featurestatesets?api-version=2.0&datasetId={datasetId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  6. Seleccione la pestaña Encabezados.

  7. En el campo CLAVE, seleccione Content-Type.

  8. En el campo VALUE, seleccione application/json.

    Información de la pestaña Encabezado para la creación del conjunto de estados.

  9. Seleccione la pestaña Cuerpo.

  10. En las listas desplegables, seleccione raw y JSON.

  11. Copie los siguientes estilos JSON y péguelo en la ventana Cuerpo:

    {
       "styles":[
          {
             "keyname":"occupied",
             "type":"boolean",
             "rules":[
                {
                   "true":"#FF0000",
                   "false":"#00FF00"
                }
             ]
          }
       ]
    }
    
  12. Seleccione Enviar.

  13. Una vez que la respuesta se devuelva correctamente, copie statesetId desde el cuerpo de la respuesta. En la sección siguiente, usaremos statesetId para cambiar el estado de propiedad occupancy de la unidad con la característica id "UNIT26".

    Respuesta del identificador del conjunto de estados

Actualización del estado de característica

Para actualizar el estado occupied de la unidad con la característica id "UNIT26":

  1. En la aplicación Postman, seleccione New (Nuevo).

  2. En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).

  3. En Nombre de solicitud, escriba un nombre para la solicitud, como PUT Set Stateset.

  4. Seleccione el método HTTP PUT.

  5. Escriba la siguiente dirección URL para Feature Statesets API. La solicitud debe tener un aspecto similar a la siguiente dirección URL (reemplace {Azure-Maps-Primary-Subscription-key} por la clave de suscripción principal) y {statesetId} por el statesetId obtenido en la sección Creación de un conjunto de estados de características):

    https://us.atlas.microsoft.com/featurestatesets/{statesetId}/featureStates/UNIT26?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  6. Seleccione la pestaña Encabezados.

  7. En el campo CLAVE, seleccione Content-Type.

  8. En el campo VALUE, seleccione application/json.

    Información de la pestaña Encabezado para la creación del conjunto de estados.

  9. Seleccione la pestaña Cuerpo.

  10. En las listas desplegables, seleccione raw y JSON.

  11. Copie el siguiente estilo JSON y péguelo en la ventana Body:

    {
        "states": [
            {
                "keyName": "occupied",
                "value": true,
                "eventTimestamp": "2020-11-14T17:10:20"
            }
        ]
    }
    

    Nota

    La actualización solo se guardará si la marca de tiempo registrada es posterior a la marca de tiempo de la solicitud anterior.

  12. Seleccione Enviar.

  13. Cuando se completa la actualización, recibirá un código de estado HTTP 200 OK. Si ha implementado un estilo dinámico en un mapa de interiores, la actualización se muestra en la marca de tiempo especificada en el mapa representado.

Puede usar Feature Get States API para recuperar el estado de una característica mediante el id de la característica. También puede usar Feature State Delete State API para eliminar el conjunto de estados y sus recursos.

Para obtener más información sobre los diferentes servicios de Azure Maps Creator que se describen en este artículo, consulte Mapas de interiores de Creator.

Limpieza de recursos

No hay recursos que requieran limpieza.

Pasos siguientes

Para obtener información sobre cómo usar el módulo de mapas de interiores, consulte