web-standards-ru / new

Новый сайт «Веб-стандартов»
https://new.web-standards.ru/
39 stars 17 forks source link

Вывести на страницу календаря карту с городами #89

Open pepelsbey opened 5 years ago

pepelsbey commented 5 years ago

Это будет первый шаг по развитию страницы из простого списка в полезный календарь в разных представлениях. Задачу можно разделить на шаги:

Можно на каждый шаг открыть свой пулреквест.

LxPvlv commented 5 years ago

Инлайновым, это iframe? Если да, то похоже что, нельзя вывести на карту больше одного маркера, и придется использовать гугловое апи, получать ключ. Если нет, то можно поподробней как делать?

pepelsbey commented 5 years ago

Вот, например, как выводится карта на сайте WSD:

  1. В документе лежит статическая картинка c картой, такой фолбэк.
  2. Скрипт запускается, парсит путь к ней и заменяет на карту.

Как именно заменяет — неважно, главное что по пути можно навставлять меток и что угодно. То есть на стороне Гэтсби готовится массив точек, а скрипт их обрабатывает и строит карту с помощью Google Maps API, да.

pepelsbey commented 5 years ago

Не получается тестировать Google Static API. Гугл разрешает сделать один запрос в день, чтобы получить больше надо включать биллиг, и предоставить данные кредитной карты. Может быть вы сделаете тестовый ключик, который можно будет удаль после пулреквеста?

@LxPvlv обычно такие ограничения не применяются для локального тестрования, нет?

LxPvlv commented 5 years ago

В квотах 1 запрос в день. Потом можно включить биллиг и Гуггл дает $200 каждый месяц на GoogleMaps(но надо подключать платежную карту). Похоже гугл недавно сменил политику.

LxPvlv commented 5 years ago

Не знаю как сделать правильно. Статическая картинка и координаты маркера, должны генерироваться на этапе создания новой записи(item) календаря. Иначе получится так, что на каждый чих(любая пересборка при отладке например) будут делать запросы к api гугла. Но зачем ничего ведь не меняется.

Ключ что вы мне дали, может делать запросы только к Maps JavaScript API, надо еще подключить к нему Maps Static API и Geocoding API.

pepelsbey commented 5 years ago

Каждая загрузка страницы со встроенной картой — это запрос к API карт. Не вижу ничего плохого при сборке сайта запрашивать у этого API координаты города по названию «Москва, Россия», он точно должен это уметь.

pepelsbey commented 5 years ago

У этого ключа и так был доступ ко всем API, но я на всякий случай сделал следующее:

pepelsbey commented 5 years ago
image
LxPvlv commented 5 years ago

Ничего не могу найти. Покажите пример как можно получить координаты без геокодера.

pepelsbey commented 5 years ago

А почему не использовать для этого геокодер?

LxPvlv commented 5 years ago

Я могу делать запросы только на Maps JavaScript API. чтобы делать запросы на Maps Static API и Geocoding API я просил у вас ключ. Ключ что вы мне дали я не могу использовать так как он ораничен https://*.web-standards.ru/*. Может быть я чего то не понимаю или не знаю.

pepelsbey commented 5 years ago

Добавил http://localhost/ в список разрешённых адресов, должно заработать.

image
LxPvlv commented 5 years ago

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

pepelsbey commented 5 years ago

Всё, теперь точно включил

image
LxPvlv commented 5 years ago

Проверил сразу после вашего сообщения, все работало. Сейчас получаю это:

{
"error_message": "API keys with referer restrictions cannot be used with this API.",
"results": [],
"status": "REQUEST_DENIED"
}
LxPvlv commented 5 years ago

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

pepelsbey commented 5 years ago

Судя по тексту ошибки, он и на живом домене с ограничениями не сработает. Но окей, пока сниму.

LxPvlv commented 5 years ago

{
"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"
}
pepelsbey commented 5 years ago

Убрал ограничение.

pepelsbey commented 5 years ago

Может мы ускорим всё? Если бы был пулреквест (самый базовый), я бы сам смог проверить — работает API или нет.

LxPvlv commented 5 years ago

Сейчас api_key лежит прямо в коде. Пока не знаю как его убрать.

pepelsbey commented 5 years ago

Ключ в любом случае будет публичный, если мы будем какие-то вещи делать в подключаемых скриптах, это нормально.

LxPvlv commented 5 years ago

Ну да точно. Сейчас сделаю.

LxPvlv commented 5 years ago

Линтер не дает сделать коммит, console.log ему не нравится.

LxPvlv commented 5 years ago

Что с пулреквестом? #111 Почему молчите? Все плохо?

pepelsbey commented 5 years ago

Спокойствие, только спокойствие. Не было времени посмотреть, завтра смогу.

aleshkanet commented 5 years ago

Я думал над этим вопросом, но так выходит, что главным источником данных является раздел конференций. Из него можно удобно формировать и календарь и карту, т.к. данных достаточно.

Изначально пробовал использовать Leaflet, т.к. делал уже подобное решение для недвижки, но пока решил отложить. Да и для разработки можно использовать OSM, а уж потом если принципиально, подключать API другой карты.

pepelsbey commented 5 years ago

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

aleshkanet commented 5 years ago

Неправильно выразился. я о том, что #119 теоретически содержит все необходимые данные для вывода карты и даже календаря. Я не говорю снести все и сделать так, просто делюсь мыслями. И да я понимаю, что календарь формируется из файла календаря, а конференции из другого источника.

pepelsbey commented 5 years ago

У этих разделов разные цели и пересечение (дублирование) совсем небольшое, так что я бы не стал усложнять и ходить куда-то за данными, которые уже есть в календаре.