Vyžádání dat o počasí v reálném čase a předpovídá se pomocí služeb Azure Mapy Weather
Služby Azure Mapy 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 a předpovídá je. V tomto článku vám ukážeme, jak požádat o data o počasí v reálném čase i předpovídá se.
V tomto článku se dozvíte, jak:
- Vyžádejte si data o počasí v reálném čase (aktuální) pomocí rozhraní API Získat aktuální podmínky.
- Vyžádejte si závažná upozornění na počasí pomocí rozhraní API Get Severe Weather Alerts.
- Vyžádejte si denní prognózy pomocí rozhraní API Get Daily Forecast.
- Vyžádejte si hodinové předpovědi pomocí rozhraní API Get Hourly Forecast.
- S využitím rozhraní Get Minute Forecast API si vyžádejte prognózy minut po minutách.
Toto video obsahuje příklady volání REST do služeb Azure Mapy Weather.
Požadavky
Získejte primární klíč předplatného, označované také jako primární klíč nebo klíč předplatného. Další informace o ověřování v Azure Mapy najdete v tématu Správa ověřování v Azure Mapy.
Důležité
Rozhraní API Get Minute Forecast vyžadujecenovou úroveň Gen 1 (S1) nebo Gen 2. Všechna ostatní rozhraní API vyžadují klíč cenové úrovně S0.
V tomto kurzu se používá aplikace Postman, ale můžete zvolit jiné vývojové prostředí API.
Vyžádání dat o počasí v reálném čase
Rozhraní API Získat aktuální podmínky vrátí podrobné povětrnostní podmínky, jako jsou srážky, teplota a větru, pro danou souřadnicovou polohu. Je také možné 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í, stručný popis povětrnostních podmínek, ikona počasí, příznaky indikátoru srážek a teplota. Vrátí se ™ RealFeel– Temperature (Teplota) a ultraviolet (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 ve Wadu.
Otevřete aplikaci Postman. Výběrem možnosti Nový vytvořte žádost. V okně Vytvořit nový vyberte Požadavek HTTP. Zadejte Název požadavku.
Na kartě Tvůrce vyberte metodu GET HTTP a zadejte následující adresu URL. U této žádosti a dalších požadavků uvedených v tomto článku nahraďte
{Azure-Maps-Primary-Subscription-key}primárním klíčem předplatného.https://atlas.microsoft.com/weather/currentConditions/json?api-version=1.0&query=47.60357,-122.32945&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Klikněte na modré tlačítko Odeslat. Tělo odpovědi obsahuje aktuální informace o počasí.
{ "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 } } } } ] }
Žádost o závažné výstrahy počasí
Rozhraní API azure Mapy Get Severe Weather Alerts vrací závažná upozornění na počasí dostupná po celém světě od obou oficiálních meteorologických úřadů státní správy a vedoucích globálních poskytovatelů upozornění na počasí v oblasti. Služba může vracet podrobnosti, jako je typ výstrahy, kategorie, úroveň a podrobný popis aktivních závažných výstrah pro požadované místo, jako jsou hurikány, hurikány, hurikány, blesky, heat vlny nebo požáry v doménové struktuře. Manažeři logistiky mohou například vizualizovat na mapě vážné povětrnostní podmínky spolu s obchodními umístěními a plánovanými trasami a dále koordinovat s řidiči a místními 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 na souřadnicích umístěných v Čeyenu ve WY.
Poznámka
V tomto příkladu se v době psaní tohoto textu načítá závažná upozornění na počasí. Je pravděpodobné, že v požadovaném umístění už nejsou žádné závažné výstrahy 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 umístění souřadnic.
V aplikaci Postman vytvořte požadavek výběrem možnosti Nový. V okně Vytvořit nový vyberte Požadavek HTTP. Zadejte Název požadavku.
Na kartě Tvůrce vyberte metodu GET HTTP a zadejte následující adresu URL. U této žádosti a dalších požadavků uvedených v tomto článku nahraďte
{Azure-Maps-Primary-Subscription-key}primárním klíčem předplatného.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}Klikněte na modré tlačítko Odeslat. Pokud nejsou k dispozici žádné závažné výstrahy počasí, bude tělo odpovědi obsahovat prázdné
results[]pole. Pokud dojde k závažným upozorněním na počasí, text odpovědi bude obsahovat něco podobného 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 předpovědi počasí za den
Rozhraní API Get Daily Forecast vrací podrobnou denní předpověď počasí, jako je teplota a větru. Požadavek může určit, kolik dní se má vrátit: 1, 5, 10, 15, 25 nebo 45 dnů pro dané umístění souřadnice. Odpověď obsahuje podrobnosti, jako je teplota, směr větru, srážky, kvalita ovzduší a index UV. V tomto příkladu si vyžádáme 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 Gen 1 (S1) nebo Gen 2 si můžete vyžádat denní předpověď na následujících 25 dnů a 45 dnů.
V tomto příkladu použijete rozhraní API Get Daily Forecast k načtení pětidenní předpovědi počasí pro souřadnice nacházející se v Seattlu ve wa.
V aplikaci Postman vytvořte požadavek výběrem možnosti Nový. V okně Vytvořit nový vyberte Požadavek HTTP. Zadejte Název požadavku.
Na kartě Tvůrce vyberte metodu GET HTTP a zadejte následující adresu URL. U této žádosti a dalších požadavků uvedených v tomto článku nahraďte
{Azure-Maps-Primary-Subscription-key}primárním klíčem předplatného.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}Klikněte na modré tlačítko Odeslat. Tělo odpovědi obsahuje pětidenní data předpovědi počasí. V zájmu stručnosti níže uvedená odpověď JSON ukazuje prognózu pro první den.
{ "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" ] },... ] }
Vyžádání hodinových dat předpovědi počasí
Rozhraní API Get Hourly Forecast vrátí podrobnou předpověď počasí podle hodiny pro následujících 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 vrací podrobnosti, jako je teplota, vlhkost, směr větru, srážky a index UV.
Důležité
V cenové úrovni S0 si můžete vyžádat hodinovou prognózu na následujících 1, 12, 24 hodin (1 den) a 72 hodin (3 dny). V cenové úrovni Gen 1 (S1) nebo Gen 2 si můžete vyžádat hodinovou prognózu pro dalších 120 (5 dní) a 240 hodin (10 dní).
V tomto příkladu použijete rozhraní GET Hourly Forecast API k načtení hodinové předpovědi počasí na dalších 12 hodin se souřadnicemi umístěnými v Seattlu ve Wadu.
V aplikaci Postman vytvořte požadavek výběrem možnosti Nový. V okně Vytvořit nový vyberte Požadavek HTTP. Zadejte Název požadavku.
Na kartě Tvůrce vyberte metodu GET HTTP a zadejte následující adresu URL. U této žádosti a dalších požadavků uvedených v tomto článku nahraďte
{Azure-Maps-Primary-Subscription-key}primárním klíčem předplatného.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}Klikněte na modré tlačítko Odeslat. Tělo odpovědi obsahuje data předpovědi počasí pro následujících 12 hodin. V zájmu stručnosti níže uvedená odpověď JSON ukazuje předpověď pro první hodinu.
{ "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 } }... ] }
Vyžádání dat předpovědi počasí po minutě
Rozhraní API Get Minute Forecast vrací předpovědi minut po minutách pro dané umístění na dalších 120 minut. Uživatelé si mohou vyžádat předpověď počasí v intervalech 1, 5 a 15 minut. Odpověď obsahuje podrobnosti, jako je typ srážek (včetně srážek, sněžení nebo kombinace obojího), počáteční čas a hodnota intenzity srážek (dBZ).
V tomto příkladu použijete rozhraní GET Minute Forecast API k načtení minut po minutě předpovědi počasí se souřadnicemi umístěnými v Seattlu ve wa. Předpověď počasí je dána 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 Postman vytvořte požadavek výběrem možnosti Nový. V okně Vytvořit nový vyberte Požadavek HTTP. Zadejte Název požadavku.
Na kartě Tvůrce vyberte metodu GET HTTP a zadejte následující adresu URL. U této žádosti a dalších požadavků uvedených v tomto článku nahraďte
{Azure-Maps-Primary-Subscription-key}primárním klíčem předplatného.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}Klikněte na modré tlačítko Odeslat. Tělo odpovědi obsahuje data předpovědi počasí pro 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": 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 } ] }