1

HTTP GET リクエストを送信すると、天気予報を提供するこの無料の天気 API を見つけました。天気予報は JSON で配信されます。リクエストは次のようになります。

JSON 形式の例:
都市名による検索: api.openweathermap.org/data/2.5/weather?q=London,uk
地理座標による検索: api.openweathermap.org/data/2.5/weather?lat=35&lon=139検索都市ID別: api.openweathermap.org/data/2.5/weather?id=2172797

したがって、返される応答は、いくつかの変数が配置されている URL の末尾によって明らかに定義されます。

jQuery 関数 getJSON() を使用して、HTTP GET 要求で取得したテキスト ファイルからオブジェクトを作成できること、また変数を使用して URL を変更できることを確認しました。これを行う例:

var person = "john";
$.getJSON("https://graph.facebook.com/" + person, function(person){

    $.each(person, function(key, value){
        document.write(key+": "+value+"<br />"); 
    });
}); 

出力を与える

id: 779695190
first_name: John
gender: male
last_name: Chan
locale: en_US
name: John Chan
username: John


ただし、天気 API でこれを使用しようとすると、機能しません。出力がありません。(簡単にするために、ここでは url 変数なしで実行します。) 以下のコードは、私が考えた方法です (しかし、明らかにそうではありません)。

$.getJSON("api.openweathermap.org/data/2.5/weather?q=London,uk", function(forecast){
    var temperature = forecast.main.temp;
    document.write(temperature);
});

ここで予測の JSON 構造を参照してください: http://bugs.openweathermap.org/projects/api/wiki/Weather_Data

基本的に私の質問は次のとおりです: url-variables を weather-api-urls に追加するにはどうすればよいですか (そして、リクエストが都市名または座標の両方であることを確認します)。また、サーバーからデータを取得したら、取得したデータにどのようにアクセスすればよいでしょうか?

4

2 に答える 2

1

最初に、緯度と経度の値、または郵便番号または都市 ID を読み取ってから、指定されたパラメーターに対して API wrt を呼び出す ajax を含む関数を呼び出してそれらを追加できます。以下を参照して、緯度経度だけを使用して試しました結果を取得した後、他の json オブジェクトと同様にアクセスできます。

function success(position) {
    var lat = position.coords.latitude;
    var long = position.coords.longitude;
    var timstp = position.timestamp;
    var myDate = new Date(timstp).toLocaleString();
    //console.log("Lat="+lat+"Long="+long+"timstp="+timstp+"date="+myDate); 

    $.ajax({
      url: "http://api.openweathermap.org/data/2.5/weather?lat=" + lat + "&lon=" + long + "&appid=690660b930904f0cee1975853d5a2375",
      dataType: 'jsonp',
      success: function(results) {
        console.log(results);

   
      }
    });
}

于 2016-03-28T13:34:44.527 に答える
0

おそらく私はあなたの答えを正しく理解していませんが、openweathermap api の URL に変数を追加する場合、コードは次のとおりです。

<script type="text/javascript">
$(document).ready(function(){
var variable='London'
$.getJSON("http://api.openweathermap.org/data/2.5/weather?q="+variable+",uk&callback", function(data){  
    console.log(data)
    console.log(data.main.temp_min)
    console.log(data.main.temp_max)
});

})
</script>
于 2014-05-04T15:49:34.490 に答える