2012-06-27 2 views
2

Посмотрел всюду — и прочитал десятки других вопросов, касающихся API Google (Карты, Геокодирование, Места, Автозаполнение и т. Д.) — и ничего не сработало.API Google Geocode «REQUEST_DENIED» в ответе JSON - действие обратного геокода

У меня есть ключ API с местами, статическими картами и картами v3 & Включены службы v2.

Я пытаюсь выполнить обратный геокод (получить информацию об адресе улицы через JSON из лат/длинных коордов).

Вот URL Я передаю в моей JavaScript (последние 5 цифр ключа API заменен #####:

http://maps.googleapis.com/maps/api/geocode/json?latlng=49.8925136,-97.1466635&sensor=true&key=AIzaSyDbfv8bFidX1hSbXwwKTTxWQYgU7g####

Ответ JSON является:

{ 
    "results" : [], 
    "status" : "REQUEST_DENIED" 
} 

Как вы можете видеть, передается параметр «sensor = true», что является проблемой в соответствии с Google Document supporting this API, но это явно не так.

Я также попытался прохождение просто

http://maps.googleapis.com/maps/api/geocode/json?latlng=49.8925136,-97.1466635&sensor=true

который возвращает ожидаемый ответ JSON, когда URL вводится в адресной строки браузера — но при добавлении к JavaScript в моем HTML-файл, я снова получить:

{ 
    "results" : [], 
    "status" : "REQUEST_DENIED" 
} 

Любая помощь приветствуется, и очень ценится.

+0

Зачем мешать сложным пространствам и недействительным ключам? Только вы можете использовать свой ключ, потому что вы настроили рефереры в своей консоли. –

+0

Пространства - это потому, что я новичок, и Stack не позволяет больше одной гиперссылки для моих вопросов (и это происходит с автоматическим созданием гиперссылок для каждого URL-адреса, который я публикую ...). Что касается API, только для предпочтений - и обмен реальным не помог бы в ответе на мой вопрос - как (вы упомянули) его можно использовать только с помощью ссылочного URL, который я указываю. –

+0

Да, конечно: извинения. Я редактировал их, теперь вы подтвердили, что нет других причин не иметь ссылок! –

ответ

2

Google не особенно хочет, чтобы вы использовали этот статический API на веб-странице. Вы должны использовать API Карт на веб-странице и связанные с ним функции геокодирования (потому что в любом случае вам нужно показывать результаты на карте). Эти статические API-интерфейсы предназначены для использования на стороне сервера, поэтому похоже, что теперь они отказываются от запросов, которые входят в заголовок HTTP_REFERER.

(с помощью ключа на стороне сервера позволяет следить за статистикой, но недействительный ключ всегда будет приводить к REQUEST_DENIED есть ли заголовок реферера или нет.)

+1

Ну, это дрянное. Я предполагаю, что API Карт будет достаточно. Я старался держать это как можно более легким, так как я действительно надеялся просто потянуть координаты пользователя и отобразить приблизительный адрес, где они есть. API Карт немного переборщил для чего-то такого простого. Но мы делаем то, что должны, я полагаю. Спасибо за ответ. Приветствия. –

1

я продолжал бороться с той же самой проблемой и я считаю, что придумал очень практичное решение, которое на самом деле прекрасно работает со мной! Вам просто нужно внести небольшую модификацию в URI вашего запроса запроса. Вместо запрашивая

http://maps.googleapis.com/maps/api/geocode/json?latlng=49.8925136,-97.1466635&sensor=true

вы должны на самом деле запрос API Карт Google, используя следующий URI:

http://maps.google.com/maps/api/geocode/json?latlng=49.8925136,-97.1466635&sensor=true

Это небольшая модификация сделал работу для меня как шарм!

Надеюсь, что это поможет.

Смежные вопросы