Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служба погоды Azure Maps — это набор API-интерфейсов RESTful, который позволяет разработчикам интегрировать в свои решения высокодинамичные исторические данные, данные и визуализации о погоде в реальном времени, а также прогнозы.
В этой статье показано, как запрашивать данные о погоде в реальном времени и прогнозы:
- Запрашивайте данные о погоде в реальном времени (текущие) с помощью API Get Current Conditions.
- Запрашивайте оповещения о неблагоприятных погодных условиях с помощью API Get Severe Weather Alerts.
- Запрашивайте ежедневные прогнозы с помощью Get Daily Forecast API.
- Запрашивайте почасовые прогнозы с помощью Get Hourly Forecast API.
- Запрашивайте поминутные прогнозы с помощью API Get Minute Forecast.
В этом видео приведены примеры выполнения вызовов REST к службе погоды Azure Maps.
Предпосылки
- Azure Maps учетная запись
- Ключ подписки
Это важно
В примерах URL-адресов в этой статье вам потребуется заменить {Your-Azure-Maps-Subscription-key}
ключ подписки Azure Maps.
В этом руководстве используется приложение bruno , но вы можете выбрать другую среду разработки API.
Запрос данных о погоде в режиме реального времени
API Get Current Conditions возвращает подробные погодные условия, такие как осадки, температура и ветер для заданного координатного местоположения. Кроме того, можно получить данные наблюдений за последние 6 или 24 часа для определенного местоположения. Ответ включает в себя такие сведения, как дата и время наблюдения, описание погодных условий, значок погоды, флаги индикатора осадков и температура. Также возвращаются температура RealFeel™ и ультрафиолетовый (УФ) индекс.
В этом примере вы используете API Get Current Conditions для получения текущих погодных условий в координатах, расположенных в Сиэтле, штат Вашингтон.
Откройте приложение bruno, выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне НОВЫЙ ЗАПРОС установите для параметра Type значение HTTP. Введите имя запроса.
Выберите метод GET HTTP в раскрывающемся списке URL , затем введите следующий URL:
https://atlas.microsoft.com/weather/currentConditions/json?api-version=1.0&query=47.60357,-122.32945&subscription-key={Your-Azure-Maps-Subscription-key}
Выберите синюю кнопку «Создать ».
Выберите кнопку «Выполнить».
Текст ответа содержит актуальную информацию о погоде.
{ "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 } } } } ] }
Запрос предупреждений о суровых погодных условиях
API Azure Maps для получения оповещений о неблагоприятных погодных условиях возвращает оповещения о неблагоприятных погодных условиях, доступные по всему миру как от официальных государственных метеорологических агентств, так и от ведущих глобальных и региональных поставщиков оповещений о погоде. Служба возвращает такие сведения, как тип оповещения, категория, уровень. Сервис также возвращает подробные описания активных серьезных оповещений для запрашиваемого местоположения, таких как ураганы, грозы, молнии, волны тепла или лесные пожары. Например, менеджеры по логистике могут визуализировать суровые погодные условия на карте, а также местоположения бизнеса и запланированные маршруты, а также дополнительно координировать свои действия с водителями и местными работниками.
В этом примере вы используете API Get Severe Weather Alerts для получения текущих погодных условий в координатах, расположенных в Шайенне, штат Вайоминг.
Замечание
В этом примере извлекаются предупреждения о суровых погодных условиях на момент написания этой статьи. Вполне вероятно, что в запрашиваемом месте больше нет предупреждений о суровых погодных условиях. Чтобы получить фактические данные о серьезных предупреждениях при выполнении этого примера, вам потребуется получить данные в другом координатном расположении.
В приложении bruno выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне НОВЫЙ ЗАПРОС установите для параметра Type значение HTTP. Введите имя запроса.
Выберите метод GET HTTP в раскрывающемся списке URL , затем введите следующий 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}
Выберите синюю кнопку «Создать ».
Выберите кнопку «Выполнить».
Если предупреждений о суровых погодных условиях нет, тело ответа содержит пустой
results[]
массив. Если есть предупреждения о суровых погодных условиях, текст ответа содержит примерно следующий ответ 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" } ] },... ] }
Запрос данных ежедневного прогноза погоды
API Get Daily Forecast возвращает подробный ежедневный прогноз погоды, такой как температура и ветер. В запросе можно указать, через сколько дней нужно вернуть: 1, 5, 10, 15, 25 или 45 дней для заданного координатного местоположения. Реакция включает в себя такие детали, как температура, ветер, осадки, качество воздуха и УФ-индекс. В этом примере мы запрашиваем пять дней, установив duration=5
.
Это важно
В ценовой категории S0 вы можете запросить ежедневный прогноз на следующие 1, 5, 10 и 15 дней. В ценовой категории Gen1 (S1) или Gen2 вы можете запросить ежедневный прогноз на следующие 25 дней и 45 дней.
Уход с рынка тарифного плана Azure Maps 1-го поколения
Ценовой уровень Gen1 устарел и будет снят с обслуживания 15.09.2026. Ценовая категория 2-го поколения заменяет ценовую категорию 1-го поколения (как S0, так и S1). Если в вашей учетной записи Azure Maps выбрана ценовая категория 1-го поколения, вы можете переключиться на цены 2-го поколения до того, как она будет прекращена, в противном случае она будет автоматически обновлена. Дополнительные сведения см. в статье "Управление ценовой категорией учетной записи Azure Maps".
В этом примере вы используете API получения ежедневного прогноза погоды для получения пятидневного прогноза погоды для координат, расположенных в Сиэтле, штат Вашингтон.
В приложении bruno выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне НОВЫЙ ЗАПРОС установите для параметра Type значение HTTP. Введите имя запроса.
Выберите метод GET HTTP в раскрывающемся списке URL , затем введите следующий 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}
Выберите синюю кнопку «Создать ».
Выберите кнопку «Выполнить».
Текст ответа содержит данные прогноза погоды на пять дней. Для краткости в следующем ответе JSON показан прогноз на первый день.
{ "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" ] } ] }
Запрос данных о почасовом прогнозе погоды
API получения почасового прогноза погоды возвращает подробный прогноз погоды по часам на следующие 1, 12, 24 (1 день), 72 (3 дня), 120 (5 дней) и 240 часов (10 дней) для заданного координатного местоположения. API возвращает такие данные, как температура, влажность, ветер, осадки и УФ-индекс.
Это важно
В ценовой категории Gen1 (S0) можно запросить почасовой прогноз на следующие 1, 12, 24 часа (1 день) и 72 часа (3 дня). В ценовой категории Gen1 (S1) или Gen2 вы можете запросить почасовой прогноз на следующие 120 (5 дней) и 240 часов (10 дней).
В этом примере вы используете API получения почасового прогноза погоды для получения почасового прогноза погоды на следующие 12 часов по координатам, расположенным в Сиэтле, штат Вашингтон.
В приложении bruno выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне НОВЫЙ ЗАПРОС установите для параметра Type значение HTTP. Введите имя запроса.
Выберите метод GET HTTP в раскрывающемся списке URL , затем введите следующий 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}
Выберите синюю кнопку «Создать ».
Выберите кнопку «Выполнить».
Текст ответа содержит данные прогноза погоды на ближайшие 12 часов. В следующем примере ответа JSON отображается только первый час:
{ "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 } } ] }
Запрос поминутных данных прогноза погоды
API Get Minute Forecast возвращает поминутные прогнозы для заданного местоположения на следующие 120 минут. Пользователи могут запрашивать прогноз погоды с интервалом в 1, 5 и 15 минут. Реакция включает в себя такие детали, как тип осадков (включая дождь, снег или их смесь), время начала и значение интенсивности осадков (дБЗ).
В этом примере вы используете API Get Minute Forecast для получения поминутного прогноза погоды по координатам, расположенным в Сиэтле, штат Вашингтон. Прогноз погоды указан на ближайшие 120 минут. Наш запрос требует, чтобы прогноз выдавался с интервалом в 15 минут, но вы можете настроить параметр на 1 или 5 минут.
В приложении bruno выберите НОВЫЙ ЗАПРОС , чтобы создать запрос. В окне НОВЫЙ ЗАПРОС установите для параметра Type значение HTTP. Введите имя запроса.
Выберите метод GET HTTP в раскрывающемся списке URL , затем введите следующий 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}
Выберите синюю кнопку «Создать ».
Выберите кнопку «Выполнить».
Текст ответа содержит данные прогноза погоды на ближайшие 120 минут с интервалом в 15 минут.
{ "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 } ] }