使用带有Lat和Lon的Google Weather API - 如何格式化?

Pau*_*aul 5 latitude-longitude google-weather-api

我想使用Google Weather API - 通过传递lat和long值.我存储这些值,但似乎Google需要不同格式的这些值.

即对于McTavish镇,我有45.5和-73.583的价值

这可以在这里工作:http://api.wunderground.com/auto/wui/geo/WXCurrentObXML/index.xml?query=45.5,-73.583

但是当我将这些数据用于Google API时,它不起作用:请参阅:www.google.com/ig/api?weather =,,455.5,-73.583

任何帮助赞赏.我更愿意使用Google数据.

Mat*_*t D 5

更新的答案:我刚刚注意到Google的Weather API存在一些其他违规行为.在任何情况下,除了负号之外,如果适用,您还需要有8位数字.请参阅以下代码块(基于Java)以获得正确的格式.(不是完美的算法,只是一个简单的示例,以便您可以看到结果)

lat = lat.replace(".", "");
while(lat.length() < 9)
    lat = lat.concat("0");
if(lat.contains("-"))
    lat = lat.substring(0, 9);
else
    lat = lat.substring(0, 8);
Run Code Online (Sandbox Code Playgroud)

原始回应:保罗,关于Google的Weather API的诀窍在于你不使用传统纬度/经度所接收的坐标.相反,您解析小数点.此外,Google的Weather API的"有趣的怪癖"似乎要求数据以7到8位字符串形式出现.所以,例如,45.5应该真的45.50000,而且-73.583应该是真的-73.58300.这个7-8位的长度似乎不包括-任何负坐标前面的负号().

所以,你45.5(0000)变成了4550000,你-73.583(00)变成了-7358300.所以最终的URL将是:

http://www.google.com/ig/api?weather=,,,4550000,-7358300
Run Code Online (Sandbox Code Playgroud)

需要注意的是再次,7-8位的手段4550000或者45500000是可以接受的,因为会-7358300-73583000.

当我看到你的问题时,我才发现了7-8位数的长度 - 我尝试将数据输入我的天气解析程序,发现455,-73583它没有产生适当的数据.

请注意,这是我的非官方实验,而不是官方文档,所以可能还有其他的怪癖需要发现.