Используя Google Weather API with Lat и Lon - как отформатировать?

Я хочу использовать Google Weather API - путем передачи lat и длинные значения. Я храню эти значения, однако кажется, что 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=,,,45.5,-73.583

Любая справка ценится. Я предпочел бы использовать Google Data.

5
задан steenslag 11 May 2012 в 18:08
поделиться

2 ответа

ОБНОВЛЕННЫЙ ОТВЕТ: Я только что заметил некоторые ДРУГИЕ нарушения в работе 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 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

Обратите внимание, что опять же, 7-8 цифр означают, что 4550000 или 45500000 будут приемлемы, как и -7358300 или -73583000.

Я узнал о длине 7-8 цифр только когда увидел ваш вопрос - я попробовал ввести данные в свою программу анализа погоды и обнаружил, что 455,-73583 не дает правильных данных.

Обратите внимание, что это мои неофициальные эксперименты, а не официальная документация, так что могут быть и другие причуды.

5
ответ дан 13 December 2019 в 19:23
поделиться

Все гораздо проще - широта и долгота должны быть умножены на миллион

4
ответ дан 13 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: