Azure Haritalar Hava durumu hizmetlerini kullanarak gerçek zamanlı ve tahmin edilen hava durumu verileri isteme
Azure Haritalar Hava Durumu hizmetleri, geliştiricilerin son derece dinamik geçmiş, gerçek zamanlı ve tahmin edilen hava durumu verilerini ve görselleştirmelerini çözümleriyle tümleştirmesine olanak tanıyan bir dizi RESTful API'leridir.
Bu makalede hem gerçek zamanlı hem de tahmin edilen hava durumu verilerinin nasıl istenecekleri gösterilmektedir:
- Geçerli Koşulları Al API'sini kullanarak gerçek zamanlı (geçerli) hava durumu verileri isteyin.
- Ciddi Hava Durumu Uyarıları Al API'sini kullanarak ciddi hava durumu uyarıları isteyin.
- Günlük Tahmin Al API'sini kullanarak günlük tahminler isteyin.
- Saatlik Tahmin Al API'sini kullanarak saatlik tahminler isteyin.
- Dakika Tahmini AL API'sini kullanarak dakika dakika tahminleri isteyin.
Bu videoda, Azure Haritalar Hava Durumu hizmetlerine REST çağrıları yapmaya yönelik örnekler sağlanır.
Önkoşullar
Önemli
Bu makaledeki URL örneklerinde Azure Haritalar abonelik anahtarınızla değiştirmeniz {Your-Azure-Maps-Subscription-key}
gerekir.
Bu öğreticide bruno uygulaması kullanılır, ancak farklı bir API geliştirme ortamı seçebilirsiniz.
Gerçek zamanlı hava durumu verileri isteme
Geçerli Koşulları Al API'si, belirli bir koordinat konumu için yağış, sıcaklık ve rüzgar gibi ayrıntılı hava koşulları döndürür. Ayrıca, belirli bir konum için son 6 veya 24 saatlik gözlemler alınabilir. Yanıt, gözlem tarihi ve saati, hava durumu koşullarının açıklaması, hava durumu simgesi, yağış göstergesi bayrakları ve sıcaklık gibi ayrıntıları içerir. RealFeel™ Sıcaklık ve ultraviyole (UV) dizini de döndürülür.
Bu örnekte, Seattle, WA'da bulunan koordinatlarda geçerli hava koşullarını almak için Geçerli Koşulları Al API'sini kullanırsınız.
bruno uygulamasını açın, isteği oluşturmak için YENİ İstek'i seçin. YENİ İstek penceresinde Tür'i HTTP olarak ayarlayın. İstek için bir Ad girin.
URL açılan listesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin:
https://atlas.microsoft.com/weather/currentConditions/json?api-version=1.0&query=47.60357,-122.32945&subscription-key={Your-Azure-Maps-Subscription-key}
Mavi Oluştur düğmesini seçin.
Çalıştır düğmesini seçin.
Yanıt gövdesi geçerli hava durumu bilgilerini içerir.
{ "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 } } } } ] }
Ciddi hava durumu uyarıları isteme
Azure Haritalar Şiddetli Hava Durumu Uyarıları Alma API'si, hem resmi Kamu Meteoroloji Kurumlarından hem de küresel olarak bölgesel hava durumu uyarı sağlayıcılarının kullanımına sunulan ciddi hava durumu uyarılarını döndürür. Hizmet uyarı türü, kategori ve düzey gibi ayrıntıları döndürür. Hizmet ayrıca istenen konum için kasırgalar, fırtınalar, yıldırım, ısı dalgaları veya orman yangınları gibi etkin ciddi uyarılar hakkında ayrıntılı açıklamalar döndürür. Örnek olarak, lojistik yöneticileri iş konumları ve planlanan rotalarla birlikte bir harita üzerinde ciddi hava koşullarını görselleştirebilir ve sürücülerle ve yerel çalışanlarla daha fazla eşgüdüm sağlayabilir.
Bu örnekte, Cheyenne, WY'de bulunan koordinatlarda geçerli hava koşullarını almak için Şiddetli Hava Durumu Uyarıları Al API'sini kullanırsınız.
Not
Bu örnek, bu yazı sırasında ciddi hava durumu uyarılarını alır. İstenen konumda artık herhangi bir şiddetli hava durumu uyarısı olmaması muhtemeldir. Bu örneği çalıştırırken gerçek ciddi uyarı verilerini almak için verileri farklı bir koordinat konumunda almanız gerekir.
İstek oluşturmak için bruno uygulamasında YENİ İstek'i seçin. YENİ İstek penceresinde Tür'i HTTP olarak ayarlayın. İstek için bir Ad girin.
URL açılan listesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin:
https://atlas.microsoft.com/weather/severe/alerts/json?api-version=1.0&query=41.161079,-104.805450&subscription-key={Your-Azure-Maps-Subscription-key}
Mavi Oluştur düğmesini seçin.
Çalıştır düğmesini seçin.
Şiddetli hava durumu uyarıları yoksa yanıt gövdesi boş
results[]
bir dizi içerir. Şiddetli hava durumu uyarıları varsa, yanıt gövdesi aşağıdaki JSON yanıtına benzer bir şey içerir:{ "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" } ] },... ] }
Günlük hava durumu tahmin verilerini isteme
Günlük Tahmin Al API'si, sıcaklık ve rüzgar gibi ayrıntılı günlük hava durumu tahminini döndürür. İstek, döndürülecek gün sayısını belirtebilir: belirli bir koordinat konumu için 1, 5, 10, 15, 25 veya 45 gün. Yanıt sıcaklık, rüzgar, yağış, hava kalitesi ve UV dizini gibi ayrıntıları içerir. Bu örnekte, ayarını duration=5
yaparak beş gün talep ediyoruz.
Önemli
S0 fiyatlandırma katmanında sonraki 1, 5, 10 ve 15 gün için günlük tahmin isteyebilirsiniz. 1. Nesil (S1) veya 2. Nesil fiyatlandırma katmanında, sonraki 25 gün ve 45 gün için günlük tahmin isteyebilirsiniz.
1. Nesil fiyatlandırma katmanını kullanımdan kaldırmayı Azure Haritalar
1. Nesil fiyatlandırma katmanı artık kullanım dışıdır ve 15.09.26 tarihinde kullanımdan kaldırılacaktır. 2. Nesil fiyatlandırma katmanı, 1. Nesil (hem S0 hem de S1) fiyatlandırma katmanının yerini alır. Azure Haritalar hesabınızda 1. Nesil fiyatlandırma katmanı seçiliyse kullanımdan kaldırılmadan önce 2. Nesil fiyatlandırmasına geçebilirsiniz, aksi takdirde otomatik olarak güncelleştirilir. Daha fazla bilgi için bkz. Azure Haritalar hesabınızın fiyatlandırma katmanını yönetme.
Bu örnekte, Seattle, WA'da bulunan koordinatlar için beş günlük hava durumu tahminini almak için Günlük Tahmin Al API'sini kullanırsınız.
İstek oluşturmak için bruno uygulamasında YENİ İstek'i seçin. YENİ İstek penceresinde Tür'i HTTP olarak ayarlayın. İstek için bir Ad girin.
URL açılan listesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin:
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}
Mavi Oluştur düğmesini seçin.
Çalıştır düğmesini seçin.
Yanıt gövdesi beş günlük hava durumu tahmin verilerini içerir. Kısa olması açısından, aşağıdaki JSON yanıtı ilk günün tahminini gösterir.
{ "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" ] } ] }
Saatlik hava durumu tahmini verilerini isteme
Saatlik Tahmini Al API'si, verilen koordinat konumu için sonraki 1, 12, 24 (1 gün), 72 (3 gün), 120 (5 gün) ve 240 saat (10 gün) için saate göre ayrıntılı hava tahmini döndürür. API sıcaklık, nem, rüzgar, yağış ve UV dizini gibi ayrıntıları döndürür.
Önemli
1. Nesil (S0) fiyatlandırma katmanında, sonraki 1, 12, 24 saat (1 gün) ve 72 saat (3 gün) için saatlik tahmin isteyebilirsiniz. 1. Nesil (S1) veya 2. Nesil fiyatlandırma katmanında, sonraki 120 (5 gün) ve 240 saat (10 gün) için saatlik tahmin isteyebilirsiniz.
Bu örnekte, Seattle, WA'da bulunan koordinatlarda sonraki 12 saat için saatlik hava durumu tahminini almak için Saatlik Tahmin Al API'sini kullanırsınız.
İstek oluşturmak için bruno uygulamasında YENİ İstek'i seçin. YENİ İstek penceresinde Tür'i HTTP olarak ayarlayın. İstek için bir Ad girin.
URL açılan listesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin:
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}
Mavi Oluştur düğmesini seçin.
Çalıştır düğmesini seçin.
Yanıt gövdesi, sonraki 12 saat için hava durumu tahmin verilerini içerir. Aşağıdaki örnek JSON yanıtı yalnızca ilk saati gösterir:
{ "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 } } ] }
Dakika dakika hava durumu tahmin verileri isteme
Dakika Tahmini API'si, sonraki 120 dakika boyunca belirli bir konum için dakika dakika tahminleri döndürür. Kullanıcılar 1, 5 ve 15 dakikalık aralıklarla hava durumu tahminleri isteyebilir. Yanıt yağış türü (yağmur, kar veya her ikisinin karışımı dahil), başlangıç zamanı ve yağış yoğunluğu değeri (dBZ) gibi ayrıntıları içerir.
Bu örnekte, Seattle, WA'da bulunan koordinatlarda dakika dakika hava tahmini almak için Dakika Tahmini API'sini kullanırsınız. Hava durumu tahmini önümüzdeki 120 dakika için verilir. Sorgumuz tahminin 15 dakikalık aralıklarla verilmesini ister, ancak parametreyi 1 veya 5 dakika olacak şekilde ayarlayabilirsiniz.
İstek oluşturmak için bruno uygulamasında YENİ İstek'i seçin. YENİ İstek penceresinde Tür'i HTTP olarak ayarlayın. İstek için bir Ad girin.
URL açılan listesinde GET HTTP yöntemini seçin ve aşağıdaki URL'yi girin:
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}
Mavi Oluştur düğmesini seçin.
Çalıştır düğmesini seçin.
Yanıt gövdesi, 15 dakikalık aralıklarla sonraki 120 dakika için hava durumu tahmin verilerini içerir.
{ "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 } ] }