Leaflet + mapserver
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 28 ноя 2014, 21:38
- Репутация: 0
Leaflet + mapserver
Добрый день уважаемые.
Подскажите возможно ли в вышеупомянутой связке организовать tile server который подложку будет брать например из OSM и дополнительно накладывать на неё данные из локальной БД или файлов и всё вместе показывать в обозревателе, в leaflet? С картографией столкнулся первый раз в жизни, усиленно читаю документацию, но просветления пока не наступило.
Спасибо.
Подскажите возможно ли в вышеупомянутой связке организовать tile server который подложку будет брать например из OSM и дополнительно накладывать на неё данные из локальной БД или файлов и всё вместе показывать в обозревателе, в leaflet? С картографией столкнулся первый раз в жизни, усиленно читаю документацию, но просветления пока не наступило.
Спасибо.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Leaflet + mapserver
Leaflet-у без разницы чьи тайлы отображать. По описанной вами схеме у вас должны быть следующие компоненты:
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 28 ноя 2014, 21:38
- Репутация: 0
Re: Leaflet + mapserver
Спасибо за отклик.
Подскажите, mapnik это ведь библиотека, консольного приложения mapnik не существует? Я собственно и хотел на начальном этапе избежать встраивания таких библиотек в своё приложение и остановился на mapserver так как его можно вызывать по CGI и просто транслировать его выхлоп пользователю (в leaflet или что топодобное).
Вот тут описан tile mode для mapserver это разве не то что нужно для leflet?
Подскажите, mapnik это ведь библиотека, консольного приложения mapnik не существует? Я собственно и хотел на начальном этапе избежать встраивания таких библиотек в своё приложение и остановился на mapserver так как его можно вызывать по CGI и просто транслировать его выхлоп пользователю (в leaflet или что топодобное).
Вот тут описан tile mode для mapserver это разве не то что нужно для leflet?
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Leaflet + mapserver
Извините, но я вас не понял, что значит избежать встраивания библиотек? MapServer CGI - это ни что иное, как приложение, использующее возможности библиотеки libmapserver (не путать с mapscript - баиндинги к этой библиотеке): Аналогичную обёртку вы можете сделать используя Mapnik, пример, но чтобы не велосипедить, можно использовать MapProxy, развернув его удобным вам способом, или воспользовавшись serve-develop для тестов. Воспользовавшись MapProxy, вы получаете не просто всевозможные сервисы на выходе (TMS, WMS и пр.), но и полноценную поддержку тайловых кэшев (в стеке MapServer для этого используется отдельное приложение MapCache).
Код: Выделить всё
$apt-cache depends cgi-mapserver
cgi-mapserver
Зависит: libc6
Зависит: libfcgi0ldbl
Зависит: libmapserver1
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 28 ноя 2014, 21:38
- Репутация: 0
Re: Leaflet + mapserver
Собственно я пишу приложение для рабочего стола на C++ и Qt в котором надо результаты расчётов показывать на карте. Что бы не писать свой виджет отображения карты решил вставить в приложение WebKit браузерный движёк и использовать Leaflet. Так же в приложение встроен http сервер который отдаёт в браузер страничку с картой + данные для отображения поверх карты. Что бы самому не заниматься сборкой всевозможных библиотек для чтения/отображения карт хочу по cgi интерфейсу подключить к своему http серверу mapserver. Поэтому встал вопрос с его настройкой. Надо было сразу изложить суть задачи, извините если ввёл в заблуждение.
Сейчас посидел подумал, пожалуй стоит подложку грузить напряму в leaflet из источника (OSM, Yandex) а на mapserver возложить только отдачу данных для отображения, а объединять слои в leaflet. Данные видимо будут лежать в БД SpatiaLite. Да, показывать мне надо вектора (точки и полигоны) и геопривязаные растровые картинки.
Что скажете про такую связку, она работоспособна? Может я что то упустил или не понял?
Сейчас посидел подумал, пожалуй стоит подложку грузить напряму в leaflet из источника (OSM, Yandex) а на mapserver возложить только отдачу данных для отображения, а объединять слои в leaflet. Данные видимо будут лежать в БД SpatiaLite. Да, показывать мне надо вектора (точки и полигоны) и геопривязаные растровые картинки.
Что скажете про такую связку, она работоспособна? Может я что то упустил или не понял?
-
- Гуру
- Сообщения: 5354
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Leaflet + mapserver
вектор можно и в самом leaflet показать и даже растр вставить...
-
- Гуру
- Сообщения: 731
- Зарегистрирован: 12 янв 2011, 22:40
- Репутация: 304
- Ваше звание: ∀
Re: Leaflet + mapserver
А большой ли объём данных? Если нет, может оказаться намного проще, коли уж у вас встроен HTTP-сервер в приложение, безо всякого MapServer прямо в вашем приложении генерировать и отдавать растровые тайлы по схеме TMS или совместимой с OSM и Google Maps, а векторные данные - в GeoJSON. Все эти форматы настолько просты, что их обычно проще генерировать самостоятельно, чем полагаться на сторонние приложения и библиотеки. За исключением случая, если вы собрались рендерить в растр собственную картографию с условными знаками, подписями и т. п. - тогда вам нужен Mapnik. MapServer требуется, когда нужно кэширование или следование стандартам OGC. В вашем настольном приложении всё это ни к чему.
Повозиться придётся только в том случае, если векторных данных много и их приходится отдавать частями по географическому охвату. Единого стандарта на такие сервисы нет (кроме сравнительно сложного WFS), но есть несколько реализаций, которые можно взять за образец, и плагины для Leaflet, позволяющие с ними работать. Посмотрите примеры здесь.
Повозиться придётся только в том случае, если векторных данных много и их приходится отдавать частями по географическому охвату. Единого стандарта на такие сервисы нет (кроме сравнительно сложного WFS), но есть несколько реализаций, которые можно взять за образец, и плагины для Leaflet, позволяющие с ними работать. Посмотрите примеры здесь.
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Leaflet + mapserver
Да, может никакой сервер вообще и не нужен, просто написать один скрипт для растеризации (или конвертирования в вектор, пригодный для web) и последующей нарезки, а потом дергать его по расписанию или по признаку обновления данных какому-то. И просто хранить все это в файловой системе веб-сервера.
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 28 ноя 2014, 21:38
- Репутация: 0
Re: Leaflet + mapserver
Всем спасибо за отклики, возьму перерыв на размышления...
-
- Гуру
- Сообщения: 731
- Зарегистрирован: 12 янв 2011, 22:40
- Репутация: 304
- Ваше звание: ∀
Re: Leaflet + mapserver
Ну если по-честному, в настольном приложении веб-сервер вообще выглядит костылём. Если лицензия приложения позволяет использовать GPL-код, можно воспользоваться QGIS Libraries или выдернуть что-нибудь отсюда; если нет - реализовать отрисовку тайликов и геометрий на Qt самому не сложнее, чем встроить в приложение веб-сервер и морду к нему, тем более при использовании SpatiaLite, на который можно возложить и перепроецирование, и пространственные выборки.
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 28 ноя 2014, 21:38
- Репутация: 0
Re: Leaflet + mapserver
Вообще да, картинка может запросто весить 1 Гб или около того.Ariki писал(а):А большой ли объём данных?
В будущем думаем делать web клиент с урезанным функционалом поэтому пока предварительно выбрали такую архитектуру. К тому же приложение всё равно должно содержать в себе некий сервер для общения с удалённым узлом.Ariki писал(а):Ну если по-честному, в настольном приложении веб-сервер вообще выглядит костылём.
На самом деле я пока не очень понимаю какие функции на что можно возложить и как это лучше сделать.Ariki писал(а):... при использовании SpatiaLite, на который можно возложить и перепроецирование, и пространственные выборки.
-
- Гуру
- Сообщения: 731
- Зарегистрирован: 12 янв 2011, 22:40
- Репутация: 304
- Ваше звание: ∀
Re: Leaflet + mapserver
Размер растровых данных не имеет значения, они всё равно режутся на тайлы для веб-приложений, а для настольных строятся пирамиды (чтобы при мелких масштабах отображения отрисовывать не исходный растр, а его вариант в низком разрешении). Я не знаю специфику вашего приложения, можно ли у вас генерировать данные на лету для некоторого "окна" в определённом масштабе, или же сначала выполняется расчёт на всю территорию, картинка сохраняется и затем уже её надо оптимизировать для отображения.mks писал(а):Вообще да, картинка может запросто весить 1 Гб или около того.
В случае векторных данных, на СУБД можно возложить их выборку по пространственному охвату (окну отображения) и другим критериям, перепроецирование в картографическую проекцию и даже генерацию GeoJSON для отдачи по HTTP.
- jerry-maori
- Гуру
- Сообщения: 585
- Зарегистрирован: 22 авг 2012, 17:02
- Репутация: 143
- Откуда: Нижний Новгород
Re: Leaflet + mapserver
1. Что представляют из себя результаты рассчётов? Именно в исходном виде.. Если это тупо сразу растр - одна история, если же это вектор, который загоняется в растр в угоду каким-либо причинам - совсем другая...
2. Приложение stand-alone или таки может щемится в интернет?
Если может - то все кульбиты с подложкой можно слать лесом... Опять же, leaflet вроде как может вывести на подложку почти любой каприз...
От этого зело многое зависит...
2. Приложение stand-alone или таки может щемится в интернет?
Если может - то все кульбиты с подложкой можно слать лесом... Опять же, leaflet вроде как может вывести на подложку почти любой каприз...
От этого зело многое зависит...
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 28 ноя 2014, 21:38
- Репутация: 0
Re: Leaflet + mapserver
- Результат расчётов изначально растровый (матрица напряжённости электромагнитного поля).
- Обращаться в интернет можно.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость