2016-04-04 10 views
0

現在の天気をgeolocationで表示しようとしていますが、openweathermapを使用していますが、このjsonファイルからデータを取得しようとすると 'data.main is undefined'ジオロケーションとAPIを使用して天気を表示する

{"coord":{"lon":16.44,"lat":43.51},"weather":[{"id":800,"main":"Clear","description":"clear sky","icon":"01d"}],"base":"stations","main":{"temp":291.15,"pressure":1017,"humidity":68,"temp_min":291.15,"temp_max":291.15},"visibility":10000,"wind":{"speed":2.01,"deg":146.502},"clouds":{"all":0},"dt":1459758600,"sys":{"type":1,"id":5459,"message":0.0285,"country":"HR","sunrise":1459744171,"sunset":1459790713},"id":3190261,"name":"Split","cod":200} 

私は、このような温度、風、湿度などのページから必要なパラメータを、つかむべきか理解していない...任意のヘルプは

に感謝ここでフィドルです:

https://jsfiddle.net/g19nw53k/

+0

'weather'が配列である:非同期機能が解決された後、あなたはAPI呼び出しを行うことができます

、更新jsfiddleを参照してください。 –

+0

エラーが発生したときの 'data'の実行時の値は何ですか? – David

+0

あなたはたぶん私をフィドルで見ることができますか?私はドット表記で試していますが、まだ私にエラーを与えます –

答えて

0

navigator.geolocation.getCurrentPositionは非同期関数であるという問題があります。

var api = 'http://api.openwe...?lat=' + lat + ...; 

変数latlongはまだ定義されていない、したがって、APIは、あなたが期待するよう何data.main.tempありませんコード404でレスポンスを返します。これは、あなたが呼び出すときことを意味します。 http://jsfiddle.net/foc7weg2/(それがあるため、誤ったアプリケーションIDの401エラーを返すかもしれませんが)

+0

ありがとうございました。非同期関数とfetchApiについて学びます... –

関連する問題