Снимок статической карты Google отображается на странице - PullRequest
1 голос
/ 22 марта 2011

У меня есть сайт, созданный на Google App Engine на Python.Одной из функций является возможность использовать статические карты Google для обновления вашего текущего местоположения.Код Python заботится о генерации URL статической карты, а HTML-шаблон просто помещает его на место.Вот как должно выглядеть пространство, в котором должно находиться изображение:

<tr>
    <td colspan="4"><img border=0 src="{{img_url}}" /></td>
</tr>

... и вот как генерируется URL-адрес изображения:

self.template_values['img_url'] = "http://maps.google.com/staticmap?center=%s,%s&zoom=%s&size=%s&markers=%s,%s,midreda" % (str(rs['lat']), str(rs['lng']), str(rs['zoom']), str(MAP_SIZE[0])+"x"+str(MAP_SIZE[1]), str(rs['lat']), str(rs['lng']))

Диктофон rs []ответ от поиска карт Google.При этом генерируется совершенно действительный статический URL-адрес карты:

<tr>
    <td colspan="4"><img border=0 src="http://maps.google.com/staticmap?center=52.955115,-1.149172&zoom=11&size=512x512&markers=52.955115,-1.149172,midreda" /></td>
</tr>

Приведенный выше URL-адрес изображения указан после поиска по «Ноттингем, Великобритания».Если вы посетите адрес, вы увидите, что он отображается как задумано, правильный размер и все.Однако на странице (которую вы можете проверить по адресу spare-wheels.appspot.com/searchlocation, хотя для ее использования необходимо подключить свою учетную запись Facebook) изображение не отображается.Исходный код HTML выглядит хорошо: никаких явных проблем с кодировкой или чего-то подобного.Я не вижу, что пошло не так.Есть идеи?

Спасибо

Бен

РЕДАКТИРОВАТЬ: После небольшого тестирования я обнаружил, что карты иногда работают, но большую часть времениони не работают, и когда они работают, они обычно перестают работать после обновления

1 Ответ

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

API Карт Google v1 устарело. Уведомление об использовании бесплатной статической карты, для которой больше не требуется ключ API, вероятно, действительно только для приложений, использующих Google Maps API V2.

Запросы браузера, содержащие ваш реферер, отклоняются с помощью 403. Поэтому в вашем браузере отображается значок с разорванным изображением.

Либо переключитесь на v2 URL-адреса, либо укажите ключ API в URL-адресе.

Google предоставляет руководство по обновлению для вашего удобства.

Правильный URL v2 для вашего примера URL:

http://maps.google.com/maps/api/staticmap?center=52.955115,-1.149172&zoom=11&size=512x512&markers=size:mid|color:red|label:A|52.955115,-1.149172&sensor=false

Обратите внимание на эти изменения:

  • Изменено /staticmap? => /maps/api/staticmap?
  • Добавлено sensor=false
  • Изменено markers с 52.955115,-1.149172,midreda на size:mid|color:red|label:A|52.955115,-1.149172

При всем вышеперечисленном карта отображается правильно для меня с красным маркером и должна гарантировать, что Google распознает ваш запрос как запрос V2.

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