Richiedere dati meteo in tempo reale e previsti usando i servizi meteo Mappe di Azure
Mappe di Azure i servizi meteo sono un set di API RESTful che consentono agli sviluppatori di integrare dati cronologici, in tempo reale e visualizzazioni meteo altamente dinamici nelle proprie soluzioni.
Questo articolo illustra come richiedere dati meteo in tempo reale e previsti:
- Richiedere dati meteo in tempo reale (correnti) usando l'API Ottieni condizioni correnti.
- Richiedere avvisi meteo gravi usando l'API Ottieni avvisi meteo gravi.
- Richiedere previsioni giornaliere usando l'API Get Daily Forecast.
- Richiedere previsioni orarie usando l'API Get Hourly Forecast.
- Richiedere previsioni minuto per minuto usando l'API Get Minute Forecast.
Questo video fornisce esempi per effettuare chiamate REST ai servizi meteo di Mappe di Azure.
Prerequisiti
Importante
Negli esempi di URL presenti in questo articolo sostituire {Your-Azure-Maps-Subscription-key}
con la chiave di sottoscrizione di Mappe di Azure.
Questa esercitazione usa l'applicazione bruno , ma è possibile scegliere un ambiente di sviluppo api diverso.
Richiedere dati meteo in tempo reale
L'API Get Current Conditions restituisce condizioni meteorologiche dettagliate, ad esempio precipitazioni, temperatura e vento per una determinata posizione di coordinate. Inoltre, è possibile recuperare le osservazioni delle ultime 6 o 24 ore per una determinata posizione. La risposta include dettagli come data e ora di osservazione, descrizione delle condizioni meteorologiche, icona meteo, bandiere degli indicatori di precipitazione e temperatura. Vengono restituiti anche l'indice RealFeel™ Temperature e uv(UV).
In questo esempio si usa l'API Get Current Conditions per recuperare le condizioni meteorologiche correnti alle coordinate che si trovano a Seattle, WA.
Aprire l'app bruno, selezionare NUOVA RICHIESTA per creare la richiesta. Nella finestra NUOVA RICHIESTA impostare Tipo su HTTP. Immettere un nome per la richiesta.
Selezionare il metodo GET HTTP nell'elenco a discesa URL e quindi immettere l'URL seguente:
https://atlas.microsoft.com/weather/currentConditions/json?api-version=1.0&query=47.60357,-122.32945&subscription-key={Your-Azure-Maps-Subscription-key}
Selezionare il pulsante blu Crea .
Selezionare il pulsante Esegui.
Il corpo della risposta contiene le informazioni meteo correnti.
{ "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 } } } } ] }
Richiedere avvisi meteo gravi
Mappe di Azure'API Get Severe Weather Alerts restituisce gli avvisi meteorologici gravi disponibili in tutto il mondo sia dalle agenzie meteorologiche ufficiali del governo che dai provider di avvisi meteorologici regionali. Il servizio restituisce dettagli come tipo di avviso, categoria, livello. Il servizio restituisce anche descrizioni dettagliate sugli avvisi gravi attivi per la posizione richiesta, ad esempio uragani, temporali, fulmini, onde di calore o incendi boschivi. Ad esempio, i responsabili della logistica possono visualizzare condizioni meteorologiche gravi su una mappa, insieme alle sedi aziendali e percorsi pianificati, e coordinarsi ulteriormente con i conducenti e i lavoratori locali.
In questo esempio si usa l'API Get Severe Weather Alerts per recuperare le condizioni meteorologiche correnti alle coordinate che si trovano a Cheyenne, WY.
Nota
In questo esempio vengono recuperati avvisi meteo gravi al momento della stesura di questo articolo. È probabile che non ci siano più avvisi meteorologici gravi nella località richiesta. Per recuperare i dati di avviso gravi effettivi durante l'esecuzione di questo esempio, è necessario recuperare i dati in una posizione di coordinata diversa.
Nell'app bruno selezionare NUOVA RICHIESTA per creare la richiesta. Nella finestra NUOVA RICHIESTA impostare Tipo su HTTP. Immettere un nome per la richiesta.
Selezionare il metodo GET HTTP nell'elenco a discesa URL e quindi immettere l'URL seguente:
https://atlas.microsoft.com/weather/severe/alerts/json?api-version=1.0&query=41.161079,-104.805450&subscription-key={Your-Azure-Maps-Subscription-key}
Selezionare il pulsante blu Crea .
Selezionare il pulsante Esegui.
Se non sono presenti avvisi meteo gravi, il corpo della risposta contiene una matrice vuota
results[]
. Se sono presenti avvisi meteo gravi, il corpo della risposta contiene una risposta simile alla seguente 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" } ] },... ] }
Richiedere i dati delle previsioni meteo giornaliere
L'API Get Daily Forecast restituisce previsioni meteo giornaliere dettagliate, ad esempio temperatura e vento. La richiesta può specificare il numero di giorni da restituire: 1, 5, 10, 15, 25 o 45 giorni per una determinata posizione di coordinata. La risposta include dettagli come temperatura, vento, precipitazioni, qualità dell'aria e indice UV. In questo esempio viene richiesto per cinque giorni impostando duration=5
.
Importante
Nel piano tariffario S0 è possibile richiedere previsioni giornaliere per i successivi 1, 5, 10 e 15 giorni. Nel piano tariffario Gen1 (S1) o Gen2 è possibile richiedere previsioni giornaliere per i prossimi 25 giorni e 45 giorni.
Ritiro del piano tariffario Gen1 di Mappe di Azure
Il piano tariffario Gen1 è ora deprecato e verrà ritirato il 15/9/26. Il piano tariffario Gen2 sostituisce il piano tariffario Gen1 (S0 e S1). Se per l'account Mappe di Azure è selezionato il piano tariffario Gen1, è possibile passare al piano tariffario Gen2 prima che venga ritirato. In caso contrario, l'aggiornamento verrà eseguito automaticamente. Per altre informazioni, vedere Gestire il piano tariffario dell'account mappe di Azure.
In questo esempio si usa l'API Get Daily Forecast per recuperare le previsioni meteo di cinque giorni per le coordinate situate a Seattle, WA.
Nell'app bruno selezionare NUOVA RICHIESTA per creare la richiesta. Nella finestra NUOVA RICHIESTA impostare Tipo su HTTP. Immettere un nome per la richiesta.
Selezionare il metodo GET HTTP nell'elenco a discesa URL e quindi immettere l'URL seguente:
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}
Selezionare il pulsante blu Crea .
Selezionare il pulsante Esegui.
Il corpo della risposta contiene i dati delle previsioni meteo di cinque giorni. Per motivi di brevità, la risposta JSON seguente mostra la previsione per il primo giorno.
{ "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" ] } ] }
Richiedere i dati delle previsioni meteo orarie
L'API Get Hourly Forecast restituisce previsioni meteo dettagliate per l'ora per i successivi 1, 12, 24 (1 giorno), 72 (3 giorni), 120 (5 giorni) e 240 ore (10 giorni) per la posizione della coordinata specificata. L'API restituisce dettagli come temperatura, umidità, vento, precipitazioni e indice UV.
Importante
Nel piano tariffario Gen1 (S0) è possibile richiedere previsioni orarie per le prossime 1, 12, 24 ore (1 giorno) e 72 ore (3 giorni). Nel piano tariffario Gen1 (S1) o Gen2 è possibile richiedere previsioni orarie per i prossimi 120 (5 giorni) e 240 ore (10 giorni).
In questo esempio si usa l'API Get Hourly Forecast per recuperare le previsioni meteo orarie per le prossime 12 ore alle coordinate situate a Seattle, WA.
Nell'app bruno selezionare NUOVA RICHIESTA per creare la richiesta. Nella finestra NUOVA RICHIESTA impostare Tipo su HTTP. Immettere un nome per la richiesta.
Selezionare il metodo GET HTTP nell'elenco a discesa URL e quindi immettere l'URL seguente:
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}
Selezionare il pulsante blu Crea .
Selezionare il pulsante Esegui.
Il corpo della risposta contiene i dati delle previsioni meteo per le prossime 12 ore. La risposta JSON di esempio seguente mostra solo la prima ora:
{ "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 } } ] }
Richiedere i dati delle previsioni meteo minuto per minuto
L'API Get Minute Forecast restituisce previsioni di minuti per minuto per una determinata posizione per i prossimi 120 minuti. Gli utenti possono richiedere previsioni meteo a intervalli di 1, 5 e 15 minuti. La risposta include dettagli come il tipo di precipitazione (tra cui pioggia, neve o una combinazione di entrambi), ora di inizio e valore di intensità delle precipitazioni (dBZ).
In questo esempio si usa l'API Get Minute Forecast per recuperare le previsioni meteo minute-by-minute alle coordinate che si trovano a Seattle, WA. Le previsioni meteo sono previste per i prossimi 120 minuti. La query richiede che la previsione venga fornita a intervalli di 15 minuti, ma è possibile modificare il parametro in modo che sia 1 o 5 minuti.
Nell'app bruno selezionare NUOVA RICHIESTA per creare la richiesta. Nella finestra NUOVA RICHIESTA impostare Tipo su HTTP. Immettere un nome per la richiesta.
Selezionare il metodo GET HTTP nell'elenco a discesa URL e quindi immettere l'URL seguente:
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}
Selezionare il pulsante blu Crea .
Selezionare il pulsante Esegui.
Il corpo della risposta contiene i dati delle previsioni meteo per i prossimi 120 minuti, in intervalli di 15 minuti.
{ "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 } ] }