Opas: Rakenna reaaliaikainen työmääräysten reititys Fabric Mapsilla

Microsoft Fabric Maps tarjoaa paikkatietovisualisointia ja analyysiä, joka tarjoaa toiminnallisia oivalluksia reaaliaikaisesta ja historiallisesta spatiaalisesta datasta.

Tässä opetusohjelmassa sähköverkon kenttäkeskus käyttää Microsoft Fabric Mapsia luodakseen ja hallitakseen korjausmääräyksiä, kun sähkökatkoja tai omaisuusvikkoja raportoidaan. Skenaario keskittyy asiakkaiden paikantamiseen, aktiivisten työtilausten visualisointiin reaaliajassa sekä henkilöstön tehokkaaseen lähettämiseen palvelun palauttamista varten.

Tämä opas osoittaa, miten asiakkaiden sijainnit kartoitetaan, reaaliaikaiset työtilaukset näkyvät kartalla ja optimaalinen reitti lasketaan Azure Maps Route Directions API:n avulla. Opastus päättyy kartalla näkyvään optimoituun reittiin.

Fabric Maps toimii Fabric Real-Time Intelligencen sisällä ja vastaanottaa suoratoistotelemetriaa Eventstreamin ja Eventhousen avulla reaaliaikaiseen seurantaan. Työmääräysten suorittaminen ja operatiiviset tulokset tallennetaan OneLakeen, jossa niitä voidaan käyttää reittien optimointiin ja analytiikkaan, jotka näkyvät kartalla.

Tässä opetusohjelmassa voit tehdä seuraavaa:

  • Luo järvenrakennus ja lataa näytetyömääräystiedot.
  • Aseta tapahtumavirta kirjoittamaan työmääräystiedot tapahtumatalolle.
  • Luo Kusto-funktio, joka poimii asiakaskoordinaatit tuodusta työtilaustiedoista.
  • Luo kartta ja lisää funktio karttakerrokseksi.
  • Laske optimaalinen reitti Azure Maps Route Directions API:n avulla.
  • Lisää optimoitu reitti karttaan kerroksena.
  • Määritä kartta- ja kerrosasetukset.

Ennakkovaatimukset

Ennen tämän tutoriaalin aloittamista on hyödyllistä tutustua Real-Time Intelligence -tutoriaaleihin , jotta tutustut ydinkäsitteisiin ja työnkulkuihin.

Luo järvirakennus ja lataa näytetyömääräystiedot

Reaaliaikaisen suoratoistolähteen simulointiin notebook käyttää seuraavissa vaiheissa näytedataa, joka on ladattu järventaloon. Tuotannossa nämä tiedot striimattaisiin staattisen sijaan.

Luo työmääräystietotiedosto

Työmääräystietotiedosto sisältää näytteitä työmääräystietueista, joita käytetään tässä opetusohjeessa simuloimaan reaaliaikaista suoratoistolähdettä. Tiedoston luomisen jälkeen tuot sen seuraavassa vaiheessa järvimajaan.

Kopioi ja liitä seuraava sisältö tekstitiedostoon ja tallenna se sittenWorkorderLocations.csv. Käytät tätä tiedostoa seuraavassa vaiheessa.

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

Luo järvitalo ja tuo työmääräystiedosto

Luo uusi järvitalo saapuville työmääräystiedoille ja tuo aiemmin luotu työmääräyspaikkatiedosto.

  1. Valitse työtilastasi Uusi kohde, kirjoita hakukenttään lakehouse ja valitse se luodaksesi uuden järvimajon.
  2. Syötä nimi WorkorderLocationsLakehouse ja valitse Luo.
  3. Uudessa järvimajassa valitse Lataa tiedostoja ja lataa edellisessä vaiheessa luotuWorkorderLocations.csv tiedosto.
  4. Uudessa järvimajassa valitse näytön vasemmasta reunasta Explorer-ruutu .
  5. Selaimen Tiedostot-osiossa valitse WorkorderLocations.csv nähdäksesi lataamasi tiedoston.
  6. Näkymäasetuksista valitse Ensimmäinen rivi otsikoksi.
  7. (Valinnainen) Valitse näkymän pudotusvalikosta Taulukkonäkymä.

Kuvakaappaus WorkorderLocations.csv-tiedostosta, kun se on tuotu järvenmajaan.

Luo tapahtumavirta ja kirjoita data tapahtumataloon

Tässä osiossa suunnittelet tapahtumavirran kulun mukautetun päätepisteen avulla ja lähetät dataa notebookilla simuloidaksesi reaaliaikaista striimausta.

Microsoft Fabric Eventstream on reaaliaikainen datan suoratoistopalvelu, jonka avulla käyttäjät voivat vastaanottaa, käsitellä ja reitittää tapahtumadataa Microsoft Fabric -ekosysteemissä. Se tarjoaa koodittoman kokemuksen tapahtumapohjaisten työnkulkujen rakentamiseen, mahdollistaen saumattoman reaaliaikaisen datan integroinnin eri lähteistä ja reitittämisen useisiin kohteisiin. Lisätietoja tuetuista tietolähteistä tai siitä, miten yhdistää mukautettuun päätelaitteeseen, löydät Microsoft Fabric -tapahtumavirtojen yleiskatsauksesta.

