[英]OpenWeatherMap API generates incorrect output
我正在使用openweathermap.org api,它为我提供了不正确的输出。
如果我点击该网址 ,则会得到以下输出:
"{"coord":{"lon":-121.96,"lat":37.83},"weather":[{"id":721,"main":"Haze","description":"haze","icon":"50n"}],"base":"stations","main":{"temp":281.21,"pressure":1030,"humidity":81,"temp_min":273.15,"temp_max":285.15},"visibility":11265,"wind":{"speed":1.07,"deg":54.0019},"clouds":{"all":1},"dt":1454739836,"sys":{"type":1,"id":409,"message":0.0189,"country":"US","sunrise":1454771247,"sunset":1454809012},"id":5342970,"name":"Diablo","cod":200}"
如果我通过php curl
或file_get_contents
调用相同的URL, file_get_contents
得到以下输出:
"{"coord":{"lon":-121.96,"lat":37.83},"weather":[{"id":801,"main":"Clouds","description":"few clouds","icon":"02n"}],"base":"cmc stations","main":{"temp":275.178,"pressure":1022.49,"humidity":83,"temp_min":275.178,"temp_max":275.178,"sea_level":1043.42,"grnd_level":1022.49},"wind":{"speed":1.07,"deg":356.501},"clouds":{"all":12},"dt":1454738179,"sys":{"message":0.0112,"country":"US","sunrise":1454771247,"sunset":1454809011},"id":5342970,"name":"Diablo","cod":200}"
他们为什么不同?
我没看到问题。 它返回经度( 确切的相同的值-121.96
),纬度( 37.83
),城市ID( 5342970
)和城市名称( Diablo
),它清楚地表明,这两种的结果表示从相同的位置的结果。
两种结果之间的细微差异可能是由于天气的细微变化或从不同的服务器或气象站获取的结果引起的( base
属性的不同值似乎暗示了这一点)。
我不会理会这些微小的差异。 但是,我确实有另一个担忧(请参阅下面的注释)。
zip
参数的行为不可靠。 当我从我的位置(在比利时)在浏览器中打开您的URL时,有时会得到预期的结果,有时会出现此错误:
{"cod":"404","message":"Error: Not found city"}
为避免此问题,最好使用以下选项之一:
q
参数,以城市名称和国家/地区为值:
http://api.openweathermap.org/data/2.5/weather?appid=35d3153a253e2536f49f02fd8080dfc2&q=Diablo,US
id
参数,以您的城市ID为值:
http://api.openweathermap.org/data/2.5/weather?appid=35d3153a253e2536f49f02fd8080dfc2&id=5342970
(您可以在此处下载所有受支持的城市ID的列表)
lat
和lon
参数,以您的经度和纬度为值:
http://api.openweathermap.org/data/2.5/weather?appid=35d3153a253e2536f49f02fd8080dfc2&lat=37.83&lon=-121.96
(您还可以在此受支持的城市列表中找到城市的经度和纬度)
有关更多详细信息,请参见API文档 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.