HeavyTechRuby / history

History of every building
GNU General Public License v3.0
7 stars 8 forks source link

Отображение объектов на карте #58

Open sergio-fry opened 1 month ago

sergio-fry commented 1 month ago

Сейчас поиск объекта можно сделать только через список

Необходимо отобразить объекты на карте по адресу, чтобы можно было быстро найти объект и перейти на его страницу

Функция: F04 Карта

    Сценарий: F04S01 Я, как пользователь, могу найти объект на карте.
AlexNimoy commented 1 month ago

Можно использовать Yandex Maps https://yandex.ru/maps-api/tariffs?lang=ru По условиям использования вроде подходит https://yandex.ru/dev/commercial/doc/ru/?from=mapsapi&lang=ru

ИЛИ

на использование Maps Embed API нет ограничений

sergio-fry commented 1 month ago

@AlexNimoy яндекс станет платным при любом коммерческом использовании, а google плохо работает в России. Еще плохо, что эти условия могут измениться в одностороннем порядке - гугл заблокирует Россию, а Яндекс срежет бесплатные лимиты, например.

У нас есть достойные варианты с открытыми решениями?

axinav commented 1 month ago

OSM. Там есть несколько способов пользования. Самый простой и все примеры Wiki OSM на нем - это OpenLayer API на JS. Карта OSM на сайте - это 10 строк кода. Объекты на карте это POI (point of interest). Веторные данные можно посылать в разных форматах. Сложнее обстоят дела с геокодированием (получением координат по адресу и обратно). Есть Nominatim API от OSM но там ограничения по запросам (1 в сек по моему). Можно поднять свой сервер, но это деньги. У меня кстати вопрос, если запрос будет со стороны клиента, то тогда будет IP клиента? Врядли у клиента будет много запросов. Есть Overpass API - это read only API но я пока в нем не разобрался. Теперь что касается объектов. Их хранить нужно в виде spatial object (points например). Потому что сервер должен выдать клиенту только те точки, которые находятся внутри видимой части карты. Это проще и быстрее сделать методами базы данных (PostGIS). Я пошукал и нашел только RGeo gem, который расширяет активрекорд для использования пространственых запросов к БД