Tapahtumavirran dataa syöttämällä tapahtumataloon suoratoistotapahtumat tulevat saataville käsiteltäväksi Kuston avulla, jossa niitä voidaan muuntaa ja analysoida reaaliajassa taulukoiden tai funktioiden avulla. Lisätietoja on kohdassa Eventhousen yleiskatsaus.

Luo tapahtumavirta ja tapahtumatalo

  1. Valitse työtilastasi Uusi kohde ja syötä eventstream hakukenttään.

  2. Valitse Eventstream.

  3. Uuden tapahtumavirran valintaan syötä nimi: "WorkordersEventstream" ja valitse sitten Luo.

  4. Suunnittele virtaus, joka syöttää sisään, muuntaa ja reitittää suoratoistotapahtumia, valitse Käytä mukautettua päätepistettä

    Kuvakaappaus Fabric-näytöstä Suunnittele flow to ingest, transform and route streaming events -näytöllä, jossa näkyy vaihtoehto Käytä mukautettua päätepistettä.

  5. Mukautetussa päätepisteessä Lisää lähdekoodi -valintaikkunassa valitse Lisää.

    Kuvakaappaus Microsoft Fabricin Custom Endpoint -kohdan Add source -valintaikkunasta, jossa näkyy leivänmurunavigointi, jossa Custom endpoint -nuoli WorkordersEventstream on ylhäällä. Valintaikkunassa on lähdenimikenttä, jossa punainen tähti on merkitty vaadittuna ja sisältää tekstin CustomEndpoint-Source. Dialogin oikeassa alakulmassa korostetaan turkoosi Lisää-painike, joka osoittaa, että se tulisi valita ilman lisätoimintoja.

    Eventstream on nyt luotu. Seuraavaksi lisää tapahtumatalo määränpääksi.

  6. Eventstream-suunnittelijan WorkordersEventstream-solmusta valitse EventhouseTransform-tapahtumista tai lisää kohde-alasvetovalikko.

    Kuvakaappaus Microsoft Fabricin eventstream-suunnittelijasta, jossa näkyy vuokaavio, jossa CustomEndpoint-Source on yhdistetty WorkordersEventstream-solmuun. Pudotusvalikko laajennetaan Muunna-tapahtumista tai lisää kohde-ruudusta oikealla puolella, jolloin alareunassa näkyy Destinations-osio, jossa on useita vaihtoehtoja, mukaan lukien Eventhouse, joka on korostettu punaisella suorakulmiolla, joka osoittaa, että se tulisi valita.

  7. Eventhouse-kohdekonfiguraatiopaneeli näkyy näytön oikealla puolella. Täytä pyydetyt tiedot seuraavasti ja valitse sitten Tallenna:

    1. Datan vastaanottotila: Aseta tapahtuman käsittely ennen vastaanottoa.
    2. Kohteen nimi: Asetettu WorkordersEventhouse.
    3. Työtila: Pudotusvalikko, jossa näkyy työtilasi nimi.
    4. Eventhouse: Valitse Luo uusi ja luo tapahtumatalo nimeltä WorkordersEventhouse.
    5. KQL-tietokanta: Valitse WorkordersEventhouse.
    6. KQL-kohdetaulu: Valitse Luo uusi linkki ja luo uusi taulu nimeltä Työmääräykset.
    7. Syötedatan muoto: Valitse Json.
    8. Aktivoi syöttö tietolähteen lisäämisen jälkeen: rastita valintaruutu.

    Kuvakaappaus, jossa Eventhouse-kohdekonfiguraatiopaneeli näyttää datan vastaanottotilan, jossa Event processing before ingestion on valittu, kohdenimi asetettuna WorkordersEventhouse, Workspace-pudotusvalikko näyttää Työtilani, Eventhouse-pudotusvalikko, jossa näkyy WorkordersEventhouse ja Create new link, KQL-tietokannan pudotusvalikko, jossa näkyy WorkordersEventhouse, KQL Destination -taulukon pudotusvalikko, jossa näkyy New WorkordersEventhouse with Create new link, Activate ingestion lisäämällä tietolähteen valintaruudun rasti, ja vihreä Tallenna-painike alareunassa.

  8. Kun tapahtumatalo on lisätty kohteeksi, valitse Julkaise julkaistaaksesi uuden tapahtumavirtasi.

    Kuvakaappaus, jossa Eventstream-suunnittelija näyttää työnkulun, jossa CustomEndpoint-Workorders lähde on yhdistetty Workorders-stream-solmuun, joka yhdistyy WorkordersEventhouse-kohteeseen. Julkaise-painike on korostettu työkalupalkin oikeassa yläkulmassa. Muokkaustilan banneri tarkoittaa, että muutokset tulevat näkyviin julkaisun jälkeen.

Hanki tarvittavat SAS-avaimen tunnistautumisavaimet

Tarvitset Event Hubin nimen ja Connection stringin ensisijaiset avainarvotmuistikirjasi koodin SAS Key -tunnistautumisosiosta .

  1. Valitse juuri lisätty mukautettu päätepisteen lähdelaatta.

  2. Valitse Yksityiskohdat-paneelistaSAS Key Authentication.

  3. Kopioi seuraavat kaksi arvoa ja tallenna ne käytettäväksi muistikirjasi koodiin:

    • Tapahtumakeskuksen nimi: Käytetään EVENT_HUB_NAME muuttujalle.
    • Yhteysmerkkijono-pääavain: Käytetään CONNECTION_STR-muuttujalle.

    Kuvakaappaus, jossa Eventstream-suunnittelija on valittuna SAS-avaimen autentikointivaihtoehtona yksityiskohdassa, korostaen Event hubin nimeä ja Connection string-ensisijaisia avainkenttiä, joita käytetään notebookin koodissa myöhemmässä vaiheessa tässä tutoriaalissa.

Simuloi reaaliaikaista vastaanottoa muistikirjalla

Tässä osiossa luot muistikirjan, joka on yhdistetty aiemmin luomaasi järventaloon, ja käytät annettua koodia lukeaksesi CSV-datan ja lähettääksesi tapahtumia tapahtumavirtaan. Tämä simuloi reaaliaikaista tiedon vastaanottoa; Demoissa voit ajaa muistikirjan manuaalisesti tai ajoittaa sen säännöllisesti.

Luo muistikirja Fabric-työtilassasi

Luo muistikirja koodilla, jolla voit tuoda työmääräyksen sijaintitiedoston järventalostasi tapahtumavirtaan, jonka loit edellisessä osiossa. Tämä simuloi reaaliaikaista suoratoistolähdettä, joka tuotantoympäristössä striimattaisiin staattisen sijaan.

  1. Valitse työtilastasi Uusi kohde ja kirjoita hakukenttään muistikirja .

  2. Valitse muistikirja.

    Kuvakaappaus Microsoft Fabricin uuden kohteen valintaikkunasta, jossa on hakukenttä, jossa on tekstimuistikirja. Hakutuloksissa näkyy muistikirja-laatta, jossa on dokumenttikuvake ja kuvaus: Luo muistikirja datan tutkimiseen ja koneoppimismallien rakentamiseen. Muistikirja-vaihtoehto on korostettu, mikä osoittaa, että sen voi valita uuden muistikirjan kohteen luomiseksi.

  3. Uusi muistikirja -valintaikkunassa kirjoita Nimi-kenttään WorkorderLocations ja valitse sitten Luo.

  4. Yhdistääksesi muistikirjasi järventaloon, valitse From OneLake -luetteloLisää tietokohteita -pudotusvalikosta.

    Kuvakaappaus Microsoft Fabric Explorer -paneelista, jossa Data-elementit -välilehti on valittu, Ei tietolähteitä lisätty -viestillä ja tyhjällä kansiokuvakkeella. Viestin alapuolella on Lisää tietokohteita -alasvetovalikko, joka on laajennettu paljastamaan kolme valikkovaihtoehtoa: OneLake-katalogista tietokantakuvakkeella, From Real-Time hubista salamaniskukuvakkeella ja New Lakehouse plus-kyltillä. From OneLake -katalogivaihtoehto on korostettu tummalla reunalla, joka osoittaa valinnan.

  5. Valitse OneLake-katalogistaWorkorderLocationsLakehouse ja valitse Yhdistä-painike. Tämä on järvitalo , jonka loit aiemmin.

  6. Kun olet luonut muistikirjan ja yhdistänyt sen lakehouseen, liitä seuraava koodi ensimmäiseen soluun ja suorita Azure Event Hub SDK -järjestelmän asentaminen:

    # Install Azure Event Hub SDK (only needed once per environment)
    %pip install azure-eventhub
    
  7. Valitse + Koodi luodaksesi uuden solun muistikirjaan.

    Kuvakaappaus Microsoft Fabric -muistikirjan käyttöliittymästä, jossa on koodisolu, jossa on kaksi riviä Python-koodia. Rivi 1 sisältää kommentin: Asenna Azure Event Hub SDK, joka tarvitaan vain kerran ympäristössä. Rivi 2 näyttää pip install -käskyn percent pip install azure-eventhub. Koodisolun alapuolella työkaluvihje näyttää Lisää koodisolu, joka osoittaa plus-koodipainikkeeseen, joka on korostettu punaisella suorakulmiolla. Plus Markdown -painike ilmestyy oikealle. Yläoikeassa kulmassa näkyy valittuna ytimenä PySpark Python.

  8. Valitse uusi solu ja syötä siihen seuraava koodi:

    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)
    
  9. Lisää muuttujien arvot CONNECTION_STR ja EVENT_HUB_NAME , jotka saatiin aiemmassa osiossa Saat vaaditut SAS-avaimet autentikointiavaimet.

  10. Aja muistikirjan koodi. Tämä luo Workorders -taulukon KQL-tietokantaan WorkordersEventhouse-tapahtumatalossa .

Kuvakaappaus Microsoft Fabric Eventhouse -käyttöliittymästä, jossa näytetään Workorders -taulukko ja valittuna Data-esikatseluvälilehti. Vasemmanpuoleinen navigointipaneeli näyttää KQL-tietokantapuun WorkordersEventhouse laajennettuna, sisältäen taulukot, joissa on Workorders -taulukko valittuna.

Luo Kusto-funktio ja lisää se karttakerrokseksi

Tässä osiossa luot Kusto-funktion, joka hakee nykyiset työmääräysten sijaintitiedot tapahtumahuoneen Workorders -taulukosta, ja käytät sitä sitten tietolähteenä Fabric Maps -kartalle. Toiminto mahdollistaa kartan näyttää aktiiviset työmääräykset kerroksena, tarjoten visuaalisen näkymän tehtävistä, jotka täytyy suunnitella ja määrätä kenttäryhmille.

Luo Kusto-funktio

Tapahtumatalostasi (KQL-tietokanta):

  1. Avaa tapahtumatalon KQL-tietokanta .

  2. Valitse funktiot ja sitten Uusi funktio.

    Kuvakaappaus, jossa näkyy WorkordersEventhouse-tietokannan Functions-osio, jossa näkyy tyhjä tila ja suuri pyöreä kuvake, jossa on päällekkäisiä neliöitä. Pääotsikko lukee 'Ei funktioita', ja alla oleva tukiteksti sanoo 'Kun luot funktioita, ne näkyvät tässä'. Paneelin alakeskellä on näkyvä vihreä painike, jossa lukee '+ New function', kutsuen käyttäjiä luomaan ensimmäisen funktionsa. Vasen sivupalkki näyttää tietokannan navigointipuun, jossa Functions-kansio on valittu ja korostettu punaisella reunuksella.

    Tämä luo kyselyn, joka suoritettaessa luo uuden funktion nimeltä WorkordersFunction.

  3. Etene seuraavasti:

    .create-or-alter function WorkordersFunction()
    {
        Workorders
        | project Latitude, Longitude, WorkorderID
    }
    
  4. Suorita kysely

    Kuvakaappaus Microsoft Fabric Eventhouse -käyttöliittymästä, jossa näkyy Functions-osio, jossa luodaan uutta Kusto-funktiota nimeltä WorkordersFunction. Vasen sivupalkki näyttää navigointipuun, jossa Functions-kansio on valittuna. Pääeditoripaneeli näyttää KQL-kyselykoodin: .create-or-alter function WorkordersFunction() { Workorders | project Latitude, Longitude, WorkorderID }. Run-painike näkyy työkalupalkissa ylhäällä, valmiina suorittamaan funktionluontikyselyn. Tämä vaihe luo uudelleenkäytettävän tietolähteen, joka poimii asiakaskoordinaatit työtilaustiedoista karttavisualisointeja varten.

    1 & 2 - KQL-kysely, jota käytettiin WorkordersFunction-funktion luomiseen.

    3 - Juuri luotu WorkordersFunction -funktio

  5. Functions-kansiosta valitse WorkordersFunction ja esikatso tulokset varmistaaksesi, että ne palauttavat työmääräystietueita kelvollisilla sijaintikentillä.

    Kuvakaappaus Microsoft Fabric Eventhousen käyttöliittymästä, jossa näkyy WorkordersFunction Kusto -funktio ja tulokset esikatselutaulukossa. Vasen sivupalkki näyttää tietokannan navigointipuun Functions-kansion kanssa, joka näyttää juuri luodun WorkordersFunctionin. Pääpaneelissa on KQL-kyselykoodi .create-or-alter -funktio WorkordersFunction() { Workorders | project Latitude, Longitude, WorkorderID }. Kyselyeditorin alapuolella Preview-tulososio näyttää tietotaulukon, jossa on sarakkeet leveysasteelle, pituusasteelle ja WorkorderID:lle, sisältäen yhdeksän työtilaustietuetta koordinaattiarvoineen Wienin, Itävallan alueella (noin 48 astetta pohjoista leveyttä ja 16 astetta itäistä pituuspiiriä). Useiden kelvollisten sijaintitietueiden olemassaolo osoittaa, että funktio onnistuu poimimaan asiakaskoordinaatit Workorders -taulukosta karttavisualisointia varten.

Tämä funktio toimii uudelleenkäytettävänä tietolähteenä Fabric Maps -karttadatakerrokselle, mikä esitellään seuraavassa osiossa.

Luo kartta ja lisää funktio kerrokseksi

Tässä osiossa luot Fabric Maps -kartan ja käytät aiemmin luotua KQL-funktiota datakerroksena. Kartta on konfiguroitu virkistysvälillä, jotta suoratoistotyömääräystiedot päivittyvät automaattisesti, tarjoten lähes reaaliaikaisen avaruudellisen näkymän aktiivisista työmääräyksistä. Sitten nimeät kerroksen uudelleen ja säädät sen asetuksia ohjataksesi datan näkyvyyttä kartalla. Tämä reaaliaikainen paikkapaikkatilanne auttaa lähettäjiä seuraamaan kenttätoimintaa, arvioimaan kysyntää palvelualueilla ja tekemään paremmin perusteltuja reitti- ja sijoituspäätöksiä.

Luo uusi kartta

  1. Valitse työtilastasi Uusi kohde.
  2. Uusi kohde -paneelissa syötä hakukenttään kartta ja valitse Map.
  3. Uusi kartta -valintaikkunassa kirjoita WorkordersMap Nimi-kenttään ja valitse Luo.

Lisää tapahtumatalo karttaan

  1. Explorer-paneelissa valitse Fabric-elementit ja sitten Lisää-painike.

  2. Valitse KQL-tietokanta valikosta, joka ilmestyy Lisää-painikkeen yhteydessä.

    Kuvakaappaus, jossa näkyy Microsoft Fabric Maps -käyttöliittymä, vasemmalla Explorer-paneeli, jossa on Fabric-elementit ja ulkoisten lähteiden välilehdet. Kangas-esineet -välilehti valitaan lisää-painikkeella sen alapuolella, ja sen alapuolella on pudotusvalikko, joka ilmestyy lisää-painikkeen valinnan jälkeen. Siinä on valittu KQL-tietokanta. Pääalue näyttää oletusmaailmankartan karttaalueella.

  3. OneLake-katalogista valitse aiemmin luomasi tapahtumatalo WorkordersEventhouse ja valitse sitten Lisää.

Vihje

Jos saat virheen, kuten KQL-tietokannalla on suojattu tunniste, joka rajoittaa pääsyä. Ota yhteyttä tietokantasi omistajaan saadaksesi apua. Tarkista KQL-tietokannan herkkyysetiketti, sillä se voi rajoittaa pääsyä. Lisätietoja löytyy kohdasta Apply sensitivity labels to Fabric items.

Näytä funktio kartalla

  1. Uuden karttasi Explorer-ruudusta valitse tapahtumatalo WorkordersEventhouse , jonka lisäsit edellisessä vaiheessa.

  2. Siirry KQL-funktioon WorkordersFunction ja valitse ellipsi (...) näyttääksesi ponnahdusvalikon.

  3. Valitse ponnahdusikkunasta Näytä kartalla .

    Kuvakaappaus Microsoft Fabric Maps Explorer -paneelista, jossa näkyy hierarkkinen puurakenne ja laajennettu KQL-tietokantaosio. Puu näyttää WorkordersEventhousen, joka sisältää Workorders-Event-taulukon ja WorkordersFunction-funktion. Työtilaukset -toiminnon vieressä on auki kolmen pisteen valikko, joka paljastaa vaihtoehdot, kuten Näytä kartalla, joka on korostettu punaisella suorakulmion reunalla.

  4. View Eventhouse data on map -dialogi näkyy esikatseludatan ollessa valittuna. Muutoksia ei tarvita. Varmista, että se on oikein, valitse sitten Seuraava

    Kuvakaappaus Microsoft Fabricin View Eventhouse data on map -valintaikkunasta, jossa vasemmalla on kolme vaihetta: Esikatseludata vihreällä rastilla, Aseta geometria ja tietojen päivitysväli sekä Tarkista ja lisää karttaan. Pääpaneelissa näkyy Visualisoi spatiaalista dataa ajan kuluessa kartalla, jossa on pudotusvalikko Valitse KQL-kysely visualisointia varten asetettuna WorkordersFunction. Alla on kyselytulosten esikatselutaulukko, jossa on sarakkeet leveysasteelle, pituusasteelle ja WorkorderID:lle, jotka näyttävät yhdeksän työtilaustietuetta koordinaateineen Wienin, Itävallan alueella. Takaisin ja Seuraava -painikkeet näkyvät oikeassa alakulmassa.

  5. Aseta geometria ja data refresh interval -vaiheessa aseta kentät seuraavasti ja valitse Seuraava:

    • Tietokerros Nimi: WorkordersFunction

    • Geometrisen sarakkeen sijainti: Leveys- ja pituusastetiedot sijaitsevat erillisillä sarakkeilla

    • Leveysaste: Leveysaste

    • Pituusaste: Pituusaste

    • Tietojen päivitysväli: 5 minuuttia

      Kuvakaappaus Microsoft Fabric -dialogista nimeltä View Eventhouse data on map ja näyttää Aseta geometria ja data refresh interval configuration -vaiheen. Vasemmanpuoleinen sivupalkki näyttää kolme työnkulun vaihetta rastimerkeineen, jotka osoittavat, että esikatseludata on valmis ja Aseta geometria sekä tietojen päivitysväli ovat tällä hetkellä aktiivisia. Pääpaneelissa on tietokerrososio, jossa on Nimi-kenttä, joka sisältää WorkordersFunctionin, ja sen jälkeen Geometria-tietosarakkeen osio, jossa on kolme pudotusvalikkoa: Geometria-sarakkeen sijainti asetettuna leveysasteeksi ja pituuspiiritiedot erillisissä sarakkeissa, leveysaste-sarake asetettu leveysasteeksi ja pituusaste-sarake asetettu pituusasteeksi. Alla on Data Refresh -osio, jossa Data refresh -väli on asetettu 5 minuuttiin. Takaisin ja Seuraava -painikkeet näkyvät oikeassa alakulmassa.

  6. Kertaa ja lisää karttaan -vaiheessa, tarkista asetukset ja valitse Lisää karttaan.

    Kuvakaappaus Microsoft Fabric View Eventhouse -datan kartalla -valintaikkunasta, joka näyttää konfigurointityönkulun lopullisen Review and Add to map -vaiheen. Vasemmanpuoleisessa sivupalkissa näkyy kolme peräkkäistä työnkulkuvaihetta: Esikatseludata sekä Aseta geometria ja tietojen päivitysväli, molemmat vihreillä rastilla, sekä Tarkista ja lisää karttaan, joka on tällä hetkellä aktiivinen sinisellä pisteindikaattorilla. Pääpaneelissa on yhteenveto konfiguraatioasetuksista: Tietolähdeosiossa KQL-tietokanta on WorkordersEventhouse ja queryset WorkordersFunction. Datakerroksen osiossa näkyy kerroksen nimi WorkordersFunction, merkitty vaadittuna punaisella tähdellä. Geometrian tietosarakkeen osiossa näkyy kolme pakollista kenttää, jotka on merkitty punaisilla tähdillä: Geometria-sarakkeen sijainti asetettu leveyspiirille ja pituuspiiritiedot erillisissä sarakkeissa, leveysaste-sarake asetettu leveysasteeksi ja pituusaste-sarake asetettu pituusasteeksi. Tietojen päivitysosio osoittaa, että päivitysväli on asetettu 5 minuutiksi, ja se on myös merkitty tarpeen mukaan. Dialogin alatunnisteessa on Takaisin ja Lisää karttaan -painikkeet oikeassa alakulmassa, ja Lisää karttaan -painike on korostettu, valmiina viimeistelemään tapahtumatalon datakerroksen lisääminen karttaan.

Toimintojen tulokset näkyvät nyt päivitetyssä kartassa.

Kuvakaappaus, jossa Microsoft Fabric Maps -käyttöliittymä näyttää Wienin, Itävallan, kartan punaisilla pyöreillä merkeillä, jotka osoittavat työtilausten sijainnit. Vasemmalla oleva Explorer-paneeli näyttää KQL-tietokantapuun, joka sisältää WorkordersEventhouse- ja WorkordersFunction -merkinnät. Kartan vasemmassa yläkulmassa oleva datakerrospaneeli näyttää WorkordersFunction-kerroksen, jossa on näkyvyyskytkin ja asetusvalikko.

Luo optimoitu monipysäkkireitti Azure Maps Route Directions API:n avulla

Tässä osiossa luot uuden muistikirjan, joka hakee työjärjestyskoordinaatit KQL-tietokannasta ja kutsuu Azure Maps Route Directions REST API:a. Otat käyttöön palvelun monipysäkkisen optimointikyvyn, jolla määritetään tehokkain järjestys kunkin sijainnin vierailulle ja palautat reitin geometrian optimoidussa järjestyksessä. Tätä ulostuloa käytetään myöhemmin visualisoimaan suositeltu teknikkoreitti kartalla.

Tämän osion suorittamiseen tarvitset Azure-tilin, jossa on Azure Maps -tili ja tilausavain. Jos sinulla ei ole Azure-tiliä, luo ilmainen tili ennen aloittamista. Lisätietoja Azure Maps -tilin luomisesta löytyy kohdasta Create an Azure Maps -tili. Lisätietoja Azure Maps -tilausavaimen hankkimisesta löydät Azure Mapsin pikakäynnistä Saat tilausavain tilillesi .

Luo muistikirja Fabric-työtilassasi, joka hakee optimaalisen reitin

  1. Avaa työtilasi sisältä aiemmin luomasi tapahtumatalon WorkordersEventhouse .

  2. Vasemmassa navigointipaneelissa KQL-tietokantojen alta valitse WorkordersEventhouse.

  3. Ylävalikkopalkissa pitäisi nyt näkyä Notebook-vaihtoehto. Valitse se luodaksesi uuden muistikirjan.

    Kuvakaappaus Microsoft Fabric Eventhouse -käyttöliittymästä, jossa WorkordersEventhouse-tietokanta on valittu vasemmassa navigointipaneelissa KQL-tietokantojen alla. Ylävalikkopalkissa näkyy useita vaihtoehtoja, mukaan lukien Notebook, joka on korostettu punaisella ruudulla, joka osoittaa, että valittava kohde on valittu. Pääpaneelissa näkyy Data Activity Tracker, jossa on syöttö- ja kyselytilastot.

  4. Uudessa muistikirjassa tallenna kustoUri-muuttujan arvo. Käytät tätä arvoa uudessa muistikirjan koodissa, jonka luot vaiheessa 6.

  5. Yhdistä muistikirjasi WorkorderLocationsLakehouseen valitsemalla From OneLake -luetteloLisää tietokohteita -listasta.

    Kuvakaappaus Microsoft Fabric -muistikirjan käyttöliittymästä, jossa on koodisolu PySpark Python -koodilla. Vasemmassa paneelissa näkyy Ei tietolähteitä lisätty ja Lisää tietokohteita -painike, joka on korostettu punaisella ruudulla. Pääkoodialueella näkyy esimerkkikysely Kuston datan lukemiseen, jossa muuttujat kustoQuery on asetettu Workordersiksi, kustoUri sisältää Fabric Microsoft URL:n ja tietokanta WorkordersEventhouse. KustoUri on korostettu punaisella laatikolla, joka osoittaa, että arvo täytyy kopioida ja käyttää tässä opetusohjelmassa annettuun muistikirjakoodiin.

    Muistio

    Kun luot Lakehousen Microsoft Fabricissa, samalla nimellä toimiva SQL-analytiikkapäätepiste luodaan automaattisesti.

    Molemmat esineet esiintyvät työtilassa, mutta niillä on eri tarkoitus:

    • Lakehousea käytetään muistikirjojen, Spark-käsittelyn ja datan vastaanottoon.
    • SQL-analytiikan päätepiste on vain luku -pohjainen T-SQL-kyselypinta Lakehouse-datan päällä.

    Kun liität tai luot muistikirjaa, varmista, että valitset Lakehousen, et SQL-analytiikan päätepisteen. Jos WorkorderLocationsLakehouse esiintyy kahdesti OneLake-katalogissa, suodata Lakehouse .

  6. Kun uusi muistikirjasi on luotu ja yhdistetty järventaloon, syötä seuraava koodi muistikirjan toiseen soluun, korvaten oletuskoodin, ja lisää sitten edellisessä vaiheessa tallennetut muuttujaarvot:

    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}")
    
  7. Syötä Azure Maps -tilausavain muistikirjan koodiin AZMAPS_SUBSCRIPTION_KEY muuttujalle korvaamalla "<Azure Maps subscription key>" Azure Maps -tilausavaimella.

    Tärkeää

    Tämä esimerkki koodaa Azure Mapsin tilausavaimen yksinkertaisuuden vuoksi. Älä koodaa salaisuuksia tuotantoympäristöissä. Tallenna ja hallinnoi salaisuuksia turvallisesti Azure Key Vaultin avulla ja viitata niihin ajonaikaisesti. Lisätietoja löytyy kohdasta Parhaat käytännöt salaisuuksien suojaamiseen.

  8. Valitse valikosta Tallenna nimellä -painike ja tallenna muistikirja nimellä OptimizeRoute.

  9. Aja muistikirja luodaksesi OptimizedRoute.geojson-tiedoston järventalosi Tiedostot-kansioon.

    Kuvakaappaus Microsoft Fabricin käyttöliittymästä, jossa oikealla puolella on muistikirjan koodisolu, jossa on Python-koodia, joka hakee reittitietoja ja kirjoittaa GeoJSON-tiedoston. Vasemmanpuoleinen Explorer-paneeli näyttää OneLake-tiedoston, jossa WorkorderLocation on laajennettu, näyttäen Taulukot ja Tiedostot. Tiedostot-kansio sisältää WorkorderLocations.csv ja OptimizedRoute.geojsonin, jotka on korostettu punaisella ruudulla, joka osoittaa juuri luodun tulostiedoston. Keskimmäinen Tiedosto-paneeli näyttää molemmat tiedostot, joissa myös OptimizedRoute.geojson on korostettu. Muistikirjan tulos alareunassa näyttää onnistumisviestin, jossa kerrotaan Muunnetut suunnat: GeoJSON-reittipisteet kantavat ominaisuuksia.

