如何通过Web服务获取当前天气

3
我正在尝试获取给定邮政编码或一组纬度/经度坐标的当前天气。最佳实践(以及NOAA如何做)似乎是获取天气站的XML源。例如:http://www.weather.gov/xml/current_obs/KEDW.xml。唯一的问题是,NOAA没有提供一个好的方法来查找最接近的天气站,基于邮政编码或坐标输入。我没有发现任何托管的Web服务可以提供这个映射。有人知道任何Web服务可以获取最近的天气站,基于邮政编码或坐标输入吗?如果没有,是否有任何优秀的解决方案,提供与NOAA相似的信息,但采用邮政编码或坐标作为输入?
3个回答

3

有许多天气API可以根据邮政编码查找天气,或者找到最近的邮政编码。请参见此问题

国家气象局有一个REST API。使用CTRL+F查找邮政编码:

一个或多个邮政编码的摘要数据:返回一个或多个邮政编码(50个美国和波多黎各)的DWML编码的NDFD数据。

这是一个示例请求


我不确定那个有当前天气情况。如果没有,您可以使用Wunderground API。首先,您可以使用GeolookupXML根据城市查找附近的气象站(请参阅示例输出中的nearby_weather_stations元素),然后您可以使用WXCurrentObXML获取其中一个气象站的条件。


谢谢你提供的第一个链接。我想我会使用一些NWS REST调用来获取预测并缓存这些数据。对于当前的天气,我将动态地从Wunderground的API中获取天气站标识符,并根据需要将它们存储在我们的数据库中。基于城市、州、国家、邮政编码或纬度/经度对,我可以查找天气站标识符,并调用Wunderground或NOAA传递标识符以快速获取所需的当前数据。 - Brandon

2
搜索了一些资料,我们发现NOAA维护了一个包含所有METAR天气站的列表,其中包括它们的纬度和经度坐标,以及直接链接到它们的RSS和XML源URL。该列表存储在以下XML文件中:http://www.weather.gov/xml/current_obs/index.xml。 您可以使用Google或Yahoo的地理编码API查找地名(城市、地址、邮政编码等)的纬度/经度,然后搜索天气站列表以找到给定位置最近的METAR站点。

0

我尝试了你的链接,用我的邮政编码代替了城市和街道。它返回了正确的位置和天气报告。很可能这只是一个文档不够完善的API,将城市/街道参数替换为5位数的邮政编码确实可以达到你想要的效果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接