在Google地图气泡中显示FAA METAR数据

时间:2014-04-08 06:15:19

标签: javascript google-maps google-maps-api-3 xsd

我将以此为序,我仍然是编程方面的新手,并且仍在学习所有使互联网变得神奇的工具。我一直试图弄清楚如何从aviationweather.gov网站获取Schema数据,并在点击标记时在谷歌地图中显示结果。我很确定我的大多数问题都不是正确的语言,但是非常感谢任何帮助。

我一直在使用的网址:
http://aviationweather.gov/adds/dataserver_current/httpparam?datasource=metars&requestType=retrieve&format=xml&mostRecentForEachStation=constraint&hoursBeforeNow=1&stationString=PAJN&fields=raw_text

返回数据的示例:

<response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" version="1.2" xsi:noNamespaceSchemaLocation="http://aviationweather.gov/adds/schema/metar1_2.xsd">
<request_index>59551517</request_index>
<data_source name="metars"/>
<request type="retrieve"/>
<errors/>
<warnings/>
<time_taken_ms>2</time_taken_ms>
<data num_results="1">
<METAR>
<raw_text>
PAJN 080553Z 06006KT 7SM -RA FEW006 FEW024 OVC032 06/04 A2942 RMK AO2 SLP962 P0006 60010 T00560044 10083 20056 51001
</raw_text>
</METAR>
</data>
</response>

机场:朱诺国际机场
lat / long:58.3586835,-134.5833512
地图示例:Alaska Airports Google Map

我想采用“raw_text”并将其显示在机场数据下方作为METAR数据,理想情况下“点击”或间隔x分钟刷新数据。首先,我想让朱诺工作,但我希望所有机场都这样做,而不必每次都要求800多个机场。预先感谢您的任何帮助。

1 个答案:

答案 0 :(得分:0)

你的问题太宽泛了,无法回答所有问题,但让我们从第一点开始:获取数据。

使用XML数据源,如果源服务器不允许您的源,则不能使用AJAX来获取数据“跨域”,就我所见,这就是这种情况。

你有几个解决方案:

  1. 拥有自己的服务器来获取数据(例如使用PHP)并使用AJAX查询自己的脚本。
  2. 检查它们是否提供另一个源(JSONP)或允许源域的JSON源。
  3. 查找此数据的其他来源。
  4. Geonames提供天气/ METAR报告的网络服务,供您参考。可在此处找到:http://www.geonames.org/export/JSON-webservices.html

    这可以与简单的AJAX调用一起使用。您可以开设一个免费帐户,每个应用程序每天可获得30,000个学分,每小时可获得2000个学分。有关学分的详细信息,请访问:http://www.geonames.org/export/credits.html

    以下是PAJN的演示查询:http://api.geonames.org/weatherIcaoJSON?ICAO=PAJN&username=demo

    希望这有帮助。