Обратное геокодирование карт Google всегда отвечает 602 (неизвестный адрес) на стороне сервера - PullRequest
1 голос
/ 11 января 2011

У меня есть серверный код, который вызывает API геокодирования Google, например:

http://maps.google.com/maps/geo?q=40.714224,-73.961452&output=json&sensor=false&key=API_KEY

, где API_KEY - мой ключ API.Я получаю ответ в формате JSON, как и ожидалось, но ответ всегда 602 (неизвестный адрес).Мой URL неверен?(Я также пробовал URL-адрес в Google docs , но он возвращает status: 'REQUEST_DENIED'.

Что еще может быть не так?

Обновление: Что ж, похоже, что на самом деле это ошибка в моей реализации, а не в URL. Вот как я это сделал:

api_params = {
            'q': '40.714224,-73.961452',
            'sensor': 'false',
            'key': KEY,
            'output': 'json'
        }

    # make the api call
    http_response = urllib.urlopen('http://maps.google.com/maps/geo',
                                        urllib.urlencode(api_params))
    r = json.load(http_response)

, но изменил на:

  api_params = {
            #'q': str(lat) + ',' + str(lng),
            'q': '40.714224,-73.961452',
            'sensor': 'false',
            'key': KEY,
            'output': 'json'
        }

    # make the api call
    http_response = urllib.urlopen('http://maps.google.com/maps/geo?q='+api_params['q']+'&output=json&sensor=false&key='+api_params['key'])
    r = json.load(http_response)
    print r

устраняет проблему. Итак, мой новый вопрос: что не так с первым?

Ответы [ 2 ]

1 голос
/ 11 января 2011

Первый выполняет запрос POST, второй - запрос GET.

Вы также можете использовать функцию urllib.urlencode для конкатенации.

Но самый простой способ - использовать geopy.

1 голос
/ 11 января 2011

Попробуйте использовать HTTP-наблюдатель, чтобы убедиться, что это фактический URL-адрес, который отправляется в вашем приложении.Может быть вероятность того, что он не кодируется правильно или может быть неправильно собран.Поскольку вы не получаете запрос, отклоненный, и мы смогли получить хороший ответ при непосредственном просмотре, кажется, что это может быть лучшим началом для начала.Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...