Lisää järvitalo karttaan

  1. Explorer-paneelissa valitse Fabric-elementit ja sitten Lisää-painike.
  2. Valitse Lakehouse valikosta, joka ilmestyy, kun valitset Lisää-painikkeen .
  3. OneLake-katalogista valitse aiemmin luomasi järvitalo WorkorderLocationsLakehouse ja valitse sitten Lisää.

Näytä optimoitu reitti kartalla

  1. Uuden karttasi Explorer-paneelista valitse edellisessä vaiheessa lisätty järvitalo WorkorderLocationsLakehouse.

  2. Siirry OptimizedRoute.geojson -kansioon järventalosi Tiedostot-kansiossa ja valitse ellipsi (...) näyttääksesi ponnahdusvalikon.

  3. Valitse ponnahdusikkunasta Näytä kartalla .

    Kuvakaappaus Microsoft Fabric Maps Explorer -paneelista, jossa Lakehouse-välilehti on valittu WorkorderLocationsLakehousella, laajennettiin. Tiedostot-kansio sisältää OptimizedRoute.geojson- ja WorkorderLocations.csv-tiedostot. Kontekstivalikko on avoinna OptimizedRoute.geojsonin vieressä, jossa näkyy vaihtoehtoja, kuten Näytä kartalla punaisella suorakulmiolla korostettuna. Datakerrospaneeli näyttää WorkordersFunctionin olemassa olevana kerroksena, jossa on näkyvyyskytkin.

  4. Data-kerrospaneelissaWorkordersFunction -kerroksen näkyvyys kytketään pois päältä.

Kun kartta on valmis, uusi karttakerros ilmestyy Fabric Maps -kartallesi.

Kuvakaappaus Microsoft Fabric Mapsista, jossa näkyy Wienin, Itävallan katukartta, jossa optimoitu reitti näkyy sinisinä viivoina yhdeksän numeroitua reittipistettä yhdistäen. Vasemmanpuoleinen Explorer-paneeli näyttää Lakehouse-välilehden, joka on laajennettu WorkorderLocationsLakehousella, jossa on Files-kansio OptimizedRoute.geojson- ja WorkorderLocations.csv-tiedostoilla. Datakerrospaneeli näyttää kaksi kerrosta: WorkordersFunction, jossa näkyvyys on pois päältä, ja OptimizedRoute, joka näyttää yhdistetyn reitin polun numeroiduilla pysäkeillä 1–9 optimoidun käyntijärjestyksen.

Karttakerroksen asetukset

Fabric Maps tarjoaa useita kerrosasetuksia, joiden avulla voit hallita, miten data esitetään kartalla. Tässä osiossa muokkaat reittioptimointiprosessista luotua kerrosta nimeämällä kerros uudelleen, säätämällä symbolityyliä ja määrittämällä tunnisteet kenttien arvojen perusteella. Nämä asetukset parantavat luettavuutta ja helpottavat työmääräystietojen tulkintaa yhdellä silmäyksellä.

Kerros nimetään uudelleen

  1. Datakerrospaneelissa avaa OptimizedRoute-valikko valitsemalla ellipsi (...).

  2. Kun olet asetuksissa, valitse Nimeä uudelleen.

    Kuvakaappaus Microsoft Fabric Mapsin tietokerrospaneelista, jossa on kaksi kerrosta: WorkordersFunction ja OptimizedRoute. OptimizedRoute-kerroksen valikko on laajennettu punaisella suorakulmiolla, joka korostaa Rename-vaihtoehtoa. Muita näkyviä valikkovaihtoehtoja ovat Zoomaa sopimaan, Kopioi ja Poista. Paneeli näkyy katukartan taustalla, jossa näkyy Wienin ja Itävallan alue.

Poista tunnisteet karttatasolla

Kun kytket Labelit päälle tai pois karttatasolla, se vaikuttaa basemap-tekstimerkintöihin. Nämä nimitykset tulevat taustalla olevasta karttatyylistä ja sisältävät:

  • Kaupunkien ja kuntien nimet
  • Maiden ja alueiden nimet
  • Teiden ja teiden nimet
  • Vesielementtien nimet (joet, järvet, valtameret)
  • Muut hallinnolliset tai maantieteelliset paikannimet

Kun etikettejä ei näytetä, pohjakartta näyttää "puhtaammalta" ja minimalistisemmalta, eikä paikkanimen tekstiä renderöidä pohjakartalla.

Basemap-tunnisteiden sammuttamiseksi:

  1. Avaa karttasi Fabric Mapsissa.

  2. Valitse Karttaasetukset valikkopalkista.

  3. Etsi Labels-valintaruutu ja poista se valinnasta.

    Kuvakaappaus, jossa Microsoft Fabric Maps -käyttöliittymä näyttää Wienin, Itävallan, katukartan, jossa violetit reittilinjat yhdistävät useita reittipisteitä. Vasemmalla puolella näkyy Explorer-paneeli, jossa on Data-kerrospaneeli, jossa on WorkordersFunction- ja Optimized Route -kerrokset. Ylin työkalupalkki korostaa karttaasetukset-painiketta, joka on korostettu punaisella suorakulmiolla. Oikealla puolella näkyy Basemap-asetusten paneeli, jossa Labels-valintaruutu on poistettu ja korostettu punaisella suorakulmiolla.

Lisätietoja Fabric Mapsin karttaasetuksista löytyy kohdasta Muuta karttaasetuksia

Lisää datatunnisteet kerrokseen

Tietotunnisteet ovat dataohjattuja annotaatioita, jotka tulevat yhdestä tai useammasta kerroksen aineiston kentästä. Ne ovat suoraan sidoksissa kerrostason karttaominaisuuksiin, kuten kartan pisteisiin, jotka edustavat työjärjestyksen sijainteja. Lisätietoja Fabric Mapsin tietotunnisteista löytyy kohdasta Data label settings.

  1. Valitse Optimoitu reittitietokerrospaneelista . Optimoitu reitti -asetukset -paneeli ilmestyy näytön oikealle puolelle.

  2. Optimoitu reitti -asetuksista valitse > Data label settings.

  3. Valitse Ota tietotunnisteet käyttöön -kytkin aktivoidaksesi datatunnisteet. Tämä näyttää enemmän data-etikettiasetuksia.

  4. Muuta seuraavat tietotunnisteen asetukset:

    • Datatunnisteet: optimizedIndex
    • Tekstin väri: valkoinen
    • Tekstin kokoliukusäädin asetettu arvoon 20
    • Tekstiviivan väri: Musta
    • Tekstin viivan leveyden liukusäädin asetettu arvoon 2

    Kuvakaappaus Microsoft Fabric Mapsista, jossa Data labels settings -paneeli laajeni oikealle puolelle, jolloin Enable data labels oli päällä, Data labels -pudotusvalikko optimizedIndex, Text color -valikko valkoinen värivalitsija, Text Volume -liukusäädin asetettu 20, Text stroke -väri mustaksi ja Text stroke width-liukusäädin asetettu 2. Pääkarttaalue näyttää Wienin, Itävallan, katukartan, jossa violetit reittilinjat yhdistävät numeroidut reittipisteet, jotka on merkitty 1–9 optimoidun vierailujärjestyksen. Vasemmalla oleva datakerrospaneeli näyttää WorkordersFunctionin, jossa näkyy piilotettu näkyvyys ja Optimoitu reitti aktiivisena kerroksena.

Yhteenveto

Tämä opas osoitti, miten rakennetaan päästä päähän -reaaliaikainen työmääräysten reititysskenaario Microsoft Fabricin Real-Time Intelligencen ja Fabric Mapsin avulla. Suoratoistotyömääräystiedot vastaanotetaan, muunnetaan ja haetaan KQL:llä, minkä jälkeen ne visualisoidaan kartalla luodakseen dynaamisen, jatkuvasti päivittyvän näkymän työmääräysten sijainneista. Yhdistämällä reitityslogiikan ja optimaaliset reittilaskelmat ratkaisu osoittaa, miten reaaliaikainen paikkatietoanalytiikka voi auttaa lähettäjiä ja kenttäoperaatiotiimejä tekemään nopeampia ja paremmin perusteltuja päätöksiä.

Tätä mallia voidaan laajentaa myös muihin sijaintipohjaisiin skenaarioihin, kuten kaluston seurantaan, omaisuuden seurantaan ja häiriötilanteisiin reagointiin. Yhdistämällä tapahtumalähtöisen datan, KQL-pohjaisen analytiikan ja karttapohjaisen visualisoinnin Microsoft Fabric mahdollistaa siirtymän raakasta suoratoistodatasta lähes reaaliaikaisesti toimiviin maantieteellisiin oivalluksiin.

Seuraavat vaiheet

Lisätietoja Fabric Maps -artikkeleista, jotka käsitellään tässä opetusohjeessa: