new
new copied to clipboard
Вывести на страницу календаря карту с городами
Это будет первый шаг по развитию страницы из простого списка в полезный календарь в разных представлениях. Задачу можно разделить на шаги:
- [ ] Вставить Google Maps на страницу
calendar
инлайновым скриптом - [ ] Сгенерировать массив или объект со всеми событиями
- [ ] Скормить данные Google Maps и вывести просто точки на карте мира
- [ ] Сделать точки раскрываемыми, с подробностями про событие внутри
Можно на каждый шаг открыть свой пулреквест.
Инлайновым, это iframe? Если да, то похоже что, нельзя вывести на карту больше одного маркера, и придется использовать гугловое апи, получать ключ. Если нет, то можно поподробней как делать?
Вот, например, как выводится карта на сайте WSD:
- В документе лежит статическая картинка c картой, такой фолбэк.
- Скрипт запускается, парсит путь к ней и заменяет на карту.
Как именно заменяет — неважно, главное что по пути можно навставлять меток и что угодно. То есть на стороне Гэтсби готовится массив точек, а скрипт их обрабатывает и строит карту с помощью Google Maps API, да.
Не получается тестировать Google Static API. Гугл разрешает сделать один запрос в день, чтобы получить больше надо включать биллиг, и предоставить данные кредитной карты. Может быть вы сделаете тестовый ключик, который можно будет удаль после пулреквеста?
@LxPvlv обычно такие ограничения не применяются для локального тестрования, нет?
В квотах 1 запрос в день. Потом можно включить биллиг и Гуггл дает $200 каждый месяц на GoogleMaps(но надо подключать платежную карту). Похоже гугл недавно сменил политику.
Не знаю как сделать правильно. Статическая картинка и координаты маркера, должны генерироваться на этапе создания новой записи(item) календаря. Иначе получится так, что на каждый чих(любая пересборка при отладке например) будут делать запросы к api гугла. Но зачем ничего ведь не меняется.
Ключ что вы мне дали, может делать запросы только к Maps JavaScript API, надо еще подключить к нему Maps Static API и Geocoding API.
Каждая загрузка страницы со встроенной картой — это запрос к API карт. Не вижу ничего плохого при сборке сайта запрашивать у этого API координаты города по названию «Москва, Россия», он точно должен это уметь.
У этого ключа и так был доступ ко всем API, но я на всякий случай сделал следующее:
- Ограничил домен:
https://*.web-standards.ru/*
(локально должно работать) - Ограничил API
- Maps Static API
- Maps Embed API
- Maps JavaScript API

Ничего не могу найти. Покажите пример как можно получить координаты без геокодера.
А почему не использовать для этого геокодер?
Я могу делать запросы только на Maps JavaScript API. чтобы делать запросы на Maps Static API и Geocoding API я просил у вас ключ. Ключ что вы мне дали я не могу использовать так как он ораничен https://*.web-standards.ru/*
.
Может быть я чего то не понимаю или не знаю.
Добавил http://localhost/
в список разрешённых адресов, должно заработать.

Получил ответ от геокодера REQUEST_DENIED А вот Maps Static API работает. Наверное вы не подключили к ключу Geocoding API
Всё, теперь точно включил

Проверил сразу после вашего сообщения, все работало. Сейчас получаю это:
{
"error_message": "API keys with referer restrictions cannot be used with this API.",
"results": [],
"status": "REQUEST_DENIED"
}
Сделайте пожалуйста новый ключ без ограничений, после пулреквеста его можно будет удалить.
Судя по тексту ошибки, он и на живом домене с ограничениями не сработает. Но окей, пока сниму.
{
"error_message": "This IP, site or mobile application is not authorized to use this API key. Request received from IP address ********, with referer: http://localhost:8000/calendar/",
"results": [],
"status": "REQUEST_DENIED"
}
Убрал ограничение.
Может мы ускорим всё? Если бы был пулреквест (самый базовый), я бы сам смог проверить — работает API или нет.
Сейчас api_key лежит прямо в коде. Пока не знаю как его убрать.
Ключ в любом случае будет публичный, если мы будем какие-то вещи делать в подключаемых скриптах, это нормально.
Ну да точно. Сейчас сделаю.
Линтер не дает сделать коммит, console.log ему не нравится.
Что с пулреквестом? #111 Почему молчите? Все плохо?
Спокойствие, только спокойствие. Не было времени посмотреть, завтра смогу.
Я думал над этим вопросом, но так выходит, что главным источником данных является раздел конференций. Из него можно удобно формировать и календарь и карту, т.к. данных достаточно.
Изначально пробовал использовать Leaflet, т.к. делал уже подобное решение для недвижки, но пока решил отложить. Да и для разработки можно использовать OSM, а уж потом если принципиально, подключать API другой карты.
Главный источник для календаря — календарь. Конференции — это другой раздел, со своими источниками.
Неправильно выразился. я о том, что #119 теоретически содержит все необходимые данные для вывода карты и даже календаря. Я не говорю снести все и сделать так, просто делюсь мыслями. И да я понимаю, что календарь формируется из файла календаря, а конференции из другого источника.
У этих разделов разные цели и пересечение (дублирование) совсем небольшое, так что я бы не стал усложнять и ходить куда-то за данными, которые уже есть в календаре.