Свой сервер с картами взамен Яндексу?

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


Довольно долгая и неприятная история, если коротко: одной из составляющих разрабатываемого нами сайта должна была быть карта города. Сначала все было сделано красиво и удобно через Яндекс.Карты, так как требуемый город был лучше всего прорисован на них. Под конец разработки выяснилось, что заказчика это не устраивает и он хочет свою карту и заставил дизайнеров нарисовать. Мы поняли задумку, что людям хочется более подробную карту. Карта была нарисована, порезана через известный всем тайлер яндекса и вставлена туда же. Получилось хорошо и полностью удовлетворяло желаниям сделать подробную карту. Однако заказчик сказал, что его и это не устраивает и пригрозил судом, потому что он не хочет видеть «какой-то яндекс» на своем сайте. Вот тут и встал вопрос.

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


Много гуглил, понял, что в этой сфере сейчас правят OpenLayers на клиенте и MapServer на сервере. И оба они являются настоящими монстрами в своем деле. Нашел 5 разных манов, в каждом из которых создавались карты по-разному. Для чтения половины из них вообще нужно каждое предложение заглядывать в википедию, потому что нацелены они явно на профессионалов ГИС, коим я не являюсь.


Сейчас у нас имеется огромный растровый (!) файл карты высокого разрешения, хотелось бы что-то, что позволило бы за минимальное время сделать на клиенте карту. У яндекса было все очень просто: порезал на тайлы специальной программой, указал URL откуда их брать и готово. Хотелось бы что-то типа этого, на перерисовку карты в других форматах просто нет времени. Ведь еще переписывать пол сайта. В связи с этим прошу помощи у хабра.


Нужна технология, как серверная так и клиентская, которая сможет в кратчайшие сроки превратить большой PNG с картой в что-то пригодное для вставки на сайт. Ну и если не затруднит, хотя бы ссылку на пару статей, написанных понятным программисту языком, или конкретное место документации, а не только названия. И если дело дойдет до суда и нас всех посадят, обещаю вырезать гвоздем под нарами ники всех, кто помог мне.
  • Вопрос задан
  • 5962 просмотра
Решения вопроса 1
@bachin
заказчик в курсе законодательных проблем?
грубо говоря, если он не яндекс — то он не имеет права помещать на свой сайт даже от руки нарисованную схему проезда от метро к офису, не то что карту с тайлами.
Ответ написан
Пригласить эксперта
Ответы на вопрос 8
Riz
@Riz
1. Вставить большой винт человеку писавшему ТЗ, вставить большой болт человеку согласовавшему ТЗ, вставить большой винт менеджеру не сумевшему договориться, послать заказчика нафиг и готовится к суду, потому что с таким подходом этот заказчик вам скушает мозг ещё сильно.

2. Насколько вам надо функционал яндекса? Зум, привязки к реальным координатам, обработка выделения объектов, подсчёт расстояний?

Если нужна минимально карта с тасканием, то советую взять за основу например candrews.net/sandbox/spryMap/ и использовать те же тайлы от яндекса(если там не лого) или перекинуть карту в jpeg/png и порезать своим скриптом. Придётся написать самим подгрузку тайлов, но относительно переписывания яндекса с нуля — много лучше.
Ответ написан
Awake
@Awake
Рулю разработкой ;-)
Моё имхо в том, что если в ТЗ нет указаний, какие должны быть карты, то заказчик идёт лесом, ибо данная претензия — бред
Ответ написан
spmbt
@spmbt
Ищите по словам «Лицензия на картографическую деятельность». Должна быть, если публикуются собственные карты.
Ответ написан
IvanTheCrazy
@IvanTheCrazy
1. Можно тот же OpenLayers (сейчас как раз в проекте с его использованием участвую), порезать ваш файл на кучу маленьких файлов и подключить их как TMS-слой в OpenLayers.
Для этого вам поможет:
wiki.osgeo.org/wiki/Tile_Map_Service_Specification — тут вроде даже не сложно описано что и как
www.tilecache.org/ — тут готовый сервер, хотя без него я думаю можно обойтись
2. Можно взять OSM + OpenLayers. Карты OSM часто достаточно подробны. Для моего города (Самара) OSM гораздо подробнее чем например Google maps.
Плюс для OSM есть софт для рисования карт.
Тут что-то подробнее сказать не смогу, свой сервер у нас только в планах пока :-)
Ответ написан
@yourmary
Может, пригодится: нашелся в закладках такой плагин: playground.mobily.pl/jquery/mobily-map/demo.html С перетаскиванием, маркерами, без зума
Ответ написан
lenux
@lenux
OpenStreetMap ' ер
Я предположу, что бы уйти от ГИС тематики, то может вам лучше просто распилить по частям PNG, и когда пользователь захочет увидеть более детально часть карты он будет загружать квадрат этого файла, а не весь? (Для ускорения загрузки можно их нарезать заранее)
Ответ написан
VladimirZhid
@VladimirZhid
Нравится делать что-то интересное и полезное.
Для сервера посмотрите в сторону PostGis, во многом помогает и функционал огромен. Там есть и функционал нарезки на тайлы, работа с геометрией и.т.д. Вполне неплохая документация
profyclub.ru/docs/41
198.199.124.81
А на клиент есть: leafet, openlayer, mapBox
С ними еще не работал, конкретно посоветовать не могу, но насколько обращал внимание, Leafet - самый популярный вариант, а значит не проблематично будет найти документацию и костыли(если понадобятся)

С удовольствием посмотрю на результат.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы