Begära väderdata i realtid och prognostiserade väderdata med hjälp av Azure Maps Vädertjänster
Vädertjänster i Azure Maps är en uppsättning RESTful-API:er som gör det möjligt för utvecklare att integrera mycket dynamiska historiska data, realtidsdata och prognostiserade väderdata och visualiseringar i sina lösningar.
Den här artikeln visar hur du begär både realtids- och prognostiserade väderdata:
- Begär väderdata i realtid (aktuell) med api:et Hämta aktuella villkor.
- Begär aviseringar om oväder med api:et Hämta ovädersaviseringar.
- Begär dagliga prognoser med api:et Hämta daglig prognos.
- Begär prognoser varje timme med hjälp av API:et Hämta timprognos.
- Begära prognoser minut för minut med api:et Get Minute Forecast.
Den här videon innehåller exempel på hur du gör REST-anrop till Azure Maps Vädertjänster.
Förutsättningar
Viktigt!
I URL-exemplen i den här artikeln måste du ersätta {Your-Azure-Maps-Subscription-key}
med din Azure Maps-prenumerationsnyckel.
I den här självstudien används bruno-programmet , men du kan välja en annan API-utvecklingsmiljö.
Begära väderdata i realtid
API:et Hämta aktuella villkor returnerar detaljerade väderförhållanden som nederbörd, temperatur och vind för en viss koordinatplats. Dessutom kan observationer från de senaste 6 eller 24 timmarna för en viss plats hämtas. Svaret innehåller information som datum och tid för observation, beskrivning av väderförhållanden, väderikon, flaggor för nederbördsindikator och temperatur. RealFeel™ Temperature och ultraviolett (UV) index returneras också.
I det här exemplet använder du API:et Hämta aktuella villkor för att hämta aktuella väderförhållanden vid koordinater som finns i Seattle, WA.
Öppna bruno-appen och välj NY BEGÄRAN för att skapa begäran. I fönstret NY BEGÄRAN anger du Typ till HTTP. Ange ett namn för begäran.
Välj metoden GET HTTP i listrutan URL och ange sedan följande URL:
https://atlas.microsoft.com/weather/currentConditions/json?api-version=1.0&query=47.60357,-122.32945&subscription-key={Your-Azure-Maps-Subscription-key}
Välj den blå knappen Skapa .
Välj knappen Kör.
Svarstexten innehåller aktuell väderinformation.
{ "results": [ { "dateTime": "2024-08-08T09:22:00-07:00", "phrase": "Sunny", "iconCode": 1, "hasPrecipitation": false, "isDayTime": true, "temperature": { "value": 19.5, "unit": "C", "unitType": 17 }, "realFeelTemperature": { "value": 23.7, "unit": "C", "unitType": 17 }, "realFeelTemperatureShade": { "value": 19.4, "unit": "C", "unitType": 17 }, "relativeHumidity": 81, "dewPoint": { "value": 16.2, "unit": "C", "unitType": 17 }, "wind": { "direction": { "degrees": 0, "localizedDescription": "N" }, "speed": { "value": 2, "unit": "km/h", "unitType": 7 } }, "windGust": { "speed": { "value": 3.8, "unit": "km/h", "unitType": 7 } }, "uvIndex": 4, "uvIndexPhrase": "Moderate", "visibility": { "value": 16.1, "unit": "km", "unitType": 6 }, "obstructionsToVisibility": "", "cloudCover": 5, "ceiling": { "value": 12192, "unit": "m", "unitType": 5 }, "pressure": { "value": 1015.9, "unit": "mb", "unitType": 14 }, "pressureTendency": { "localizedDescription": "Steady", "code": "S" }, "past24HourTemperatureDeparture": { "value": 3, "unit": "C", "unitType": 17 }, "apparentTemperature": { "value": 20, "unit": "C", "unitType": 17 }, "windChillTemperature": { "value": 19.4, "unit": "C", "unitType": 17 }, "wetBulbTemperature": { "value": 17.5, "unit": "C", "unitType": 17 }, "precipitationSummary": { "pastHour": { "value": 0, "unit": "mm", "unitType": 3 }, "past3Hours": { "value": 0, "unit": "mm", "unitType": 3 }, "past6Hours": { "value": 0, "unit": "mm", "unitType": 3 }, "past9Hours": { "value": 0, "unit": "mm", "unitType": 3 }, "past12Hours": { "value": 0, "unit": "mm", "unitType": 3 }, "past18Hours": { "value": 0, "unit": "mm", "unitType": 3 }, "past24Hours": { "value": 0, "unit": "mm", "unitType": 3 } }, "temperatureSummary": { "past6Hours": { "minimum": { "value": 16, "unit": "C", "unitType": 17 }, "maximum": { "value": 19.5, "unit": "C", "unitType": 17 } }, "past12Hours": { "minimum": { "value": 16, "unit": "C", "unitType": 17 }, "maximum": { "value": 20.4, "unit": "C", "unitType": 17 } }, "past24Hours": { "minimum": { "value": 16, "unit": "C", "unitType": 17 }, "maximum": { "value": 26.4, "unit": "C", "unitType": 17 } } } } ] }
Begära aviseringar om oväder
Azure Maps Get Severe Weather Alerts API returnerar aviseringar om oväder som är tillgängliga över hela världen från både officiella myndigheters meteorologiska myndigheter och leder globalt till regionala vädervarningsleverantörer. Tjänsten returnerar information som aviseringstyp, kategori, nivå. Tjänsten returnerar också detaljerade beskrivningar om aktiva allvarliga aviseringar för den begärda platsen, till exempel orkaner, åskväder, blixtnedslag, värmeböljor eller skogsbränder. Logistikchefer kan till exempel visualisera svåra väderförhållanden på en karta, tillsammans med affärsplatser och planerade rutter, och samordna ytterligare med förare och lokala arbetare.
I det här exemplet använder du API:et Hämta ovädersaviseringar för att hämta aktuella väderförhållanden vid koordinater i Cheyenne, WY.
Kommentar
Det här exemplet hämtar aviseringar om oväder vid tidpunkten för den här skriften. Det är troligt att det inte längre finns några ovädersvarningar på den begärda platsen. Om du vill hämta faktiska allvarliga aviseringsdata när du kör det här exemplet måste du hämta data på en annan koordinatplats.
I bruno-appen väljer du NY BEGÄRAN för att skapa begäran. I fönstret NY BEGÄRAN anger du Typ till HTTP. Ange ett namn för begäran.
Välj metoden GET HTTP i listrutan URL och ange sedan följande URL:
https://atlas.microsoft.com/weather/severe/alerts/json?api-version=1.0&query=41.161079,-104.805450&subscription-key={Your-Azure-Maps-Subscription-key}
Välj den blå knappen Skapa .
Välj knappen Kör.
Om det inte finns några varningar om oväder innehåller svarstexten en tom
results[]
matris. Om det finns aviseringar om oväder innehåller svarstexten något som liknar följande JSON-svar:{ "results": [ { "countryCode": "US", "alertId": 2194734, "description": { "localized": "Red Flag Warning", "english": "Red Flag Warning" }, "category": "FIRE", "priority": 54, "source": "U.S. National Weather Service", "sourceId": 2, "alertAreas": [ { "name": "Platte/Goshen/Central and Eastern Laramie", "summary": "Red Flag Warning in effect until 7:00 PM MDT. Source: U.S. National Weather Service", "startTime": "2020-10-05T15:00:00+00:00", "endTime": "2020-10-06T01:00:00+00:00", "latestStatus": { "localized": "Continue", "english": "Continue" }, "alertDetails": "...RED FLAG WARNING REMAINS IN EFFECT FROM 9 AM THIS MORNING TO\n7 PM MDT THIS EVENING FOR STRONG GUSTY WINDS AND LOW HUMIDITY...\n\n* WHERE...Fire weather zones 303, 304, 305, 306, 307, 308, 309,\n and 310 in southeast Wyoming. Fire weather zone 313 in Nebraska.\n\n* WIND...West to northwest 15 to 30 MPH with gusts around 40 MPH.\n\n* HUMIDITY...10 to 15 percent.\n\n* IMPACTS...Any fires that develop will likely spread rapidly.\n Outdoor burning is not recommended.\n\nPRECAUTIONARY/PREPAREDNESS ACTIONS...\n\nA Red Flag Warning means that critical fire weather conditions\nare either occurring now...or will shortly. A combination of\nstrong winds...low relative humidity...and warm temperatures can\ncontribute to extreme fire behavior.\n\n&&", "alertDetailsLanguageCode": "en" } ] },... ] }
Begära väderprognosdata dagligen
API:et Get Daily Forecast returnerar detaljerad daglig väderprognos, till exempel temperatur och vind. Begäran kan ange hur många dagar som ska returneras: 1, 5, 10, 15, 25 eller 45 dagar för en viss koordinatplats. Svaret innehåller information som temperatur, vind, nederbörd, luftkvalitet och UV-index. I det här exemplet begär vi i fem dagar genom att ange duration=5
.
Viktigt!
På prisnivån S0 kan du begära daglig prognos för de kommande 1, 5, 10 och 15 dagarna. I prisnivån Gen1 (S1) eller Gen2 kan du begära daglig prognos för de kommande 25 dagarna och 45 dagarna.
Azure Maps Gen1-prisnivån dras tillbaka
Prisnivån Gen1 är nu inaktuell och dras tillbaka den 26-09-15. Prisnivån Gen2 ersätter prisnivån Gen1 (både S0 och S1). Om ditt Azure Maps-konto har valt prisnivån Gen1 kan du växla till Gen2-priser innan det dras tillbaka, annars uppdateras det automatiskt. Mer information finns i Hantera prisnivån för ditt Azure Maps-konto.
I det här exemplet använder du API:et Hämta daglig prognos för att hämta femdagars väderprognosen för koordinater som finns i Seattle, WA.
I bruno-appen väljer du NY BEGÄRAN för att skapa begäran. I fönstret NY BEGÄRAN anger du Typ till HTTP. Ange ett namn för begäran.
Välj metoden GET HTTP i listrutan URL och ange sedan följande URL:
https://atlas.microsoft.com/weather/forecast/daily/json?api-version=1.0&query=47.60357,-122.32945&duration=5&subscription-key={Your-Azure-Maps-Subscription-key}
Välj den blå knappen Skapa .
Välj knappen Kör.
Svarstexten innehåller femdagars väderprognosdata. För korthets skull visar följande JSON-svar prognosen för den första dagen.
{ "summary": { "startDate": "2024-08-09T08:00:00-07:00", "endDate": "2024-08-09T20:00:00-07:00", "severity": 7, "phrase": "Very warm tomorrow", "category": "heat" }, "forecasts": [ { "date": "2024-08-08T07:00:00-07:00", "temperature": { "minimum": { "value": 16.2, "unit": "C", "unitType": 17 }, "maximum": { "value": 28.9, "unit": "C", "unitType": 17 } }, "realFeelTemperature": { "minimum": { "value": 16.3, "unit": "C", "unitType": 17 }, "maximum": { "value": 29.8, "unit": "C", "unitType": 17 } }, "realFeelTemperatureShade": { "minimum": { "value": 16.3, "unit": "C", "unitType": 17 }, "maximum": { "value": 27.3, "unit": "C", "unitType": 17 } }, "hoursOfSun": 12.9, "degreeDaySummary": { "heating": { "value": 0, "unit": "C", "unitType": 17 }, "cooling": { "value": 5, "unit": "C", "unitType": 17 } }, "airAndPollen": [ { "name": "AirQuality", "value": 56, "category": "Moderate", "categoryValue": 2, "type": "Nitrogen Dioxide" }, { "name": "Grass", "value": 2, "category": "Low", "categoryValue": 1 }, { "name": "Mold", "value": 0, "category": "Low", "categoryValue": 1 }, { "name": "Ragweed", "value": 5, "category": "Low", "categoryValue": 1 }, { "name": "Tree", "value": 0, "category": "Low", "categoryValue": 1 }, { "name": "UVIndex", "value": 7, "category": "High", "categoryValue": 3 } ], "day": { "iconCode": 2, "iconPhrase": "Mostly sunny", "hasPrecipitation": false, "shortPhrase": "Mostly sunny", "longPhrase": "Mostly sunny; wildfire smoke will cause the sky to be hazy", "precipitationProbability": 0, "thunderstormProbability": 0, "rainProbability": 0, "snowProbability": 0, "iceProbability": 0, "wind": { "direction": { "degrees": 357, "localizedDescription": "N" }, "speed": { "value": 11.1, "unit": "km/h", "unitType": 7 } }, "windGust": { "direction": { "degrees": 354, "localizedDescription": "N" }, "speed": { "value": 29.6, "unit": "km/h", "unitType": 7 } }, "totalLiquid": { "value": 0, "unit": "mm", "unitType": 3 }, "rain": { "value": 0, "unit": "mm", "unitType": 3 }, "snow": { "value": 0, "unit": "cm", "unitType": 4 }, "ice": { "value": 0, "unit": "mm", "unitType": 3 }, "hoursOfPrecipitation": 0, "hoursOfRain": 0, "hoursOfSnow": 0, "hoursOfIce": 0, "cloudCover": 10 }, "night": { "iconCode": 35, "iconPhrase": "Partly cloudy", "hasPrecipitation": false, "shortPhrase": "Partly cloudy", "longPhrase": "Partly cloudy; wildfire smoke will cause the sky to be hazy", "precipitationProbability": 1, "thunderstormProbability": 0, "rainProbability": 1, "snowProbability": 0, "iceProbability": 0, "wind": { "direction": { "degrees": 7, "localizedDescription": "N" }, "speed": { "value": 9.3, "unit": "km/h", "unitType": 7 } }, "windGust": { "direction": { "degrees": 3, "localizedDescription": "N" }, "speed": { "value": 20.4, "unit": "km/h", "unitType": 7 } }, "totalLiquid": { "value": 0, "unit": "mm", "unitType": 3 }, "rain": { "value": 0, "unit": "mm", "unitType": 3 }, "snow": { "value": 0, "unit": "cm", "unitType": 4 }, "ice": { "value": 0, "unit": "mm", "unitType": 3 }, "hoursOfPrecipitation": 0, "hoursOfRain": 0, "hoursOfSnow": 0, "hoursOfIce": 0, "cloudCover": 26 }, "sources": [ "AccuWeather" ] } ] }
Begära väderprognosdata varje timme
API:et Get Hourly Forecast returnerar detaljerad väderprognos per timme för de kommande 1, 12, 24 (1 dag), 72 (3 dagar), 120 (5 dagar) och 240 timmar (10 dagar) för den angivna koordinatplatsen. API:et returnerar information som temperatur, luftfuktighet, vind, nederbörd och UV-index.
Viktigt!
I prisnivån Gen1 (S0) kan du begära en timprognos för de kommande 1, 12, 24 timmarna (1 dag) och 72 timmar (3 dagar). I prisnivån Gen1 (S1) eller Gen2 kan du begära en timprognos för de kommande 120 (5 dagarna) och 240 timmarna (10 dagar).
I det här exemplet använder du API:et Get Hourly Forecast (Hämta timprognos) för att hämta väderprognosen per timme under de kommande 12 timmarna vid koordinaterna i Seattle, WA.
I bruno-appen väljer du NY BEGÄRAN för att skapa begäran. I fönstret NY BEGÄRAN anger du Typ till HTTP. Ange ett namn för begäran.
Välj metoden GET HTTP i listrutan URL och ange sedan följande URL:
https://atlas.microsoft.com/weather/forecast/hourly/json?api-version=1.0&query=47.60357,-122.32945&duration=12&subscription-key={Your-Azure-Maps-Subscription-key}
Välj den blå knappen Skapa .
Välj knappen Kör.
Svarstexten innehåller väderprognosdata för de kommande 12 timmarna. Följande JSON-exempelsvar visar bara den första timmen:
{ "forecasts": [ { "date": "2024-08-07T15:00:00-07:00", "iconCode": 2, "iconPhrase": "Mostly sunny", "hasPrecipitation": false, "isDaylight": true, "temperature": { "value": 24.6, "unit": "C", "unitType": 17 }, "realFeelTemperature": { "value": 26.4, "unit": "C", "unitType": 17 }, "wetBulbTemperature": { "value": 18.1, "unit": "C", "unitType": 17 }, "dewPoint": { "value": 14.5, "unit": "C", "unitType": 17 }, "wind": { "direction": { "degrees": 340, "localizedDescription": "NNW" }, "speed": { "value": 14.8, "unit": "km/h", "unitType": 7 } }, "windGust": { "speed": { "value": 24.1, "unit": "km/h", "unitType": 7 } }, "relativeHumidity": 53, "visibility": { "value": 16.1, "unit": "km", "unitType": 6 }, "cloudCover": 11, "ceiling": { "value": 10211, "unit": "m", "unitType": 5 }, "uvIndex": 5, "uvIndexPhrase": "Moderate", "precipitationProbability": 0, "rainProbability": 0, "snowProbability": 0, "iceProbability": 0, "totalLiquid": { "value": 0, "unit": "mm", "unitType": 3 }, "rain": { "value": 0, "unit": "mm", "unitType": 3 }, "snow": { "value": 0, "unit": "cm", "unitType": 4 }, "ice": { "value": 0, "unit": "mm", "unitType": 3 } } ] }
Begär väderprognosdata minut för minut
API:et Get Minute Forecast returnerar prognoser minut för minut för en viss plats under de kommande 120 minuterna. Användare kan begära väderprognoser med intervall på 1, 5 och 15 minuter. Svaret innehåller information som typen av nederbörd (inklusive regn, snö eller en blandning av båda), starttid och nederbördsintensitetsvärde (dBZ).
I det här exemplet använder du API:et Hämta minutprognos för att hämta väderprognosen minut för minut vid koordinaterna i Seattle, WA. Väderprognosen ges under de kommande 120 minuterna. Våra frågor begär att prognosen anges med 15 minuters intervall, men du kan justera parametern till antingen 1 eller 5 minuter.
I bruno-appen väljer du NY BEGÄRAN för att skapa begäran. I fönstret NY BEGÄRAN anger du Typ till HTTP. Ange ett namn för begäran.
Välj metoden GET HTTP i listrutan URL och ange sedan följande URL:
https://atlas.microsoft.com/weather/forecast/minute/json?api-version=1.0&query=47.60357,-122.32945&interval=15&subscription-key={Your-Azure-Maps-Subscription-key}
Välj den blå knappen Skapa .
Välj knappen Kör.
Svarstexten innehåller väderprognosdata för de kommande 120 minuterna, i 15-minutersintervall.
{ "summary": { "briefPhrase60": "No precipitation for at least 60 min", "shortPhrase": "No precip for 120 min", "briefPhrase": "No precipitation for at least 120 min", "longPhrase": "No precipitation for at least 120 min", "iconCode": 1 }, "intervalSummaries": [ { "startMinute": 0, "endMinute": 119, "totalMinutes": 120, "shortPhrase": "No precip for %MINUTE_VALUE min", "briefPhrase": "No precipitation for at least %MINUTE_VALUE min", "longPhrase": "No precipitation for at least %MINUTE_VALUE min", "iconCode": 1 } ], "intervals": [ { "startTime": "2024-08-08T05:58:00-07:00", "minute": 0, "dbz": 0, "shortPhrase": "No Precipitation", "iconCode": 1, "cloudCover": 7 }, { "startTime": "2024-08-08T06:13:00-07:00", "minute": 15, "dbz": 0, "shortPhrase": "No Precipitation", "iconCode": 1, "cloudCover": 3 }, { "startTime": "2024-08-08T06:28:00-07:00", "minute": 30, "dbz": 0, "shortPhrase": "No Precipitation", "iconCode": 1, "cloudCover": 2 }, { "startTime": "2024-08-08T06:43:00-07:00", "minute": 45, "dbz": 0, "shortPhrase": "No Precipitation", "iconCode": 1, "cloudCover": 2 }, { "startTime": "2024-08-08T06:58:00-07:00", "minute": 60, "dbz": 0, "shortPhrase": "No Precipitation", "iconCode": 1, "cloudCover": 1 }, { "startTime": "2024-08-08T07:13:00-07:00", "minute": 75, "dbz": 0, "shortPhrase": "No Precipitation", "iconCode": 1, "cloudCover": 1 }, { "startTime": "2024-08-08T07:28:00-07:00", "minute": 90, "dbz": 0, "shortPhrase": "No Precipitation", "iconCode": 1, "cloudCover": 0 }, { "startTime": "2024-08-08T07:43:00-07:00", "minute": 105, "dbz": 0, "shortPhrase": "No Precipitation", "iconCode": 1, "cloudCover": 0 } ] }