Vyžádání dat o počasí v reálném čase a předpovědích pomocí služeb Azure Maps Weather
Služby Azure Maps Weather jsou sada rozhraní RESTful API, která vývojářům umožňují integrovat do svých řešení vysoce dynamická historická data a vizualizace počasí v reálném čase.
Tento článek ukazuje, jak požádat o data o počasí v reálném čase i předpovědi:
- Pomocí rozhraní API Získat aktuální podmínky si můžete vyžádat data o počasí v reálném čase (aktuální).
- Pomocí rozhraní API Get Severe Weather Alerts si můžete vyžádat závažná upozornění na počasí.
- Pomocí rozhraní API Získat denní prognózy si můžete vyžádat denní prognózy.
- Hodinové prognózy si můžete vyžádat pomocí rozhraní API get Hourly Forecast API.
- Vyžádání minut po minutových prognózách pomocí rozhraní API pro získání minut prognózy
Toto video obsahuje příklady volání REST do služeb Azure Maps Weather.
Požadavky
- Účet Azure Maps
- Klíč předplatného
Důležité
V příkladech adres URL v tomto článku budete muset nahradit {Your-Azure-Maps-Subscription-key}
klíčem předplatného Azure Maps.
Tento kurz používá aplikaci bruno , ale můžete zvolit jiné vývojové prostředí rozhraní API.
Vyžádání dat o počasí v reálném čase
Rozhraní API Get Current Conditions vrátí podrobné povětrnostní podmínky, jako jsou srážky, teplota a vítr pro dané umístění souřadnic. Můžete také načíst pozorování z posledních 6 nebo 24 hodin pro konkrétní umístění. Odpověď obsahuje podrobnosti, jako je datum a čas pozorování, popis povětrnostních podmínek, ikona počasí, příznaky indikátorů srážek a teplota. Vrátí se také index RealFeel™ Temperature a uv(UV).
V tomto příkladu použijete rozhraní API Získat aktuální podmínky k načtení aktuálních povětrnostních podmínek na souřadnicích umístěných v Seattlu, WA.
Otevřete aplikaci bruno, vyberte NOVÝ POŽADAVEK a vytvořte žádost. V okně NOVÝ POŽADAVEK nastavte typ na HTTP. Zadejte název požadavku.
V rozevíracím seznamu adres URL vyberte metodu GET HTTP a zadejte následující adresu URL:
https://atlas.microsoft.com/weather/currentConditions/json?api-version=1.0&query=47.60357,-122.32945&subscription-key={Your-Azure-Maps-Subscription-key}
Vyberte modré tlačítko Vytvořit .
Vyberte tlačítko Spustit.
Tělo odpovědi obsahuje aktuální informace o počasí.
{ "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 } } } } ] }
Vyžádání závažných upozornění na počasí
Rozhraní API pro získání závažných upozornění na počasí v Azure Maps vrací závažná upozornění na počasí, která jsou dostupná po celém světě od oficiálních meteorologických agentur státní správy a vedoucí globální pro regionální poskytovatele meteorologických výstrah. Služba vrací podrobnosti, jako je typ výstrahy, kategorie nebo úroveň. Služba také vrací podrobné popisy aktivních závažných výstrah pro požadovanou lokalitu, jako jsou hurikány, bouře, blesky, tepelné vlny nebo požáry lesa. Například manažeři logistiky můžou vizualizovat závažné povětrnostní podmínky na mapě spolu s obchodními lokalitami a plánovanými trasami a dále koordinovat obchodní faktory a místní pracovníky.
V tomto příkladu použijete rozhraní API Get Severe Weather Alerts k načtení aktuálních povětrnostních podmínek v souřadnicích umístěných v Cheyenne, WY.
Poznámka:
Tento příklad načte v době psaní tohoto textu závažná upozornění na počasí. Je pravděpodobné, že na požadovaném místě již neexistují žádná závažná upozornění na počasí. Pokud chcete při spuštění tohoto příkladu načíst skutečná závažná data výstrah, budete muset načíst data v jiném souřadnicovém umístění.
V aplikaci bruno vyberte NOVÝ POŽADAVEK a vytvořte žádost. V okně NOVÝ POŽADAVEK nastavte typ na HTTP. Zadejte název požadavku.
V rozevíracím seznamu adres URL vyberte metodu GET HTTP a zadejte následující adresu 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}
Vyberte modré tlačítko Vytvořit .
Vyberte tlačítko Spustit.
Pokud neexistují žádná závažná upozornění na počasí, tělo odpovědi obsahuje prázdné
results[]
pole. Pokud existují závažná upozornění na počasí, text odpovědi obsahuje něco jako následující odpověď JSON:{ "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" } ] },... ] }
Vyžádání dat denní předpovědi počasí
Rozhraní API Získat denní prognózu vrátí podrobnou denní předpověď počasí, jako je teplota a vítr. Žádost může určit, kolik dní se má vrátit: 1, 5, 10, 15, 25 nebo 45 dnů pro dané umístění souřadnic. Odpověď obsahuje podrobnosti, jako je teplota, vítr, srážky, kvalita vzduchu a index UV. V tomto příkladu požadujeme pět dnů nastavením duration=5
.
Důležité
V cenové úrovni S0 si můžete vyžádat denní prognózu na následujících 1, 5, 10 a 15 dnů. V cenové úrovni Gen1 (S1) nebo Gen2 si můžete vyžádat denní prognózu za příštích 25 dní a 45 dní.
Vyřazení cenové úrovně Azure Maps Gen1 z provozu
Cenová úroveň Gen1 je teď zastaralá a bude vyřazena 15. 9. 26. Cenová úroveň Gen2 nahrazuje cenovou úroveň Gen1 (S0 i S1). Pokud má váš účet Azure Maps vybranou cenovou úroveň Gen1, můžete před vyřazením přepnout na ceny Gen2, jinak se automaticky aktualizuje. Další informace najdete v tématu Správa cenové úrovně účtu Azure Maps.
V tomto příkladu použijete rozhraní API Získat denní prognózu k načtení pětidenní předpovědi počasí pro souřadnice umístěné v Seattlu, WA.
V aplikaci bruno vyberte NOVÝ POŽADAVEK a vytvořte žádost. V okně NOVÝ POŽADAVEK nastavte typ na HTTP. Zadejte název požadavku.
V rozevíracím seznamu adres URL vyberte metodu GET HTTP a zadejte následující adresu 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}
Vyberte modré tlačítko Vytvořit .
Vyberte tlačítko Spustit.
Tělo odpovědi obsahuje pětdenní data předpovědi počasí. V zájmu stručnosti se v následující odpovědi JSON zobrazí prognóza prvního dne.
{ "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" ] } ] }
Vyžádání dat předpovědi počasí po hodinách
Rozhraní API pro získání hodinových prognóz vrátí podrobnou předpověď počasí o hodinu pro následující 1, 12, 24 (1 den), 72 (3 dny), 120 (5 dní) a 240 hodin (10 dní) pro dané umístění souřadnic. Rozhraní API vrátí podrobnosti, jako je teplota, vlhkost, vítr, srážky a index UV.
Důležité
V cenové úrovni Gen1 (S0) si můžete vyžádat hodinovou prognózu pro příštích 1, 12, 24 hodin (1 den) a 72 hodin (3 dny). V cenové úrovni Gen1 (S1) nebo Gen2 si můžete vyžádat hodinovou prognózu pro příštích 120 (5 dní) a 240 hodin (10 dní).
V tomto příkladu použijete rozhraní API Get Hourly Forecast k načtení hodinové předpovědi počasí po dobu následujících 12 hodin v souřadnicích v Seattlu, WA.
V aplikaci bruno vyberte NOVÝ POŽADAVEK a vytvořte žádost. V okně NOVÝ POŽADAVEK nastavte typ na HTTP. Zadejte název požadavku.
V rozevíracím seznamu adres URL vyberte metodu GET HTTP a zadejte následující adresu 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}
Vyberte modré tlačítko Vytvořit .
Vyberte tlačítko Spustit.
Tělo odpovědi obsahuje data předpovědi počasí na příštích 12 hodin. Následující příklad odpovědi JSON zobrazuje pouze první hodinu:
{ "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 } } ] }
Vyžádání dat předpovědi počasí po minutách
Rozhraní API pro prognózu get minute vrátí minutové předpovědi pro dané umístění po dobu následujících 120 minut. Uživatelé mohou požádat o předpověď počasí v intervalech 1, 5 a 15 minut. Odpověď obsahuje podrobnosti, jako je typ srážek (včetně deště, sněhu nebo kombinace obou), počáteční čas a hodnota intenzity srážek (dBZ).
V tomto příkladu použijete rozhraní API get Minute Forecast k načtení předpovědi počasí po minutách na souřadnicích umístěných v Seattlu, WA. Předpověď počasí je uvedena na dalších 120 minut. Náš dotaz požaduje, aby prognóza byla zadána v 15minutových intervalech, ale parametr můžete upravit na 1 nebo 5 minut.
V aplikaci bruno vyberte NOVÝ POŽADAVEK a vytvořte žádost. V okně NOVÝ POŽADAVEK nastavte typ na HTTP. Zadejte název požadavku.
V rozevíracím seznamu adres URL vyberte metodu GET HTTP a zadejte následující adresu 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}
Vyberte modré tlačítko Vytvořit .
Vyberte tlačítko Spustit.
Tělo odpovědi obsahuje data předpovědi počasí za dalších 120 minut v 15minutových intervalech.
{ "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 } ] }