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
- Cree una cuenta de Azure Maps.
- Obtenga una clave de suscripción principal, también conocida como clave principal o clave de suscripción.
- Cree un recurso de Creator
- 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:
En la aplicación Postman, seleccione New (Nuevo).
En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).
En Nombre de solicitud, escriba un nombre para la solicitud, como POST Data Upload.
Seleccione el método HTTP POST.
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}Seleccione la pestaña Encabezados.
En el campo CLAVE, seleccione
Content-Type.En el campo VALUE, seleccione
application/octet-stream.
Seleccione la pestaña Cuerpo.
En la lista desplegable, seleccione binary (binario).
Seleccione Select File (Seleccionar archivo) y elija un paquete de dibujo.
Seleccione Enviar.
En la ventana de respuesta, seleccione la pestaña Headers (Encabezados).
Copie el valor de la clave de Operation-Location, que es
status URL. Usaremosstatus URLpara comprobar el estado de la carga del paquete de dibujo.
Comprobación del estado de carga del paquete de dibujo
Para comprobar el estado del paquete de dibujo y recuperar su identificador único (udid):
En la aplicación Postman, seleccione New (Nuevo).
En la ventana Crear nuevo, seleccione Solicitud HTTP.
En Request name (Nombre de solicitud), escriba un nombre para la solicitud, como GET Data Upload Status.
Seleccione el método HTTP GET.
Escriba la
status URLque 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}Seleccione Enviar.
En la ventana de respuesta, seleccione la pestaña Headers (Encabezados).
Copie el valor de la clave Resource-Location, que es
resource location URL.resource location URLcontiene el identificador único (udid) del recurso del paquete de dibujo.
(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:
En la aplicación Postman, seleccione New (Nuevo).
En la ventana Crear nuevo, seleccione Solicitud HTTP.
En Nombre de solicitud, escriba un nombre para la solicitud, como GET Data Upload Metadata.
. Seleccione el método HTTP GET.
Escriba la
resource Location URLque 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}Seleccione Enviar.
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:
En la aplicación Postman, seleccione New (Nuevo).
En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).
En Nombre de solicitud, escriba un nombre para la solicitud, como POST Convert Drawing Package.
Seleccione el método HTTP POST.
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 yudidporudiddel 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.0Seleccione Enviar.
En la ventana de respuesta, seleccione la pestaña Headers (Encabezados).
Copie el valor de la clave de Operation-Location, que es
status URL. Usaremosstatus URLpara comprobar el estado de la conversión.
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:
En la aplicación Postman, seleccione New (Nuevo).
En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).
En Nombre de solicitud, escriba un nombre para la solicitud, como GET Conversion Status.
Seleccione el método HTTP GET:
Escriba la
status URLque 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}Seleccione Enviar.
En la ventana de respuesta, seleccione la pestaña Headers (Encabezados).
Copie el valor de la clave Resource-Location, que es
resource location URL.resource location URLcontiene el identificador único (conversionId), que pueden usar otras API para acceder a los datos de mapa convertidos.
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
En la aplicación Postman, seleccione New (Nuevo).
En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).
En Nombre de solicitud, escriba un nombre para la solicitud, como POST Dataset Create.
Seleccione el método HTTP POST.
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 elconversionIdobtenido 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}Seleccione Enviar.
En la ventana de respuesta, seleccione la pestaña Headers (Encabezados).
Copie el valor de la clave de Operation-Location, que es
status URL. Usaremosstatus URLpara comprobar el estado del 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:
En la aplicación Postman, seleccione New (Nuevo).
En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).
En Nombre de solicitud, escriba un nombre para la solicitud, como GET Dataset Status.
Seleccione el método HTTP GET.
Escriba la
status URLque 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}Seleccione Enviar.
En la ventana de respuesta, seleccione la pestaña Headers (Encabezados). El valor de la clave Resource-Location es la
resource location URL. Laresource location URLcontiene el identificador único (datasetId) del conjunto de datos.Copie
datasetId, ya que lo usará en las secciones siguientes de este tutorial.
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:
En la aplicación Postman, seleccione New (Nuevo).
En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).
En Nombre de solicitud, escriba un nombre para la solicitud, como POST Tileset Create.
Seleccione el método HTTP POST.
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 eldatasetIdobtenido 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}Seleccione Enviar.
En la ventana de respuesta, seleccione la pestaña Headers (Encabezados).
Copie el valor de la clave de Operation-Location, que es
status URL. Usaremosstatus URLpara comprobar el 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:
En la aplicación Postman, seleccione New (Nuevo).
En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).
En Nombre de solicitud, escriba un nombre para la solicitud, como GET Tileset Status.
Seleccione el método HTTP GET.
Escriba la
status URLque 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}Seleccione Enviar.
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 URLcontiene el identificador único (tilesetId) del conjunto de datos.
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:
En la aplicación Postman, seleccione New (Nuevo).
En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).
En Nombre de solicitud, escriba un nombre para la solicitud, como GET Dataset Collections.
Seleccione el método HTTP GET.
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 eldatasetIdobtenido 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.0Seleccione Enviar.
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 elementolink.{ "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:
En la aplicación Postman, seleccione New (Nuevo).
En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).
En Nombre de solicitud, escriba un nombre para la solicitud, como GET Unit Collection.
Seleccione el método HTTP GET.
Escriba la siguiente dirección URL (reemplace
{Azure-Maps-Primary-Subscription-key}por su clave de suscripción principal y{datasetId} por eldatasetIdobtenido 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.0Seleccione Enviar.
Una vez que se devuelva la respuesta, copie la característica
idde una de las característicasunit. En el ejemplo siguiente, elidde la característica es "UNIT26". En este tutorial, usaremos "UNIT26" como característicaiden 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:
En la aplicación Postman, seleccione New (Nuevo).
En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).
En Nombre de solicitud, escriba un nombre para la solicitud, como POST Create Stateset.
Seleccione el método HTTP POST.
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 eldatasetIdobtenido 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}Seleccione la pestaña Encabezados.
En el campo CLAVE, seleccione
Content-Type.En el campo VALUE, seleccione
application/json.
Seleccione la pestaña Cuerpo.
En las listas desplegables, seleccione raw y JSON.
Copie los siguientes estilos JSON y péguelo en la ventana Cuerpo:
{ "styles":[ { "keyname":"occupied", "type":"boolean", "rules":[ { "true":"#FF0000", "false":"#00FF00" } ] } ] }Seleccione Enviar.
Una vez que la respuesta se devuelva correctamente, copie
statesetIddesde el cuerpo de la respuesta. En la sección siguiente, usaremosstatesetIdpara cambiar el estado de propiedadoccupancyde la unidad con la característicaid"UNIT26".
Actualización del estado de característica
Para actualizar el estado occupied de la unidad con la característica id "UNIT26":
En la aplicación Postman, seleccione New (Nuevo).
En la ventana Create New (Crear nuevo), seleccione HTTP Request (Solicitud HTTP).
En Nombre de solicitud, escriba un nombre para la solicitud, como PUT Set Stateset.
Seleccione el método HTTP PUT.
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 elstatesetIdobtenido 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}Seleccione la pestaña Encabezados.
En el campo CLAVE, seleccione
Content-Type.En el campo VALUE, seleccione
application/json.
Seleccione la pestaña Cuerpo.
En las listas desplegables, seleccione raw y JSON.
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.
Seleccione Enviar.
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