LINUX.ORG.RU

Rails and maps API

 , , , ,


1

2

Добрый день, товарищи.

Хочу написать одно приложение на rails, нужна помощь в выборе API для карт. Из пожеланий: высокая интеграция с Rails (на уровне gem), без самостоятельного js и т.п. Требования к картам: кастомные метки (добавление/изменение/удаление), умение PostgreSQL, небольшой объем данных в бд, построение маршрутов.
Кандидаты: Google maps, Yandex maps, OpenStreetMaps. У первых много экземплов, у вторых документация на русском, у OpenStreepMaps не будет траблов с лицензией.
Собственно, документации, даже на ужасном английском, не боюсь, но все же чем она будет компактнее (не в ущерб информативности) и проще, тем лучше, ибо не хочу особо вдаваться в топографические нюансы: хочу писать код.
Кто что посоветует?

★★★★

Рекомендую OSM (GeoServer или TileMap) и Leaflet хотя бы из-за лицензий и того, что нереально гибко кастомизируются стили карты.

GeoServer умеет PSQL (postgis), маршруты можно прекрасно строить (с учётом направлений движения) по этим же данным с помощью OSRM.

Не очень понятно, что имеется в виду под:

без самостоятельного js и т.п.

Но думаю, без этого врядли получится что-то сделать, вне зависимости от используемого инструмента.

Y ★★ ()

Зачем тебе БД для отрисовки карт? или ты хочешь тайлы у себя хранить?

Deleted ()
Ответ на: комментарий от Deleted

А где хранить данные, на основании которых рисовать?

А не кешировать тайлы очень смелый шаг (потому что даже для того, чтобы быстро рендерить двадцатку детализированных тайлов одновременно нужна машина выше среднего и много RAM) и бессмысленный расход ресурсов машины (потому что, даже если у вас есть достаточно мощная машина, зачем рендерить одно и то же множество раз?).

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

Y ★★ ()

ибо не хочу особо вдаваться в топографические нюансы: хочу писать код

а мне казалось разработчик должен шарить в предметной области с которой собирается работать

Google maps, Yandex maps, OpenStreetMaps

юзал в таком качестве (совсем недавно) вторые - годнота, удобное апи, по поводу лицензии - ты собираешься продавать продукт на основе карт?

umren ★★★★★ ()

ну и без JS у тебя ничего не выйдет, я сомневаюсь что есть адекватные гемы под это дело, API слишком быстро развиваются.

umren ★★★★★ ()
Ответ на: комментарий от Y

(GeoServer или TileMap)

Т.е. обязательно нужно будет поднимать сервер карт при работе с OSM?

Не очень понятно, что имеется в виду под:

без самостоятельного js и т.п.

Хотелось бы что бы API предоставлял некий интерфейс для работы с картой, чтобы я со своим скудным познанием JS смог связать его со своим инструментарием для создание пользовательского интерфейса. Т.е. хочу более высокий уровень абстракций, чем js.

comp00 ★★★★ ()
Ответ на: комментарий от Deleted

а где еще мне хранить тайлы и пользовательские данные, которые они оставили на карте?

comp00 ★★★★ ()
Ответ на: комментарий от umren

а мне казалось разработчик должен шарить в предметной области с которой собирается работать

Меня, как и любого пользователя API должно мало волновать что у него там внутри и как оно там реализовано.

по поводу лицензии - ты собираешься продавать продукт на основе карт?

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

comp00 ★★★★ ()

Если максимально просто то гугл или яндекс, если хочется все свое то сервер карт с постгресом + Leaflet

TDrive ★★★★★ ()
Ответ на: комментарий от comp00

Меня, как и любого пользователя API должно мало волновать что у него там внутри и как оно там реализовано.

Как реализовано волновать не должно, а предметную область знать нужно.

TDrive ★★★★★ ()
Ответ на: комментарий от comp00

Т.е. обязательно нужно будет поднимать сервер карт при работе с OSM?

Не обязательно, но бесплатных и способных более-менее держать нагрузку я не встречал.

Кстати, сервер, который будет отдавать тебе тайлы, строить маршруты и компоненты хранящий и рисующий метки, обычно, разные компоненты. Метки и прочую дрянь удобней и эффективней всего рисовать Leaflet'ом (эт в случае с OSM, ессно), хранить на сервере самостоятельно (пофиг, где).

Описанных API в Ruby или куда бы ни было не встречал и сомневаюсь в их существовании.

Y ★★ ()
Ответ на: комментарий от comp00

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

Тогда у гугла и яндекса надо будет покупать лицензию. А вообще у яндекса некоторое время назад было своеобразное соглашение. Вроде, мол если, карта доступна всем без регистрации, до до определенного предела нагрузки, плата не взимается.

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

Y ★★ ()
Последнее исправление: Y (всего исправлений: 1)

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

Были планы отрефакторить, добавить ОСМ и заопенсорсить, но руки не дошли, как всегда.

Сейчас беглым поиском ничего подобного не нашёл. Так что похоже, что вариант один — писать самому.

Apple-ch ★★ ()

В общем, остановился пока на Leaflet т.к. он хорошо документирован и покрывает мои потребности

comp00 ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.