1
APIを使用してローカル天気を表示しようとしています。 API urlは、ユーザーのローカル位置に応じて生成されます。jQuery関数の引数としてグローバル変数を使用できません
var lat,lon = null;
var key = "mykey";
var api = "";
function setApi(position){
lat = Math.round(position.coords.latitude*1000)/1000;
lon = Math.round(position.coords.longitude*1000)/1000;
api = "http://api.openweathermap.org/data/2.5/weather?lat=" + lat + "&lon=" + lon + "&appid=" + key;
}
navigator.geolocation.getCurrentPosition(setApi);
$.getJSON(api, function(data){
console.log(data.sys.country);
});
私は$ .getJSON関数の引数としての私のAPIグローバル変数を使用する場合、問題が起こって何もありません。代わりに文字列を使用すると動作します。例えば:
$.getJSON("http://api.openweathermap.org/data/2.5/weather?lat=46.295&lon=30.648&appid=%mykey%", function(data){
console.log(data.sys.country);
});
だから私は 'api'あなたはそれが呼び出し時と思われるものではないと言うでしょう。私はそれがまだ '' ''だと思います。たとえば、 'getCurrentPosition'が失敗しているかもしれません。(または、おそらく非同期です。私はそれに精通していません) – musefan
' getCurrentPosition'は失敗していません。私はコンソールを介して私の** api ** varにアクセスすることができ、それは正しい価値があります。私は非同期が問題になると思います。ありがとう。 – Suntechnick
'api'の値を設定した後に呼び出しを移動してみてください。もしそれがそれほど確実であれば、 – musefan