Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Mappe di Microsoft Fabric offre visualizzazioni e analisi geospaziali per fornire informazioni dettagliate interattive da dati spaziali in tempo reale e cronologici.
In questa esercitazione, un coordinatore operativo di un'azienda di servizi elettrici usa Microsoft Fabric Maps per creare e gestire gli ordini di lavoro di riparazione quando vengono segnalate interruzioni o guasti agli asset. Lo scenario è incentrato sull'individuazione dei clienti interessati, sulla visualizzazione degli ordini di lavoro attivi in tempo reale e sull'invio efficiente degli equipaggi per il ripristino del servizio.
Questa esercitazione illustra come vengono mappate le posizioni dei clienti, gli ordini di lavoro in tempo reale vengono visualizzati sulla mappa e viene calcolato un itinerario ottimale usando l'API Indicazioni stradali di Mappe di Azure. L'esercitazione si conclude con un itinerario ottimizzato visualizzato sulla mappa.
Le mappe dell'infrastruttura vengono eseguite all'interno di Fabric Real-Time Intelligence, che inseriscono dati di telemetria in streaming usando Eventstream e Eventhouse per il monitoraggio in tempo reale. I completamenti dell'ordine di lavoro e i risultati operativi vengono archiviati in OneLake, dove possono essere usati per l'ottimizzazione e l'analisi delle route visualizzate sulla mappa.
In questa esercitazione si eseguiranno le seguenti attività:
- Crea un lakehouse e carica i dati degli ordini di lavoro di esempio.
- Configurare un flusso di eventi per scrivere i dati degli ordini di lavoro in una eventhouse.
- Creare una funzione Kusto per estrarre le coordinate dei clienti dai dati degli ordini di lavoro importati.
- Creare una mappa e aggiungere la funzione come livello della mappa.
- Calcolare un percorso ottimale usando l'API Indicazioni stradali di Mappe di Azure.
- Aggiungere il percorso ottimizzato alla mappa come livello.
- Configurare le impostazioni mappa e livello.
Prerequisiti
Prima di iniziare questo tutorial, consulta i tutorial diReal-Time Intelligence per familiarizzare con i concetti e i flussi di lavoro fondamentali.
Se non hai una sottoscrizione di Azure, crea un account gratuito.
Una chiave di sottoscrizione di Mappe di Azure.
Un account Fabric. Per altre informazioni su Microsoft Fabric, vedere Che cos'è Microsoft Fabric?.
Autorizzazione per creare Eventstream, Eventhouse (database KQL), Lakehouse, Notebooks e elemento mappa. Per altre informazioni, vedere Informazioni sulle impostazioni del tenant.
Un'area di lavoro con una capacità abilitata a Microsoft Fabric. Per maggiori informazioni sulla creazione di uno spazio di lavoro, vedi Crea uno spazio di lavoro.
Conoscenza di base di Fabric Lakehouse, un repository di dati per l'archiviazione, la gestione e l'analisi di dati strutturati e non strutturati in un'unica posizione. Per informazioni sulla creazione di un lakehouse, vedere Creare una lakehouse in Microsoft Fabric.
Conoscenza di base di Fabric Eventhouse, usata per inserire, elaborare e analizzare i dati quasi in tempo reale. Per informazioni sulla creazione di una eventhouse, vedere Creare una eventhouse.
Conoscenza di base delle funzioni definite dall'utente kusto.
Una comprensione di base di come utilizzare i notebook Microsoft Fabric.
Creare un lakehouse e caricare i dati dell'ordine di lavoro di esempio
Per simulare una sorgente di streaming in tempo reale, il notebook utilizza nei passaggi seguenti i dati di esempio caricati in un "lakehouse". Nell'ambiente di produzione, questi dati verrebbero trasmessi anziché statici.
Creare il file di dati dell'ordine di lavoro
Il file di dati dell'ordine di lavoro contiene record di ordine di lavoro di esempio usati in questa esercitazione per simulare un'origine di streaming in tempo reale. Dopo aver creato il file, importalo in una casa sul lago nel passaggio successivo.
Copia e incolla il contenuto seguente in un file di testo, poi salvalo come WorkorderLocations.csv. Usi questo file nel passo successivo.
WorkorderID,Latitude,Longitude
100,48.22610712,16.32977412
101,48.23519063,16.37364699
102,48.19785896,16.38669028
103,48.18125837,16.37068261
107,48.15151126,16.41766590
108,48.20290349,16.32492121
104,48.23400591,16.4563533
105,48.18145603,16.40506946
106,48.16366378,16.36001083
Creare un lakehouse e importare il file di dati dell'ordine di lavoro
Crea una nuova casa sul lago per i dati degli ordini di lavoro in arrivo e importa il file di localizzazione degli ordini di lavoro.
- Dal tuo spazio di lavoro, seleziona Nuovo oggetto, inserisci lakehouse nella casella di ricerca e selezionalo per creare un nuovo lakehouse.
- Immettere un nome WorkorderLocationsLakehouse e selezionare Crea.
- Nella nuova casa sul lago, seleziona Carica file e carica il fileWorkorderLocations.csv .
- Nel nuovo lakehouse selezionare il riquadro Esplora sul lato sinistro della schermata.
- Nella sezione File di Explorer selezionare WorkorderLocations.csv per visualizzare il file caricato.
- Nelle impostazioni di visualizzazione selezionare Prima riga come intestazione.
- (Facoltativo) Nell'elenco a discesa della visualizzazione selezionare Visualizzazione tabella.
Creare un flusso di eventi e scrivere dati in una eventhouse
In questa sezione viene progettato un flusso eventstream usando un endpoint personalizzato e si inviano dati usando un notebook per simulare lo streaming in tempo reale.
Microsoft Fabric Eventstream è un servizio di streaming dati in tempo reale che ti permette di acquisire, elaborare e instradare i dati degli eventi all'interno dell'ecosistema Microsoft Fabric. Offre un'esperienza senza codice per la creazione di flussi di lavoro basati su eventi, consentendo una perfetta integrazione dei dati in tempo reale da varie origini e il routing a più destinazioni. Per maggiori informazioni sulle fonti di dati supportate o su come connettersi a un endpoint personalizzato, consulta la Panoramica degli eventstream Microsoft Fabric.
Assorbendo i dati dell'eventstream in una casa evento, si rendono disponibili gli eventi in streaming per l'elaborazione con Kusto, dove si possono trasformarli e analizzarli in tempo reale tramite tabelle o funzioni. Per altre informazioni, vedere Informazioni generali su Eventhouse.
Creare un flusso di eventi e una casa degli eventi
Nell'area di lavoro selezionare Nuovo elemento e immettere eventstream nella casella di ricerca.
Selezionare Flusso di eventi.
Nella finestra di dialogo Nuovo Eventstream , inserisci un Nome: "WorkordersEventstream", e poi seleziona Crea.
Nella schermata Progetta un flusso per ingerire, trasformare e instradare gli eventi di streaming , seleziona Usa endpoint personalizzato.
Nella finestra di dialogo dell'endpoint personalizzato Aggiungi origine, selezionare Aggiungi.
Il flusso di eventi viene ora creato. Aggiungere quindi una eventhouse come destinazione.
Nel nodo WorkordersEventstream della finestra di progettazione eventstream selezionare Eventhouse dall'elenco a discesa Trasforma eventi o aggiungi destinazione .
Il riquadro di configurazione della destinazione eventhouse viene visualizzato sul lato destro della schermata. Compilare i dettagli richiesti come indicato di seguito, quindi selezionare Salva:
- Modalità di inserimento dati: impostare su Elaborazione eventi prima dell'inserimento.
- Nome destinazione: impostare su WorkordersEventhouse.
- Area di lavoro: elenco a discesa che mostra il nome dell'area di lavoro.
- Eventhouse: selezionare Crea nuovo e creare una casa eventi denominata WorkordersEventhouse.
- Database KQL: selezionare WorkordersEventhouse.
- Tabella destinazione KQL: selezionare il collegamento Crea nuovo e creare una nuova tabella denominata Workorders.
- Formato dati di input: selezionare Json.
- Attiva l'ingestione dopo aver aggiunto la fonte dei dati: seleziona la casella.
Dopo aver aggiunto la eventhouse come destinazione, selezionare Pubblica per pubblicare il nuovo flusso di eventi.
Screenshot della finestra di progettazione Eventstream che illustra un flusso con l'origine CustomEndpoint-Workorders connessa a un nodo Workorders-stream, che si collega alla destinazione WorkordersEventhouse. Il pulsante Pubblica è evidenziato nell'angolo superiore destro della barra degli strumenti. Un banner della modalità di modifica indica che le modifiche vengono pubblicate al momento del rilascio.
Ottenere le chiavi necessarie di firma di accesso condiviso (SAS) per l'autenticazione
Sono necessari i valori nome dell'Event hub e stringa di connessione - chiave primaria dalla sezione Autenticazione SAS Key nel codice del notebook.
Seleziona il tile di origine dell'endpoint personalizzato appena aggiunto.
Nel riquadro Dettagli, selezionare Autenticazione con chiave SAS.
Copiare i due valori seguenti e salvarli per usarli nel codice del notebook:
- Nome hub eventi: usato per la variabile EVENT_HUB_NAME .
- Chiave primaria della stringa di connessione: usata per la variabile CONNECTION_STR .
Screenshot che mostra il progettista Eventstream con l'opzione di Autenticazione con chiave SAS selezionata nel riquadro dei dettagli che evidenzia i campi Nome hub eventi e Stringa di connessione - chiave primaria utilizzati nel codice del notebook in un passaggio successivo di questo tutorial.
Simulare l'inserimento in tempo reale usando un notebook
In questa sezione viene creato un notebook connesso alla lakehouse creata in precedenza, quindi si usa il codice fornito per leggere i dati CSV e inviare eventi al flusso di eventi. Questo processo simula l'ingestione di dati in tempo reale. Per le demo, puoi eseguire il notebook manualmente o programmarlo per l'esecuzione periodica.
Creare un notebook nell'area di lavoro Fabric
Creare un notebook con codice per importare il file del percorso dell'ordine di lavoro dal lakehouse nel flusso di eventi creato nella sezione precedente. Questo simula una sorgente di streaming in tempo reale, che in un ambiente di produzione trasmette i dati invece di utilizzare dati statici.
Nell'area di lavoro selezionare Nuovo elemento e immettere notebook nella casella di ricerca.
Selezionare Notebook.
Nella finestra di dialogo Nuovo notebook immettere WorkorderLocations nel campo Nome e quindi selezionare Crea.
Per connettere il notebook al lakehouse, selezionare Dal catalogo OneLake dall'elenco a discesa Aggiungi elementi dati.
Screenshot del riquadro Microsoft Fabric Explorer che mostra la scheda Elementi dati selezionata con un messaggio Nessuna origine dati aggiunta e un'icona di cartella vuota. Sotto il messaggio è presente un pulsante a discesa Aggiungi elementi di dati espanso per visualizzare tre opzioni di menu: Da OneLake catalog con un'icona di database, Da Real-Time hub con un'icona a fulmine, e New lakehouse con un segno più. L'opzione Da OneLake catalog è evidenziata con un bordo scuro che indica la selezione.
Selezionare WorkorderLocationsLakehouse dal catalogo OneLake e selezionare il pulsante Connetti . Questa casa sul lago è quella che hai costruito in precedenza.
Dopo aver creato il notebook e collegatolo al tuo lakehouse, incolla il seguente codice nella prima cella ed eseguilo per installare l'Hub eventi di Azure SDK:
# Install Azure Event Hubs SDK (only needed once per environment) %pip install azure-eventhubSelezionare + Codice per creare una nuova cella nel notebook.
Selezionare la nuova cella e immetterne il codice seguente:
from azure.eventhub import EventHubProducerClient, EventData import pandas as pd import json import time # Replace with your actual connection string and Event Hub name CONNECTION_STR = "" # Connection string-primary key EVENT_HUB_NAME = "" # Event hub name producer = EventHubProducerClient.from_connection_string(conn_str=CONNECTION_STR, eventhub_name=EVENT_HUB_NAME) df = spark.read.csv("Files/WorkorderLocations.csv", header=True, inferSchema=True) pdf = df.toPandas() total_records = len(pdf) for index, row in pdf.iterrows(): # Convert row to dictionary row_dict = row.to_dict() # Truncate coordinates to 5 decimal digits if 'lat' in row_dict: row_dict['Latitude'] = round(float(row_dict['Latitude']), 5) if 'lon' in row_dict: row_dict['Longitude'] = round(float(row_dict['Longitude']), 5) # Serialize to JSON payload = json.dumps(row_dict) # Send to Event Hub event_data = EventData(payload) with producer: producer.send_batch([event_data]) # Wait 100ms time.sleep(0.1)Aggiungi i valori delle variabili CONNECTION_STR e EVENT_HUB_NAME che hai trovato nella sezione precedente intitolata Ottieni le chiavi di autenticazione SAS obbligatorie.
Esegui il codice del notebook. Questa operazione crea la tabella Workorders nel database KQL nella eventhouse WorkordersEventhouse.
Creare una funzione Kusto e aggiungerla come livello mappa
In questa sezione, si crea una funzione di Kusto che recupera i dati correnti sulla posizione dell'ordine di lavoro dalla tabella Workorders nel tuo sistema di eventi, e quindi si usa tale funzione come origine dati per una mappa di Fabric Maps. La funzione consente alla mappa di visualizzare gli ordini di lavoro attivi come livello, fornendo una visualizzazione visiva dei processi che devono essere pianificati e assegnati agli equipaggi sul campo.
Creare una funzione Kusto
Dalla tua eventhouse (database KQL):
Aprire il database KQL associato al centro eventi.
Selezionare Funzioni e quindi Nuova funzione.
Questo passaggio crea una query che, una volta eseguita, crea una nuova funzione chiamata WorkordersFunction.
Immettere la query seguente:
.create-or-alter function WorkordersFunction() { Workorders | project Latitude, Longitude, WorkorderID }Esegui la query.
1 & 2 : query KQL usata per creare la funzione WorkordersFunction .
3 - La funzione WorkordersFunction appena creata.
Nella cartella Functions, seleziona WorkordersFunction, poi Anteprima i risultati per verificare che restituisca i record degli ordini di lavoro con campi di posizione validi.
Questa funzione funge da origine dati riutilizzabile per un livello dati di mappa di Fabric Maps, che vedremo nella sezione successiva.
Creare una mappa e aggiungere la funzione come livello
In questa sezione, crei una mappa di Fabric Maps e utilizzi la funzione KQL creata in precedenza come livello dati. La mappa è configurata con un intervallo di aggiornamento in modo che gli aggiornamenti automatici dei dati degli ordini di lavoro in streaming forniscano una visualizzazione spaziale quasi in tempo reale degli ordini di lavoro attivi. Si rinomina quindi il livello e si modificano le relative impostazioni per controllare la modalità di visualizzazione dei dati sulla mappa. Questo contesto geospaziale live consente ai dispatcher di monitorare l'attività sul campo, valutare la domanda tra aree di servizio e prendere decisioni di routing e assegnazione più informate.
Creare una nuova mappa
- Nell'area di lavoro selezionare Nuovo elemento.
- Nel pannello Nuovo oggetto , inserisci mappa nel campo di ricerca e seleziona Mappa.
- Nella finestra di dialogo Nuova mappa immettere WorkordersMap nel campo Nome e selezionare Crea.
Aggiungi eventhouse alla mappa
Nel riquadro Esplora, selezionare Elementi Fabric e quindi il pulsante Aggiungi.
Selezionare il database KQL dal menu visualizzato quando si seleziona il pulsante Aggiungi .
Nel catalogo OneLake selezionare l'evento WorkordersEventhouse creato in precedenza, quindi selezionare Aggiungi.
Suggerimento
Se ricevi un errore, ad esempio il database KQL ha un'etichetta protetta che limita l'accesso. Per assistenza contatta il proprietario del tuo database, controlla l'etichetta di sensibilità sul database KQL, poiché può limitare l'accesso. Per ulteriori informazioni, vedere Applicare etichette di riservatezza agli elementi di Fabric.
Mostra funzione sulla mappa
Nel riquadro Explorer della nuova mappa selezionare l'evento WorkordersEventhouse aggiunto nel passaggio precedente.
Vai alla funzione KQL WorkordersFunction e seleziona l'ellisse (...) per aprire il menu.
Selezionare Mostra sulla mappa dal menu popup.
Viene visualizzata la finestra di dialogo Visualizza dati eventhouse sulla mappa con i dati di anteprima selezionati. Non sono necessarie modifiche. Verificare che sia corretto, quindi selezionare Avanti
Nel passaggio Imposta intervallo di aggiornamento dati e geometria impostare i campi come segue, quindi selezionare Avanti:
Nome livello dati: WorkordersFunction
Posizione della colonna di geometria: i dati di latitudine e longitudine sono in colonne separate
Colonna Latitudine: Latitudine
Colonna Longitudine: Longitudine
Intervallo di aggiornamento dati: 5 minuti
Nel passo Revisione e aggiungi alla mappa , rivedi le impostazioni e seleziona Aggiungi alla mappa.
I risultati delle funzioni ora appaiono nella mappa aggiornata.
Genera un percorso ottimizzato con più fermate con l'API Mappe di Azure Route Directions
In questa sezione creerai un nuovo notebook che recupera le coordinate dell'ordine di lavoro dal database KQL e chiama l'API REST delle indicazioni stradali di Mappe di Azure. Attivi la capacità di ottimizzazione multi-stop del servizio per determinare l'ordine più efficiente per visitare ogni sede e restituire la geometria del percorso in quella sequenza ottimizzata. Usi questo output più avanti per visualizzare un percorso tecnico consigliato sulla mappa.
Per completare questa sezione, è necessario un account Azure con un account di Mappe di Azure e una chiave di sottoscrizione. Se non si ha un account Azure, crearne uno gratuito. Per altre informazioni sulla creazione di un account mappe di Azure, vedere Creare un account mappe di Azure. Per altre informazioni su come ottenere una chiave di sottoscrizione di Mappe di Azure, vedere Ottenere la chiave di sottoscrizione per l'account nell'argomento di avvio rapido di Mappe di Azure.
Creare un notebook nell'area di lavoro di Fabric che recupera il percorso ottimale
Dall'interno dell'area di lavoro aprire la casa eventi WorkordersEventhouse creata in precedenza.
Nel pannello di navigazione sinistro sotto Database KQL, selezionare WorkordersEventhouse.
La barra del menù in alto mostra ora un'opzione per Notebook. Selezionarlo per creare un nuovo notebook.
Nel nuovo notebook salvare il valore per la variabile kustoUri . Questo valore viene usato nel nuovo codice del notebook creato nel passaggio 6.
Connetti il notebook a WorkorderLocationsLakehouse selezionando Dal catalogo OneLake dall'elenco a discesa Aggiungi elementi di dati.
Annotazioni
Quando si crea un lakehouse in Microsoft Fabric, viene creato automaticamente un endpoint di analisi SQL con lo stesso nome.
Entrambi gli elementi vengono visualizzati nell'area di lavoro, ma servono scopi diversi:
- Lakehouse viene usato per notebook, elaborazione Spark e inserimento dati.
- L'endpoint di analisi SQL è un'interfaccia di query T-SQL di sola lettura sui dati del Lakehouse.
Quando allegi o crei un quaderno, assicurati di selezionare il Lakehouse, non l'endpoint SQL analytics. Se WorkorderLocationsLakehouse viene visualizzato due volte nel catalogo OneLake, filtrare in base a Lakehouse .
Una volta creato il nuovo quaderno e collegato al tuo lakehouse, inserisci il seguente codice nella seconda cella del tuo quaderno, sostituendo il codice predefinito. Poi aggiungi i valori delle variabili che hai salvato nel passaggio precedente:
import os, json, requests from pyspark.sql import types as T from pyspark.sql.functions import col # ---- Configuration ---- AZMAPS_SUBSCRIPTION_KEY = os.environ.get( 'AZMAPS_SUBSCRIPTION_KEY', '<Your Azure Maps subscription key>' ) API_VERSION = '2025-01-01' BASE_URL = 'https://atlas.microsoft.com' # KQL query that invokes the stored function kustoQuery = """WorkordersFunction()""" # Your Kusto URI kustoUri = "" # Your KQL database name database = "WorkordersEventhouse" # The access credentials. accessToken = mssparkutils.credentials.getToken(kustoUri) kustoDf = spark.read\ .format("com.microsoft.kusto.spark.synapse.datasource")\ .option("accessToken", accessToken)\ .option("kustoCluster", kustoUri)\ .option("kustoDatabase", database)\ .option("kustoQuery", kustoQuery).load() # Write transformed response to a new file so the raw output is preserved OUTPUT_GEOJSON_PATH_TRANSFORMED = ( 'Files/OptimizedRoute.geojson' # GeoJSON output file ) # ---- Read Stores from KQL database table ---- stores_df = spark.read\ .format("com.microsoft.kusto.spark.synapse.datasource")\ .option("accessToken", accessToken)\ .option("kustoCluster", kustoUri)\ .option("kustoDatabase", database)\ .option("kustoQuery", kustoQuery).load()\ .select( col("WorkorderID").alias("workorder_id"), col("Latitude").alias("lat"), col("Longitude").alias("lon") ) # Ordered waypoints: origin first, then the rest by workorder_id # (API will re-order when optimizeWaypointOrder=True) stores_pd = stores_df.orderBy('workorder_id').toPandas() waypoints_lonlat = [[float(r['lon']), float(r['lat'])] for _, r in stores_pd.iterrows()] # ---- Build Directions request body (GeoJSON) ---- features = [] for idx, (lon, lat) in enumerate(waypoints_lonlat): features.append({ "type": "Feature", "geometry": {"type": "Point", "coordinates": [lon, lat]}, "properties": {"pointIndex": idx, "pointType": "waypoint"} }) dir_body = { "type": "FeatureCollection", "features": features, "optimizeRoute": "fastestWithTraffic", "routeOutputOptions": ["routePath"], # ensures route path geometry in response "travelMode": "truck", "optimizeWaypointOrder": True } # ---- Call Azure Maps Directions (POST) ---- url = f"{BASE_URL}/route/directions" params = {"api-version": API_VERSION} headers = { "Accept": "application/geo+json", "Content-Type": "application/geo+json", "subscription-key": AZMAPS_SUBSCRIPTION_KEY } resp = requests.post(url, params=params, data=json.dumps(dir_body), headers=headers) resp.raise_for_status() resp_json = resp.json() # exact payload as returned by the API # ---- Transform: move order.optimizedIndex -> properties.optimizedIndex for all Waypoint features to add as a data label in the map---- for feat in resp_json.get("features", []): props = feat.get("properties") or {} if props.get("type") == "Waypoint": order = props.get("order") or {} opt_idx = order.pop("optimizedIndex", None) if opt_idx is not None: props["optimizedIndex"] = opt_idx + 1 # reassign possibly-updated order (still contains inputIndex if present) props["order"] = order feat["properties"] = props # ---- Write transformed GeoJSON ---- from notebookutils import mssparkutils mssparkutils.fs.put(OUTPUT_GEOJSON_PATH_TRANSFORMED, json.dumps(resp_json), True) print(f"Transformed Directions GeoJSON (waypoints carry properties.optimizedIndex) written to {OUTPUT_GEOJSON_PATH_TRANSFORMED}")Immettere la chiave di sottoscrizione di Mappe di Azure nel codice del notebook per la variabile AZMAPS_SUBSCRIPTION_KEY sostituendo "<La chiave> di sottoscrizione di Mappe di Azure" con la chiave di sottoscrizione di Mappe di Azure.
Importante
In questo esempio la chiave di accesso di Mappe di Azure viene incorporata nel codice per semplicità. Non impostare segreti hardcoded negli ambienti di produzione. Archiviare e gestire i segreti in modo sicuro usando Azure Key Vault e farvi riferimento in fase di esecuzione. Per altre informazioni, vedere Procedure consigliate per la protezione dei segreti.
Selezionare il pulsante Salva con nome nel menu e salvare il notebook come OptimizeRoute.
Eseguire il notebook per creare il file OptimizedRoute.geojson nella directory Files del tuo lakehouse.
Aggiungere lakehouse alla mappa
- Nel riquadro Esplora, selezionare Elementi Fabric e quindi il pulsante Aggiungi.
- Selezionare Lakehouse dal menu visualizzato quando si seleziona il pulsante Aggiungi .
- Dal catalogo OneLake selezionare il lakehouse WorkorderLocationsLakehouse creato in precedenza, quindi selezionare Aggiungi.
Mostra il percorso ottimizzato sulla mappa
Nella tua nuova mappa, nel riquadro Explorer, seleziona il lakehouse WorkorderLocationsLakehouse che hai aggiunto nel passaggio precedente.
Passare a OptimizedRoute.geojson nella directory Files del lakehouse e selezionare l'icona di ellisse (...) per visualizzare il menu popup.
Selezionare Mostra sulla mappa dal menu popup.
Nel pannello Livelli dati disattivare la visibilità per il livello WorkordersFunction .
Al termine, il nuovo livello mappa viene visualizzato nella mappa di Fabric Maps.
Impostazioni livello mappa
Fabric Maps offre una serie di impostazioni di livello che controlli tu come i dati vengono presentati sulla mappa. In questa sezione si personalizza il livello creato dal processo di ottimizzazione della route rinominando il livello, modificando lo stile dei simboli e configurando le etichette in base ai valori dei campi. Queste impostazioni consentono di migliorare la leggibilità e semplificare l'interpretazione immediata dei dati degli ordini di lavoro.
Rinominare il livello
Nel pannello dei livelli dati , apri il menu delle opzioni OptimizedRoute selezionando l'ellisse (...).
Selezionare Rinomina.
Rimuovere le etichette a livello di mappa
Quando attivi o disattivi Etichette a livello di mappa, questo influisce sulle etichette del testo della basemap. Queste etichette provengono dallo stile della mappa sottostante e includono:
- Nomi di città e paesi
- Nomi paese e area geografica
- Nomi delle strade e delle autostrade
- Nomi delle caratteristiche dell'acqua (fiumi, laghi, oceani)
- Altri nomi di località amministrative o geografiche
Quando le etichette non vengono visualizzate, la mappa di base viene visualizzata "più pulita" e più minima, senza che venga eseguito il rendering del testo sul nome del posto nella mappa di base.
Per disattivare le etichette della mappa di base:
Apri la mappa in Fabric Maps.
Selezionare Impostazioni mappa dalla barra dei menu.
Trova la casella Etichette e deselezionala.
Per maggiori informazioni sulle impostazioni della mappa in Fabric Maps, consulta Configura impostazioni della basemap.
Aggiungere etichette dati al livello
Le etichette dati sono annotazioni guidate dai dati provenienti da uno o più campi nel set di dati del livello. Sono collegati direttamente alle funzionalità della mappa a livello di livello, ad esempio i punti sulla mappa che rappresentano le posizioni degli ordini di lavoro. Per maggiori informazioni sulle etichette dati di Fabric Maps, consulta Impostazioni delle etichette dati.
Seleziona Percorso Ottimizzato nel pannello dei livelli dati. Il pannello delle impostazioni del percorso ottimizzato appare sul lato destro dello schermo.
Nel pannello Impostazioni di Rotta Ottimizzata, seleziona > impostazioni dell'etichetta dati.
Selezionare l'interruttore Abilita etichette dati per attivare le etichette dati. Vengono visualizzate altre impostazioni delle etichette di dati.
Modificare le seguenti impostazioni dell'etichetta dati:
- Etichette dati: optimizedIndex
- Colore del testo: bianco
- Il cursore Dimensioni testo impostato su 20
- Colore tratto testo: Nero
- Cursore della larghezza del tratto di testo impostato su 2
Riassunto
Questo tutorial ti ha mostrato come costruire uno scenario di routing end-to-end in tempo reale per ordini di lavoro usando Microsoft Fabric Real-Time Intelligence e Fabric Maps. Si ingeriscono, si trasforma e si interrogano i dati degli ordini di lavoro in streaming usando KQL, e poi si visualizzano i dati su una mappa per creare una visuale dinamica e in continuo aggiornamento delle posizioni degli ordini di lavoro. Integrando la logica di routing e i calcoli dei percorsi ottimali, la soluzione mostra in che modo l'analisi geospaziale in tempo reale può aiutare i dispatcher e i team operativi sul campo a prendere decisioni più veloci e informate.
Puoi estendere questo schema ad altri scenari basati sulla localizzazione come il tracciamento delle flotte, il monitoraggio degli asset e la risposta agli incidenti. Combinando i dati basati su eventi, l'analisi basata su KQL e la visualizzazione basata su mappe, Microsoft Fabric consente una transizione dai dati di streaming non elaborati alle informazioni geografiche utilizzabili quasi in tempo reale.
Passaggi successivi
Per maggiori informazioni sugli articoli di Fabric Maps trattati in questo tutorial, vedi: