更新答案:我刚刚注意到 Google 天气 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);
原始回复:保罗,关于 Google 天气 API 的诀窍是您不使用传统纬度/经度接收到的坐标。相反,您解析出小数点。此外,谷歌天气 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
请再次注意,7-8 位数字意味着4550000
或45500000
可以接受,就像-7358300
或一样-73583000
。
当我看到你的问题时,我才发现 7-8 位数的长度——我尝试将数据输入到我的天气解析程序中,发现455,-73583
并没有产生正确的数据。
请注意,这是我的非官方实验,而不是官方文档,因此可能还有其他怪癖有待发现。