2010-03-17 14 views
3

Je tente d'obtenir le temps actuel donné un code postal ou un ensemble de coordonnées latitude/longitude. Il semble que la meilleure pratique pour le faire (et comment la NOAA le fait) est d'obtenir le flux XML pour une station météorologique.Comment obtenir la météo actuelle via les services Web

Exemple: http://www.weather.gov/xml/current_obs/KEDW.xml

Le seul problème est que la NOAA ne fournit pas une bonne façon de trouver la station météorologique la plus proche étant donné un code postal ou coordonnées et je ne voyais pas de services Web hébergés là-bas qui fournir cette cartographie.

Est-ce que quelqu'un connaît des services Web pour obtenir la station météo la plus proche avec un code postal ou une entrée de coordonnées? Si non, quelqu'un a-t-il d'excellentes solutions pour fournir des informations similaires, comme le fait la NOAA, mais prend un code postal ou des coordonnées?

Répondre

3

Il existe de nombreuses API météorologiques qui recherchent la météo en fonction de codes postaux, ou trouvent le code postal le plus proche. Voir this question.

Le service météorologique national a un REST API. CTRL + F pour code postal:

données récapitulatives pour un ou plusieurs Zipcodes: Retourne les données dNDF DWML codé pour un ou plusieurs codes postaux (50 États-Unis et à Porto Rico).

Here is a sample request


Je ne suis pas sûr que l'on a des conditions actuelles. Sinon, vous pouvez utiliser le Wunderground API. D'abord, vous utilisez GeolookupXML pour rechercher des stations météorologiques à proximité en fonction de la ville (voir l'élément nearby_weather_stations dans l'exemple de sortie), alors vous pouvez utiliser WXCurrentObXML pour obtenir les conditions à l'une des stations météorologiques.

+0

Merci pour ce premier lien. Je pense que je vais utiliser certains des appels NWS REST pour obtenir des prévisions et mettre en cache ces données. Pour le courant, je vais obtenir dynamiquement l'identifiant de station météorologique de l'API de Wunderground et les stocker dans notre base de données au besoin et basé sur une ville, état, pays, ZipCode, ou paire Lat/Long, je peux rechercher l'identificateur de station météorologique et appelez Wunderground ou NOAA en passant l'identifiant pour faire un appel rapide pour obtenir les données dont j'ai besoin. – Brandon

0

J'ai essayé votre lien et au lieu de City, Street a entré mon code postal. Il a renvoyé l'emplacement et le rapport météo corrects. Il est possible que ce soit juste une API mal documentée et qu'un paramètre de ville/rue remplacé par un zip à 5 chiffres fera en effet ce que vous voulez.

2

Il a fallu effectuer des recherches, mais la NOAA tient à jour une liste de toutes les stations météorologiques METAR, avec leurs coordonnées de latitude et de longitude, ainsi que des liens directs vers leurs URL de flux RSS et XML. La liste est stockée en XML ici: http://www.weather.gov/xml/current_obs/index.xml

Vous pouvez utiliser les API de géocodage de Google ou de Yahoo pour rechercher la latitude/longitude d'un nom de lieu (ville, adresse, code postal, etc.), puis rechercher dans la liste des stations météorologiques pour la station METAR la plus proche de l'emplacement donné.