Begär realtidsdata och prognostiserade väderdata med Azure Maps Vädertjänster

Azure Maps Vädertjänster är en uppsättning RESTful-API:er som gör det möjligt för utvecklare att integrera mycket dynamiska historiska data, realtidsdata och prognostiserade väderdata och visualiseringar i sina lösningar.

Den här artikeln visar hur du begär både realtidsdata och prognostiserade väderdata:

Den här videon innehåller exempel på hur du gör REST-anrop till Azure Maps Weather-tjänster.



Förutsättningar

Den här självstudien använder 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. Observationer från de senaste 6 eller 24 timmarna för en viss plats kan också hämtas. Svaret innehåller information som datum och tid för observation, beskrivning av väderförhållanden, väderikon, flaggor för nederbördsindikatorer och temperatur. RealFeel™ Temperature och ultraviolett (UV) index 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 vid koordinater som finns i Seattle, WA.

  1. Ö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.

  2. Välj metoden GET HTTP på fliken builder 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 {Your-Azure-Maps-Subscription-key} du med din Azure Maps prenumerationsnyckel.

    https://atlas.microsoft.com/weather/currentConditions/json?api-version=1.0&query=47.60357,-122.32945&subscription-key={Your-Azure-Maps-Subscription-key}
    
  3. Välj 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äder

Azure Maps Get Severe Weather Alerts API returnerar de ovädersaviseringar som är tillgängliga över hela världen från både officiella statliga meteorologiska myndigheter och ledande globala till regionala vädervarningsleverantörer. Tjänsten returnerar information som aviseringstyp, kategori, nivå. Tjänsten returnerar också detaljerade beskrivningar om de aktiva allvarliga aviseringarna för den begärda platsen, till exempel orkaner, åskväder, blixtnedslag, värmeböljor eller skogsbränder. Logistikchefer kan till exempel visualisera svåra väderförhållanden på en karta, tillsammans med affärsplatser och planerade rutter, och samordna vidare med förare 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 vid koordinaterna i Cheyenne, WY.

Anteckning

Det här exemplet hämtar aviseringar om oväder när detta skrivs. Det är troligt att det inte längre finns några ovädersvarningar 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.

  1. 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.

  2. Välj metoden GET HTTP på fliken builder 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 {Your-Azure-Maps-Subscription-key} du med din Azure Maps prenumerationsnyckel.

    https://atlas.microsoft.com/weather/severe/alerts/json?api-version=1.0&query=41.161079,-104.805450&subscription-key={Your-Azure-Maps-Subscription-key}
    
  3. Välj den blå knappen Skicka . Om det inte finns några varningar om oväder innehåller svarstexten en tom results[] matris. Om det finns aviseringar om oväder 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 detaljerade dagliga väderprognoser, 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 och UV-index. I det här exemplet begär vi i 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 Gen1 (S1) eller Gen2 kan du begära daglig prognos för de kommande 25 dagarna och 45 dagarna.

Azure Maps Gen1-prisnivån dras tillbaka

Gen1-prisnivån är nu inaktuell och tas ur bruk den 26-09-15. Prisnivån Gen2 ersätter prisnivån Gen1 (både S0 och S1). Om ditt Azure Maps konto har valt prisnivån Gen1 kan du växla till Gen2-priser innan det dras tillbaka, annars uppdateras det automatiskt. Mer information finns i Hantera prisnivån för ditt Azure Maps-konto.

I det här exemplet använder du API:et Hämta daglig prognos för att hämta femdagars väderprognosen för koordinater i Seattle, WA.

  1. 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.

  2. Välj metoden GET HTTP på fliken builder 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 {Your-Azure-Maps-Subscription-key} du med din Azure Maps 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-Subscription-key}
    
  3. Välj den blå knappen Skicka . Svarstexten innehåller fem dagars väderprognosdata. För korthets skull visar följande JSON-svar 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 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 och UV-index.

Viktigt

I prisnivån Gen1 (S0) kan du begära en timprognos för de kommande 1, 12, 24 timmarna (1 dag) och 72 timmar (3 dagar). I prisnivån Gen1 (S1) eller Gen2 kan du begära en timprognos för de kommande 120 (5 dagarna) och 240 timmarna (10 dagar).

I det här exemplet använder du API:et Get Hourly Forecast för att hämta väderprognosen per timme för de kommande 12 timmarna vid koordinaterna i Seattle, WA.

  1. 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.

  2. Välj metoden GET HTTP på fliken builder 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 {Your-Azure-Maps-Subscription-key} du med din Azure Maps 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-Subscription-key}
    
  3. Välj den blå knappen Skicka . Svarstexten innehåller väderprognosdata för de kommande 12 timmarna. För korthets skull visar följande JSON-svar 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är väderprognosdata minut för minut

API:et Get Minute Forecast returnerar prognoser minut för minut för en viss plats för de kommande 120 minuterna. Användare kan begära väderprognoser i intervall på 1, 5 och 15 minuter. Svaret innehåller information som typen av nederbörd (inklusive regn, snö eller en blandning av båda), starttid och nederbördsintensitetsvärde (dBZ).

I det här exemplet använder du API:et Get Minute Forecast (Hämta minutprognos) för att hämta väderprognosen minut för minut vid koordinaterna i Seattle, WA. Väderprognosen ges 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.

  1. 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.

  2. Välj metoden GET HTTP på fliken builder 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 {Your-Azure-Maps-Subscription-key} du med din Azure Maps 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-Subscription-key}
    
  3. Välj den blå knappen Skicka . Svarstexten innehåller väderprognosdata för de kommande 120 minuterna, inom 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
        }
        ]
    }
    

Nästa steg