Dela via


Begära väderdata i realtid och prognostiserade med hjälp av Azure Maps Weather-tjänsten

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

Den här artikeln visar hur du begär väderdata i både realtid och prognoser:

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



Förutsättningar

Viktigt!

I URL-exemplen i den här artikeln måste du ersätta {Your-Azure-Maps-Subscription-key} med din Azure Maps-prenumerationsnyckel.

I den här handledningen används bruno-applikationen , men du kan välja en annan API-utvecklingsmiljö.

Begär väderdata i realtid

API:et Get Current Conditions returnerar detaljerade väderförhållanden, till exempel nederbörd, temperatur och vind för en viss koordinatplats. Dessutom kan observationer från de senaste 6 eller 24 timmarna för en viss plats hämtas. Svaret innehåller information som observationsdatum och tid, beskrivning av väderförhållanden, väderikon, nederbördsindikatorflaggor 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 bruno-appen och välj NY BEGÄRAN för att skapa begäran. I fönstret NY BEGÄRAN anger du Typ till HTTP. Ange ett namn för begäran.

  2. Välj metoden GET HTTP i listrutan URL och ange sedan följande URL:

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

  4. Välj knappen Kör.

    En skärmdump som visar URL:en för begäran om väderdata i realtid med körknappen markerad i bruno-appen.

    Svarstexten innehåller aktuell väderinformation.

    {
      "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
              }
            }
          }
        }
      ]
    }
    

Begär varningar om oväder

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

Anmärkning

Det här exemplet hämtar varningar om oväder när detta skrivs. Det är troligt att det inte längre finns några allvarliga vädervarningar 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 BRUNO-APPEN VÄLJER DU NY FÖRFRÅGAN FÖR ATT SKAPA FÖRFRÅGAN. I fönstret NY BEGÄRAN anger du Typ till HTTP. Ange ett namn för begäran.

  2. Välj metoden GET HTTP i listrutan URL och ange sedan följande 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}
    
  3. Välj den blå knappen Skapa .

  4. Välj knappen Kör.

    En skärmdump som visar URL:en för begäran om varningar om oväder med körknappen markerad i bruno-appen.

    Om det inte finns några aviseringar 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är dagliga väderprognosdata

API:et Get Daily Forecast returnerar detaljerad daglig väderprognos, 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 inkluderar detaljer som temperatur, vind, nederbörd, luftkvalitet och UV-index. I det här exemplet begär vi fem dagar genom att ange duration=5.

Viktigt!

På prisnivån S0 kan du begära en daglig prognos för de kommande 1, 5, 10 och 15 dagarna. På prisnivån Gen1 (S1) eller Gen2 kan du begära en daglig prognos för de kommande 25 dagarna och 45 dagarna.

Azure Maps Gen1-prisnivån dras tillbaka

Prisnivån Gen1 är nu inaktuell och dras tillbaka 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 Get Daily Forecast för att hämta femdagarsväderprognosen för koordinater som finns i Seattle, WA.

  1. I BRUNO-APPEN VÄLJER DU NY FÖRFRÅGAN FÖR ATT SKAPA FÖRFRÅGAN. I fönstret NY BEGÄRAN anger du Typ till HTTP. Ange ett namn för begäran.

  2. Välj metoden GET HTTP i listrutan URL och ange sedan följande 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}
    
  3. Välj den blå knappen Skapa .

  4. Välj knappen Kör.

    En skärmdump som visar URL:en för begäran om dagliga väderprognosdata med körknappen markerad i bruno-appen.

    Svarstexten innehåller väderprognosdata för fem dagar. För korthetens skull visar följande JSON-svar prognosen för den första dagen.

    {
      "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"
          ]
        }
      ]
    }
    

Begär väderprognosdata per 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!

På prisnivån Gen1 (S0) kan du begära en prognos per timme för de kommande 1, 12, 24 timmarna (1 dag) och 72 timmar (3 dagar). På prisnivån Gen1 (S1) eller Gen2 kan du begära en prognos per timme 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 på koordinater som finns i Seattle, WA.

  1. I BRUNO-APPEN VÄLJER DU NY FÖRFRÅGAN FÖR ATT SKAPA FÖRFRÅGAN. I fönstret NY BEGÄRAN anger du Typ till HTTP. Ange ett namn för begäran.

  2. Välj metoden GET HTTP i listrutan URL och ange sedan följande 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}
    
  3. Välj den blå knappen Skapa .

  4. Välj knappen Kör.

    En skärmbild som visar URL:en för att begära väderprognosdata per timme med körknappen markerad i bruno-appen.

    Svarstexten innehåller väderprognosdata för de kommande 12 timmarna. Följande exempel på JSON-svar visar bara den första timmen:

    {
      "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
          }
        }
      ]
    }
    

Begär väderprognosdata minut för minut

API:et Get Minute Forecast returnerar minut-för-minut-prognoser för en viss plats under de kommande 120 minuterna. Användare kan begära väderprognoser i intervaller om 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 värde för nederbördsintensitet (dBZ).

I det här exemplet använder du API:et Get Minute Forecast för att hämta väderprognosen minut för minut på koordinater som finns i Seattle, WA. Väderprognosen ges för de kommande 120 minuterna. Vår fråga begär att prognosen ges med 15-minutersintervall, men du kan justera parametern så att den är antingen 1 eller 5 minuter.

  1. I BRUNO-APPEN VÄLJER DU NY FÖRFRÅGAN FÖR ATT SKAPA FÖRFRÅGAN. I fönstret NY BEGÄRAN anger du Typ till HTTP. Ange ett namn för begäran.

  2. Välj metoden GET HTTP i listrutan URL och ange sedan följande 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}
    
  3. Välj den blå knappen Skapa .

  4. Välj knappen Kör.

    En skärmbild som visar URL:en för att begära väderprognosdata minut för minut med körknappen markerad i bruno-appen.

    Svarstexten innehåller väderprognosdata för de kommande 120 minuterna, i 15-minutersintervall.

    {
      "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
        }
      ]
    }
    

Nästa steg