ОБНОВЛЕННЫЙ ОТВЕТ:
Я только что заметил ДРУГИЕ нарушения в 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);
ОРИГИНАЛЬНЫЙ ОТВЕТ:
Пол, уловка Google 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
Обратите внимание, что снова 7-8 цифр означают 4550000
или 45500000
, как и -7358300
или -73583000
.
Я узнал о длине 7-8 цифр, только когда увидел ваш вопрос - я попытался ввести данные в программу анализа погоды и обнаружил, что 455,-73583
не дает правильных данных.
Обратите внимание, что это мои неофициальные эксперименты, а не официальная документация, поэтому могут быть обнаружены другие причуды.