Begära realtidsdata och prognostiserade väderdata med hjälp av Azure Kartor Vädertjänster
Azure Kartor Weather-tjänster är en uppsättning RESTful-API:er som gör att utvecklare kan integrera dynamiska historiska, realtidsbaserade och prognostiserade väderdata och visualiseringar i sina lösningar. I den här artikeln visar vi hur du begär både realtidsdata och prognostiserade väderdata.
I den här artikeln får du lära dig att:
- Begär väderdata i realtid (aktuell) med hjälp av API:et Hämta aktuella villkor.
- Begär aviseringar om oväsentligt väder med hjälp av API:et Get Severe Weather Alerts.
- Begär dagliga prognoser med hjälp av API:et Get Daily Forecast.
- Begär prognoser per timme med hjälp av API:et Get Hourly Forecast.
- Begära minut för minut-prognoser med hjälp av API:et Get Minute Forecast.
Den här videon innehåller exempel på hur du gör REST-anrop till Azure Kartor Weather-tjänster.
Förutsättningar
Skaffa en primär prenumerationsnyckel, som även kallas primärnyckel eller prenumerationsnyckel. Mer information om autentisering i Azure Kartor finns i Hantera autentisering i Azure Kartor.
Viktigt
API:et Get Minute Forecastkräver prisnivån Gen 1 (S1) eller Gen 2. Alla andra API:er kräver en S0-prisnivånyckel.
I den här självstudien används Postman-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, en kort beskrivning av väderförhållanden, väderikon, flaggor för nederbördsindikator och temperatur. RealFeel™ indexet Temperature and aret (UV) 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 på koordinaterna i Seattle, WA.
Öppna Postman-appen. Välj Ny för att skapa begäran. I fönstret Skapa ny väljer du HTTP-begäran. Ange ett begärandenamn för begäran.
Välj METODEN GET HTTP (HÄMTA HTTP) på fliken Builder (Byggare) och ange följande URL. För den här begäran och andra begäranden som nämns i den här artikeln ersätter du
{Azure-Maps-Primary-Subscription-key}med din primära prenumerationsnyckel.https://atlas.microsoft.com/weather/currentConditions/json?api-version=1.0&query=47.60357,-122.32945&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Klicka på den blå knappen Skicka. Svarstexten innehåller aktuell väderinformation.
{ "results": [ { "dateTime": "2020-10-19T20:39:00+00:00", "phrase": "Cloudy", "iconCode": 7, "hasPrecipitation": false, "isDayTime": true, "temperature": { "value": 12.4, "unit": "C", "unitType": 17 }, "realFeelTemperature": { "value": 13.7, "unit": "C", "unitType": 17 }, "realFeelTemperatureShade": { "value": 13.7, "unit": "C", "unitType": 17 }, "relativeHumidity": 87, "dewPoint": { "value": 10.3, "unit": "C", "unitType": 17 }, "wind": { "direction": { "degrees": 23.0, "localizedDescription": "NNE" }, "speed": { "value": 4.5, "unit": "km/h", "unitType": 7 } }, "windGust": { "speed": { "value": 9.0, "unit": "km/h", "unitType": 7 } }, "uvIndex": 1, "uvIndexPhrase": "Low", "visibility": { "value": 9.7, "unit": "km", "unitType": 6 }, "obstructionsToVisibility": "", "cloudCover": 100, "ceiling": { "value": 1494.0, "unit": "m", "unitType": 5 }, "pressure": { "value": 1021.2, "unit": "mb", "unitType": 14 }, "pressureTendency": { "localizedDescription": "Steady", "code": "S" }, "past24HourTemperatureDeparture": { "value": -2.1, "unit": "C", "unitType": 17 }, "apparentTemperature": { "value": 15.0, "unit": "C", "unitType": 17 }, "windChillTemperature": { "value": 12.2, "unit": "C", "unitType": 17 }, "wetBulbTemperature": { "value": 11.3, "unit": "C", "unitType": 17 }, "precipitationSummary": { "pastHour": { "value": 0.0, "unit": "mm", "unitType": 3 }, "past3Hours": { "value": 0.0, "unit": "mm", "unitType": 3 }, "past6Hours": { "value": 0.0, "unit": "mm", "unitType": 3 }, "past9Hours": { "value": 0.0, "unit": "mm", "unitType": 3 }, "past12Hours": { "value": 0.0, "unit": "mm", "unitType": 3 }, "past18Hours": { "value": 0.0, "unit": "mm", "unitType": 3 }, "past24Hours": { "value": 0.4, "unit": "mm", "unitType": 3 } }, "temperatureSummary": { "past6Hours": { "minimum": { "value": 12.2, "unit": "C", "unitType": 17 }, "maximum": { "value": 14.0, "unit": "C", "unitType": 17 } }, "past12Hours": { "minimum": { "value": 12.2, "unit": "C", "unitType": 17 }, "maximum": { "value": 14.0, "unit": "C", "unitType": 17 } }, "past24Hours": { "minimum": { "value": 12.2, "unit": "C", "unitType": 17 }, "maximum": { "value": 15.6, "unit": "C", "unitType": 17 } } } } ] }
Begära aviseringar om ovädret
AZURE Kartor GET Severe Weather Alerts API returnerar aviseringar om ovädret som är tillgängliga över hela världen från både officiella myndigheter och ledande globala till regionala vädervarningsleverantörer. Tjänsten kan returnera information som aviseringstyp, kategori, nivå och detaljerade beskrivningar om aktiva allvarliga aviseringar för den begärda platsen, till exempel orkaner, åska, blixtar, värmevågor eller skogsbrand. Logistikchefer kan till exempel visualisera oförhållanden på en karta, tillsammans med företagsplatser och planerade rutter, och samordna ytterligare med drivrutiner och lokala arbetare.
I det här exemplet använder du API:et Get Severe Weather Alerts för att hämta aktuella väderförhållanden på koordinaterna i Cheyenne, WY.
Anteckning
I det här exemplet hämtas aviseringar om ovädret när detta skrivs. Det är troligt att det inte längre finns några varningar om ovädret 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 Postman-appen väljer du Ny för att skapa begäran. I fönstret Skapa ny väljer du HTTP-begäran. Ange ett begärandenamn för begäran.
Välj METODEN GET HTTP (HÄMTA HTTP) på fliken Builder (Byggare) och ange följande URL. För den här begäran och andra begäranden som nämns i den här artikeln ersätter du
{Azure-Maps-Primary-Subscription-key}med din primära prenumerationsnyckel.https://atlas.microsoft.com/weather/severe/alerts/json?api-version=1.0&query=41.161079,-104.805450&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Klicka på den blå knappen Skicka. Om det inte finns några varningar om ovädret innehåller svarstexten en tom
results[]matris. Om det finns aviseringar om ovädret 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 dagliga väderprognosdata
API:et Get Daily Forecast returnerar en 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 ochINDEX. I det här exemplet begär vi 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 Gen 1 (S1) eller Gen 2 kan du begära daglig prognos för de kommande 25 dagarna och 45 dagar.
I det här exemplet använder du API:et Get Daily Forecast för att hämta väderprognosen på fem dagar för koordinaterna i Seattle, WA.
I Postman-appen väljer du Ny för att skapa begäran. I fönstret Skapa ny väljer du HTTP-begäran. Ange ett begärandenamn för begäran.
Välj METODEN GET HTTP (HÄMTA HTTP) på fliken Builder (Byggare) och ange följande URL. För den här begäran och andra begäranden som nämns i den här artikeln ersätter du
{Azure-Maps-Primary-Subscription-key}med din primära prenumerationsnyckel.https://atlas.microsoft.com/weather/forecast/daily/json?api-version=1.0&query=47.60357,-122.32945&duration=5&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Klicka på den blå knappen Skicka. Svarstexten innehåller väderprognosdata på fem dagar. Av utrymmesskäl visar JSON-svaret nedan prognosen för den första dagen.
{ "summary": { "startDate": "2020-10-18T17:00:00+00:00", "endDate": "2020-10-19T23:00:00+00:00", "severity": 2, "phrase": "Snow, mixed with rain at times continuing through Monday evening and a storm total of 3-6 cm", "category": "snow/rain" }, "forecasts": [ { "date": "2020-10-19T04:00:00+00:00", "temperature": { "minimum": { "value": -1.1, "unit": "C", "unitType": 17 }, "maximum": { "value": 1.3, "unit": "C", "unitType": 17 } }, "realFeelTemperature": { "minimum": { "value": -6.0, "unit": "C", "unitType": 17 }, "maximum": { "value": 0.5, "unit": "C", "unitType": 17 } }, "realFeelTemperatureShade": { "minimum": { "value": -6.0, "unit": "C", "unitType": 17 }, "maximum": { "value": 0.7, "unit": "C", "unitType": 17 } }, "hoursOfSun": 1.8, "degreeDaySummary": { "heating": { "value": 18.0, "unit": "C", "unitType": 17 }, "cooling": { "value": 0.0, "unit": "C", "unitType": 17 } }, "airAndPollen": [ { "name": "AirQuality", "value": 23, "category": "Good", "categoryValue": 1, "type": "Ozone" }, { "name": "Grass", "value": 0, "category": "Low", "categoryValue": 1 }, { "name": "Mold", "value": 0, "category": "Low", "categoryValue": 1 }, { "name": "Ragweed", "value": 0, "category": "Low", "categoryValue": 1 }, { "name": "Tree", "value": 0, "category": "Low", "categoryValue": 1 }, { "name": "UVIndex", "value": 0, "category": "Low", "categoryValue": 1 } ], "day": { "iconCode": 22, "iconPhrase": "Snow", "hasPrecipitation": true, "precipitationType": "Mixed", "precipitationIntensity": "Light", "shortPhrase": "Chilly with snow, 2-4 cm", "longPhrase": "Chilly with snow, accumulating an additional 2-4 cm", "precipitationProbability": 90, "thunderstormProbability": 0, "rainProbability": 54, "snowProbability": 85, "iceProbability": 8, "wind": { "direction": { "degrees": 36.0, "localizedDescription": "NE" }, "speed": { "value": 9.3, "unit": "km/h", "unitType": 7 } }, "windGust": { "direction": { "degrees": 70.0, "localizedDescription": "ENE" }, "speed": { "value": 25.9, "unit": "km/h", "unitType": 7 } }, "totalLiquid": { "value": 4.3, "unit": "mm", "unitType": 3 }, "rain": { "value": 0.5, "unit": "mm", "unitType": 3 }, "snow": { "value": 2.72, "unit": "cm", "unitType": 4 }, "ice": { "value": 0.0, "unit": "mm", "unitType": 3 }, "hoursOfPrecipitation": 9.0, "hoursOfRain": 1.0, "hoursOfSnow": 9.0, "hoursOfIce": 0.0, "cloudCover": 96 }, "night": { "iconCode": 29, "iconPhrase": "Rain and snow", "hasPrecipitation": true, "precipitationType": "Mixed", "precipitationIntensity": "Light", "shortPhrase": "Showers of rain and snow", "longPhrase": "A couple of showers of rain or snow this evening; otherwise, cloudy; storm total snowfall 1-3 cm", "precipitationProbability": 65, "thunderstormProbability": 0, "rainProbability": 60, "snowProbability": 54, "iceProbability": 4, "wind": { "direction": { "degrees": 16.0, "localizedDescription": "NNE" }, "speed": { "value": 16.7, "unit": "km/h", "unitType": 7 } }, "windGust": { "direction": { "degrees": 1.0, "localizedDescription": "N" }, "speed": { "value": 35.2, "unit": "km/h", "unitType": 7 } }, "totalLiquid": { "value": 4.3, "unit": "mm", "unitType": 3 }, "rain": { "value": 3.0, "unit": "mm", "unitType": 3 }, "snow": { "value": 0.79, "unit": "cm", "unitType": 4 }, "ice": { "value": 0.0, "unit": "mm", "unitType": 3 }, "hoursOfPrecipitation": 4.0, "hoursOfRain": 1.0, "hoursOfSnow": 3.0, "hoursOfIce": 0.0, "cloudCover": 94 }, "sources": [ "AccuWeather" ] },... ] }
Begära väderprognosdata varje timme
API:et Get Hourly Forecast returnerar en 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 ochINDEX.
Viktigt
På prisnivån S0 kan du begära en prognos per timme för de kommande 1, 12, 24 timmarna (1 dag) och 72 timmar (3 dagar). I prisnivån Gen 1 (S1) eller Gen 2 kan du begära en prognos per timme för de kommande 120 (5 dagarna) och 240 timmar (10 dagar).
I det här exemplet använder du API:et Get Hourly Forecast (Hämta prognos per timme) för att hämta väderprognosen per timme för de kommande 12 timmarna på koordinaterna i Seattle, WA.
I Postman-appen väljer du Ny för att skapa begäran. I fönstret Skapa ny väljer du HTTP-begäran. Ange ett begärandenamn för begäran.
Välj METODEN GET HTTP (HÄMTA HTTP) på fliken Builder (Byggare) och ange följande URL. För den här begäran och andra begäranden som nämns i den här artikeln ersätter du
{Azure-Maps-Primary-Subscription-key}med din primära prenumerationsnyckel.https://atlas.microsoft.com/weather/forecast/hourly/json?api-version=1.0&query=47.60357,-122.32945&duration=12&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Klicka på den blå knappen Skicka. Svarstexten innehåller väderprognosdata för de kommande 12 timmarna. Av utrymmesskäl visar JSON-svaret nedan prognosen för den första timmen.
{ "forecasts": [ { "date": "2020-10-19T21:00:00+00:00", "iconCode": 12, "iconPhrase": "Showers", "hasPrecipitation": true, "precipitationType": "Rain", "precipitationIntensity": "Light", "isDaylight": true, "temperature": { "value": 14.7, "unit": "C", "unitType": 17 }, "realFeelTemperature": { "value": 13.3, "unit": "C", "unitType": 17 }, "wetBulbTemperature": { "value": 12.0, "unit": "C", "unitType": 17 }, "dewPoint": { "value": 9.5, "unit": "C", "unitType": 17 }, "wind": { "direction": { "degrees": 242.0, "localizedDescription": "WSW" }, "speed": { "value": 9.3, "unit": "km/h", "unitType": 7 } }, "windGust": { "speed": { "value": 14.8, "unit": "km/h", "unitType": 7 } }, "relativeHumidity": 71, "visibility": { "value": 9.7, "unit": "km", "unitType": 6 }, "cloudCover": 100, "ceiling": { "value": 1128.0, "unit": "m", "unitType": 5 }, "uvIndex": 1, "uvIndexPhrase": "Low", "precipitationProbability": 51, "rainProbability": 51, "snowProbability": 0, "iceProbability": 0, "totalLiquid": { "value": 0.3, "unit": "mm", "unitType": 3 }, "rain": { "value": 0.3, "unit": "mm", "unitType": 3 }, "snow": { "value": 0.0, "unit": "cm", "unitType": 4 }, "ice": { "value": 0.0, "unit": "mm", "unitType": 3 } }... ] }
Begära 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ändarna kan begära väderprognoser i intervall på 1, 5 och 15 minuter. Svaret innehåller information som typ av nederbörd (inklusive regn, snow eller en blandning av båda), starttid och värde för nederbördsintensitet (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 på koordinaterna i Seattle, WA. Väderprognosen anges för de kommande 120 minuterna. Vår fråga begär att prognosen anges med 15 minuters intervall, men du kan justera parametern till antingen 1 eller 5 minuter.
I Postman-appen väljer du Ny för att skapa begäran. I fönstret Skapa ny väljer du HTTP-begäran. Ange ett begärandenamn för begäran.
Välj METODEN GET HTTP (HÄMTA HTTP) på fliken Builder (Byggare) och ange följande URL. För den här begäran och andra begäranden som nämns i den här artikeln ersätter du
{Azure-Maps-Primary-Subscription-key}med din primära prenumerationsnyckel.https://atlas.microsoft.com/weather/forecast/minute/json?api-version=1.0&query=47.60357,-122.32945&interval=15&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Klicka på den blå knappen Skicka. Svarstexten innehåller väderprognosdata för de kommande 120 minuterna, med 15 minuters intervall.
{ "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": 7 }, "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": 7 } ], "intervals": [ { "startTime": "2020-10-19T20:51:00+00:00", "minute": 0, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 }, { "startTime": "2020-10-19T21:06:00+00:00", "minute": 15, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 }, { "startTime": "2020-10-19T21:21:00+00:00", "minute": 30, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 }, { "startTime": "2020-10-19T21:36:00+00:00", "minute": 45, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 }, { "startTime": "2020-10-19T21:51:00+00:00", "minute": 60, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 }, { "startTime": "2020-10-19T22:06:00+00:00", "minute": 75, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 }, { "startTime": "2020-10-19T22:21:00+00:00", "minute": 90, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 }, { "startTime": "2020-10-19T22:36:00+00:00", "minute": 105, "dbz": 0.0, "shortPhrase": "No Precipitation", "iconCode": 7, "cloudCover": 100 } ] }