Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Ajustar a carretera es un servicio de Azure Maps que procesa un conjunto de puntos GPS recopilados a lo largo de una ruta y los ajusta a las carreteras más probables que viajó el vehículo. Esta característica es útil para determinar la ruta exacta seguida de un vehículo, incluso cuando los datos GPS recopilados están apagados ligeramente.
En este tutorial se explica cómo usar la API de Azure Maps Ajustar a carretera con Microsoft Fabric para analizar los datos GPS de los recursos móviles, incluso cuando los datos son inexactos o incompletos debido a la pérdida de señal. Le guía a través de la realización de llamadas a la API de Azure Maps Ajustar a carretera desde un cuaderno de Microsoft Fabric para ajustar los puntos GPS a la carretera más cercana, rellenar los puntos que faltan mediante puntos de datos interpolados y mejorarlos con atributos adicionales, como nombres de carretera y límites de velocidad.
En este tutorial, aprenderá lo siguiente:
- Cree un Almacén de lago de datos en Microsoft Fabric e importe los datos GPS sin procesar de un vehículo.
- Cree una cuaderno de Microsoft Fabric que tome datos GPS sin procesar y devuelva la información de coordenadas acoplada solicitada mediante la API de Ajustar a carretera de Azure Maps.
- Cree una base de datos eventhouse y KQL e importe en ella los datos GPS acoplados.
- Cree un Panel en tiempo real con los datos GPS acoplados en la base de datos de Kusto.
- Consulte los datos de KQL y muestre los datos GPS acoplados en un objeto visual de mapa.
Requisitos previos
- Una cuenta de Azure Maps
- Una clave de suscripción
- Una cuenta de Microsoft Fabric
- Conocimientos básicos de Microsoft Fabric.
Nota:
Para más información sobre la autenticación en Azure Maps, consulte Administración de la autenticación en Azure Maps.
Creación de un cuaderno y una instancia de almacén de lago de datos de Microsoft Fabric
Siga estos pasos para crear un cuaderno de Microsoft Fabric:
Vaya a la Mi área de trabajo y seleccione Nuevo elemento.
Cuando aparezca la pantalla Nuevo elemento, desplácese hacia abajo y seleccione Cuaderno.
En la pantalla del cuaderno Explorador, seleccione la flecha Almacenes de lago de datos>.
Selecciona el botón Agregar.
En el cuadro de diálogo Agregar almacén de lago de datos, seleccione Nuevo almacén de lago de datos después el botón Agregar.
En el cuadro de diálogo Nuevo almacén de lago de datos, introduzca un nombre «Azure_Maps_Data» y seleccione el botón Crear.
Adición de un archivo de datos al almacén de lago de datos
Ajustar a carretera toma datos de punto GPS (lat, lon) y devuelve una lista de objetos que forman una ruta acoplada a las carreteras en un mapa. Se puede agregar un archivo de datos que contenga los datos GPS necesarios como un archivo al almacén de lago de datos y al que hace referencia el código de Python en el cuaderno.
Descargar archivo de datos
Descargue los datos de ejemplo (mockData_20240919.csv) de GitHub al dispositivo de almacenamiento local para cargarlos en el almacén de lago de datos en la sección siguiente. Este archivo contiene una matriz de coordenadas GPS que el servicio Ajustar a carretera modifica según sea necesario para asegurarse de que cada coordenada apunta a una carretera válida.
Abra el archivo mockData_20240919.csv en GitHub.
Seleccione el botón Descargar archivo sin procesar en la esquina superior derecha de la pantalla y guardar el archivo localmente.
Carga del archivo de datos en el almacén de lago de datos
En los pasos siguientes se explica cómo agregar un origen de datos al almacén de lago de datos.
En la carpeta Archivos del almacén de lago de datos, seleccione Subir > Cargar archivos.
Abra el cuadro de diálogo abrir archivo seleccionando el icono carpeta. Seleccione el archivo mockData_20240919.csv que descargó en la sección anterior después el botón Abrir. Una vez que se cierre el cuadro de diálogo abrir archivo y el nombre de archivo correcto aparezca en el control Cargar archivos, seleccione el botón Cargar para cargar el archivo en el almacén de lago de datos.
Agregar el código al cuaderno
Debe agregar y ejecutar cuatro celdas de código en el cuaderno para realizar el escenario de Ajustar a carreteras. Las secciones siguientes le guiarán a través de esto.
Instalar paquetes
Primero debe cargar los paquetes necesarios:
!pip install geopandas
!pip install geojson
Escriba las instrucciones de instalación de PIP en la primera celda del cuaderno y, a continuación, ejecute las instrucciones seleccionando la flecha de ejecución.
Cargar datos
A continuación, cargue los datos de ejemplo que cargados anteriormente en el almacén de lago de datos.
Mantenga el puntero justo debajo de la celda usada para instalar los paquetes. Las opciones aparecen para agregar código o markdown. Seleccione código para agregar otra celda de código al cuaderno.
Una vez creada la nueva celda, agregue el código siguiente.
import geopandas as gpd import pandas as pd lakehouseFilePath = "/lakehouse/default/Files/" mockdata_df = gpd.read_file(lakehouseFilePath + "mockData_20240919.csv") mockdata_df = gpd.GeoDataFrame( mockdata_df, geometry=gpd.points_from_xy(mockdata_df.longitude, mockdata_df.latitude), crs="EPSG:4326" ) mockdata_df.head() mockdata_df.tripID.unique()Ejecute el código seleccionando la flecha de ejecución. Esto carga los datos de ejemplo.
Mejora con Ajustar a carretera
El código de esta celda del cuaderno lee los datos GPS sin procesar del archivo de datos del almacén de lago de datos y los pasa a la API Ajustar a carretera de Azure Maps. Con la interpolación habilitada, la API agrega puntos entre ubicaciones GPS para completar la ruta a lo largo de la carretera. También proporciona atributos como nombres de carretera y límites de velocidad cuando están disponibles.
Mantenga el puntero justo debajo de la celda usada para instalar los paquetes en el paso anterior. Las opciones aparecen para agregar código o markdown. Seleccione código para agregar otra celda de código al cuaderno.
Una vez creada la nueva celda, agregue el código siguiente. Asegúrese de agregar la clave de suscripción.
import requests import json az_maps_subkey = "" az_maps_snaproads_url = "https://atlas.microsoft.com/route/snapToRoads?api-version=2025-01-01&subscription-key=" + az_maps_subkey # Function to process snap to road for each given trip def process_route(df, outputFilePath): # List to store successful responses successful_responses = [] # Function to send a chunk of features def send_chunk_snaproads(chunk): geojson_data = chunk.to_json() # Convert the JSON string to a Python dictionary geojson_dict = json.loads(geojson_data) # Add the new fields at the end of the dictionary geojson_dict['includeSpeedLimit'] = True geojson_dict['interpolate'] = True geojson_dict['travelMode'] = "driving" # Convert the dictionary back to a JSON string updated_geojson_data = json.dumps(geojson_dict) response = requests.post( az_maps_snaproads_url, headers={'Content-Type': 'application/json'}, data=updated_geojson_data ) if response.status_code == 200: print('Chunk request was successful...') successful_responses.append(response.json()) else: print(f'Failed to send request. Status code: {response.status_code}') print('Response body:', response.text) # Loop over the GeoDataFrame in chunks of 100 chunk_size = 100 for start in range(0, len(df), chunk_size): end = start + chunk_size chunk = df.iloc[start:end] send_chunk_snaproads(chunk) # Extract features with geometry from successful responses features_with_geometry = [] for response in successful_responses: if 'features' in response: for feature in response['features']: if 'geometry' in feature: longitude = feature['geometry']['coordinates'][0] latitude = feature['geometry']['coordinates'][1] feature['properties']['latitude'] = latitude feature['properties']['longitude'] = longitude features_with_geometry.append(feature) # Convert the list of features with geometry to a GeoDataFrame if features_with_geometry: responses_gdf = gpd.GeoDataFrame.from_features(features_with_geometry) # Write successful responses to a cvs file #responses_gdf.to_file(outputFilePath, driver='GeoJSON') responses_gdf.to_csv(outputFilePath, encoding='utf-8', index=False) print(f'Successful responses written to {outputFilePath}') else: print('No valid features with geometry found in the responses.')Ejecute el código seleccionando la flecha de ejecución.
Creación de un archivo con datos mejorados
El código siguiente toma la salida creada en la celda de código anterior y crea un nuevo archivo CSV en el almacén de lago de datos denominado SnapRoadResponses.csv. Este nuevo archivo de datos contiene coordenadas GPS actualizadas que se alinean con la carretera adecuada, también incluye nombres de calle y límites de velocidad cuando están disponibles. SnapRoadResponses.csv se importará en un centro de eventos y se usará para crear un objeto visual de mapa más adelante en este tutorial.
Mantenga el puntero justo debajo de la celda usada para Mejorar con Ajustar a carretera en el paso anterior. Las opciones aparecen para agregar código o markdown. Seleccione código para agregar otra celda de código al cuaderno.
Una vez creada la nueva celda, agregue el código siguiente.
lakehouseFilePath = "/lakehouse/default/Files/" #execute snap to road outputFilePath = lakehouseFilePath + "SnapRoadResponses" + ".csv" df = mockdata_df.sort_values(by='timeStamp').reset_index(drop=True) process_route(df, outputFilePath)Ejecute el código seleccionando la flecha de ejecución. Esto guarda SnapRoadResponses.csv con coordenadas GPS actualizadas en el almacén de lago de datos.
Sugerencia
Si el nuevo archivo no aparece después de ejecutar el código del cuaderno, es posible que tenga que actualizar el explorador.
Copiar ruta del archivo
La ruta de acceso ABFS a SnapRoadResponses.csv es necesaria más adelante en este tutorial al crear el centro de eventos. Para obtener la ruta de acceso de ABFS a este archivo, seleccione el botón de puntos suspensivos (...) situado junto al archivo y, a continuación, en el menú emergente, seleccione Copiar ruta de acceso ABFS. Una vez copiado, guárdelo para más adelante.
Creación de un centro de eventos y vínculo a datos en el almacén de lago de datos
Cree un centro de eventos para administrar los datos de telemetría de su flota o mover recursos. Una base de datos KQL se crea automáticamente de forma predeterminada. En este tutorial, importará los datos acoplados del almacén de lago de datos en la base de datos KQL. Para el análisis en tiempo real, agregue datos de streaming. Una vez cargados los datos, puede consultar los datos mediante el lenguaje de consulta Kusto en un conjunto de consultas KQL.
Vaya a la Mi área de trabajo y seleccione Nuevo elemento.
Cuando aparezca la pantalla Nuevo elemento, desplácese hacia abajo y seleccione Eventhouse.
En la pantalla Nuevo Eventhouse, escriba un nombre para el nuevo centro de eventos, como SnapToRoadDemo.
A continuación, vincule la instancia del almacén de lago de datos que creó anteriormente a su nuevo centro de eventos.
Seleccione el botón de puntos suspensivos junto al nuevo centro de eventos y, a continuación, Obtener datos > OneLake en el menú emergente.
Seleccione Nueva tabla, nómbrela GPSData y, a continuación, seleccione Siguiente.
Introduzca la ruta ABFS al archivo de datos del almacén de lago de datos (SnapRoadResponses.csv) en el control Archivo OneLake que guardó anteriormente y, a continuación, seleccione el signo más (+) para agregarlo a la lista.
Seleccione Siguiente.
Después de comprobar los datos en la pantalla de Inspeccionar los datos, seleccione Finalizar.
Seleccione Cerrar para cerrar la página Resumen.
El centro de eventos debe crearse y contener los datos GPS.
Creación de un panel en tiempo real
Se puede crear un panel en tiempo real para conectarse al conjunto de datos en el centro de eventos. La entrada de este tutorial es datos estáticos, no una secuencia en tiempo real, pero los iconos del panel, como el objeto visual de Azure Maps, se pueden usar para la representación y el análisis visuales.
Agregar origen de datos
Vaya a la Mi área de trabajo y seleccione Nuevo elemento.
Cuando aparezca la pantalla Nuevo elemento, busque o desplácese hacia abajo y seleccione Panel en tiempo real.
En la pantalla Nuevo panel de control en tiempo real, introduzca el nombre SnapToRoadDashboard y seleccione Crear.
En la nueva pantalla Panel en tiempo real, seleccione Nuevo origen de datos.
Seleccione el botón Agregar y, a continuación, seleccione Centro de datos OneLake.
Seleccione el origen de datos y, después, Conectar.
Escriba un Nombre para mostrar y, a continuación, seleccione Agregar.
Cierre el panel Orígenes de datos.
Ahora que ha agregado el origen de datos para el panel en tiempo real, puede agregar una consulta y un objeto visual de mapa.
Adición de un objeto visual de consulta y asignación
Seleccione Agregar icono.
Escriba
GPSDataen la consulta y seleccione Ejecutar. Una vez que haya comprobado que la consulta funciona, seleccione Agregar objeto visual.En el panel Formato visual, seleccione Mapa del desplegable Tipo de objeto visual.
A continuación, establezca los valores en la sección Datos:
Configuración de datos valor Definir por ubicación Latitud y longitud Columna de latitud Latitud (número real) Columna de longitud Longitud (número real) Actualice la tarjeta de información del mapa seleccionando un valor del desplegable Columna de etiqueta. Seleccione SpeedLimitInKilometersPerHour.
Seleccione Aplicar cambios.
Aparece el objeto visual de mapa. Puede seleccionar cualquier punto del mapa para obtener las coordenadas y Límite de velocidad en kilómetros por hora de esa ubicación.
Pasos siguientes
Para más información sobre los cuadernos de Microsoft Fabric:
En este tutorial se creó un panel para el análisis de rutas posteriores al viaje. Para obtener una guía paso a paso para crear paneles en tiempo real en Microsoft Fabric: