API статической карты Google, получающий 403, запрещено при загрузке из тега img - PullRequest
22 голосов
/ 01 марта 2011

У меня есть карта Google, которая показывает местоположение объекта, но когда я прихожу к печати, динамические карты печатаются не очень хорошо, поэтому я решил реализовать API-интерфейс Google Static Map image.

http://lpoc.co.uk/properties-for-sale/property/oldgate-dairy-st-james-road-long-sutton-cambridgeshire-pe12/?prop-print=1

^^ - это пример свойства в режиме печати, в котором должно отображаться статическое изображение карты, но оно не загружается и смотрит на моего инспектора. Я получаю ответ 403 Forbiden для изображения.

Но если я сразу перейду к URL, изображение загрузится ...

Что я делаю не так?

Спасибо

Scott

Ответы [ 10 ]

17 голосов
/ 06 июля 2012

Это получило довольно много просмотров, поэтому я добавляю свое решение проблемы здесь:

При использовании нового API убедитесь, что вы сгенерировали Ключ для приложений браузера (с реферерами), а также убедитесь, что шаблоны соответствуют вашему URL.

например. при запросе от example.com ваш шаблон должен быть

  example.com/*

Когда вы запрашиваете у www.example.com :

  *.example.com/*

Поэтому убедитесь, что вы проверите, присутствует ли субдомен, и разрешите оба шаблона в консоли разработчика.

  1. Посетите консоль разработчика .
  2. В разделе API-ключи щелкните значок карандаша для редактирования.
  3. В разделе «Ключевые ограничения» убедитесь, что у вас есть запись для example.com/*, *.example.com/* и любых локальных тестовых доменов, которые вам могут понадобиться.
14 голосов
/ 11 января 2013

Кажется, здесь есть некоторая путаница, и, поскольку эта ветка имеет высокий рейтинг в Google, уместно уточнить.

У Google есть несколько различных API для использования в их картографическом сервисе:

Javascript API

Старая версия этого API была версией 2, для которой требовался ключ. Эта версия устарела, и ее рекомендуется обновить до более новой версии 3 . Обратите внимание, что в документации все еще говорится, что вам нужен ключ для этой функции, за исключением случаев, когда вы используете "Google Maps API для бизнеса".

API статических карт

Это совсем другая история. Статические карты - это сервис, который не требует никакого JavaScript. Вы просто вызываете URL-адрес, и Google возвращает изображение карты, что позволяет вставить URL-адрес непосредственно в тег <img>. Самая последняя версия - версия 2 , и для работы требуется ключ , поскольку применяется ограничение использования.

Ключ можно запросить здесь: https://code.google.com/apis/console

И ключ должен быть добавлен в запрос на создание правильного изображения:

http://maps.googleapis.com/maps/api/staticmap?center=New+York,NY&zoom=13&size=600x300&key=API_console_key

Надеюсь, это прояснит ситуацию.

4 голосов
/ 11 декабря 2012

У меня была такая же проблема, но мое решение было другим.У меня был включен API-интерфейс V2-карт, но не API-интерфейс статических карт (я думал, что это V2).Я включил API статических карт, и это сработало.

3 голосов
/ 27 августа 2016

Будьте на сто процентов уверены в следующих моментах: (для статических карт)

  1. Включите ваш проект по этому адресу:

https://console.developers.google.com/apis/api/static_maps_backend/overview?project=

У вас есть localhost, staging и production - все URL с включенными подстановочными знаками в разделе реферера.

Google изменил свою политику, и теперь вам нужен ключ API для отображения карт.обратитесь за дополнительной информацией: API Карт Google без ключа?

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

3 голосов
/ 01 марта 2011

Упс, я чувствую себя таким идиотом.Я использовал старый URL API карт V2, а не новый URL API V3.Я получал 403, потому что я использовал URL V2 без предоставления ключа API: (

2 голосов
/ 12 марта 2013

Staticmaps V3 не нуждается в атрибуте «Key», и удаление его, похоже, решает проблему с источником <img>.

Попробуйте с URL-адресом, подобным этому:

http://maps.googleapis.com/maps/api/staticmap?center=0.0000,0.0000&zoom=13&size=200x200&maptype=roadmap&markers=0.0000,0.0000&sensor=false

Для получения дополнительной информации прочитайте это .

1 голос
/ 31 мая 2018

теперь вы должны использовать параметр 'signature', который вы должны добавить в запрос, иначе статические карты не будут работать. вот несколько полезных ссылок

1) как создать подпись

2) как сделать подпись на стороне BE (фрагмент кода)

1 голос
/ 21 июня 2017

Я также не мог отображать статические карты и мог видеть ошибку 403. в сетевой консоли браузера.

http заголовки ответа:

status:403
x-content-type-options:nosniff

У меня был ключ API со многими GoogleAPI Карт включен, но Google Static Maps API отсутствовал, что позволило решить проблему.

1 голос
/ 18 апреля 2012

Да, Google Maps API версии 3 были версией java-скрипта;"Google Static Maps" были последние 2.0.Я подозреваю, что может быть какое-то ограничение на использование.

0 голосов
/ 12 февраля 2018

Я использую Wordpress 4.9.4 с темой Исхода ChurchThemes. Я подал заявку и создал новый API_KEY.

Как только это будет сделано, ваши карты должны начать появляться на вашем сайте или в приложении.

Если они не отображаются при обновлении, вам может потребоваться:

  • очистить кэш (Wordpress или Drupal webistes),
  • подождите 5 минут, рекомендуемых API для регистрации включенного API
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...