Страница 1 из 1

Нарисовать курьерский маршрут в QGis и экспортировать в SVG

Добавлено: 15 мар 2013, 05:32
Aq_Stranger
Приветствую всех!

(Вроде темы такой не было, поэтому открываю новую.)

Вобщем, поставил я QGis по совету хороших людей -- возможно ошибся, и надо было ставить чего-то попроще. Сейчас штудирую руководство пользователя, как импортировать *.osm-огрызки -- уже нашёл.

Задача -- построить развозочно-логистический маршрут :) Конечно, есть много способов, как импортировать карту в качестве подложки, создать слой на ней и рисовать, но меня интересует как это сделать правильно и с наименьшими усилиями, чтобы не изобретать велосипед. Могу собрать компьютер, могу собрать Gentoo, в геодезии и картографии -- полный ноль, с математикой дружу, с аффинными координатами (сферическими, цилиндрическими) -- знаком, есть небольшой навык спортивного ориентирования.

Исходные данные: мотороллер, бандероли с посылками, курьерская команда -- водитель и грузчик, точки обслуживания. Мотороллер не является ни автомобилем ни скоростным мотоциклом, поэтому односторонние улицы, запрещённые повороты и парковые зоны игнорируем -- нам можно :)

Маршрут состоит из четырёх типов участков.
1) Преодолеваемый мотороллером в одном направлении -- основная часть маршрута.
2) Преодолеваемый мотороллером в обоих направлениях -- заезды в переулки, тупики и на те точки, которые не совсем по дороге.
3) Преодолеваемый пешком -- точки в глубине дворов, на режимных территориях и в прочих местах, куда подъезда нет.
4) Преодолеваемый мотороллером без грузчика -- редкий случай, когда водитель высаживает грузчика возле одной проходной, а должен встретить его уже у другой на примыкающей или противоположной улице. На всём множестве маршрутов будет 2 или 3, содержащие подобный участок.

Цвет и размер линий: 1 -- основной цвет (для каждого маршрута -- свой) и стандартная ширина, 2 -- более тёмный оттенок, 3 -- более тёмный оттенок и половинная ширина, 4 -- более светлый оттенок. Для ясности примыкающие к трассе маршрута небольшие кусочки улиц и переулков будут обозначены линиями светло-серым цветом стандартной ширины.

На экспортируемом изображении помимо самого маршрута должны быть названия улиц (надо ли будет продублировать вручную с основного слоя?), контуры зданий и объектов, зелёные зоны и водные пространства, трамвайные и железнодорожные рельсы, низкорасположенные трубопроводы и прочие естественные преграды, понятное дело мосты, и больше ничего -- никаких номеров домов, названий супермаркетов и прочего.

Также требуется подсчитать суммарные длины отдельно всех типов участков маршрута и настроить подсчёт и экспорт в txt/xml следующих сумм:
а) 1*S1 + 2*S2 + 0*S3 + 0*S4 -- основной пробег мотороллера
б) 1*S1 + 2*S2 + 0*S3 + 1*S4 -- общий пробег мотороллера
в) 1*S1 + 2*S2 + 2*S3 + 0*S4 -- «эффективная» длина маршрута
г) 1*S1 + 2*S2 + 2*S3 + 1*S4 -- общая длина маршрута

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

Re: Нарисовать курьерский маршрут в QGis и экспортировать в

Добавлено: 15 мар 2013, 09:31
Дмитрий Барышников
Читали Поиск кратчайшего маршрута c помощью Road graph для QGIS? Такое решение вам подходит?

Re: Нарисовать курьерский маршрут в QGis и экспортировать в

Добавлено: 15 мар 2013, 10:28
Aq_Stranger
Дмитрий Барышников, читали мой пост внимательно? Или «по диагонали»?

Нигде в описании не сказано, что этот РоудГраф может построить маршрут на 40 точек с заходом в каждую, правильно нарисовать и подсчитать все участки.

Re: Нарисовать курьерский маршрут в QGis и экспортировать в

Добавлено: 15 мар 2013, 10:42
Александр Мурый
Aq_Stranger писал(а):а то огрызками из OpenStreetMap неприятно пользоваться, там часто даже нужные улицы отсутствуют.
Эти "огрызки" — чуть ли единственные геоданные подобной подробности, которыми вы можете легально бесплатно пользоваться, в т.ч. в коммерческих целях. Найдите в интернете карты подробнее (2GIS, например) и купите у поставщика, в чём проблема-то?

Вот ещё полезная ссылка. Похоже, вам придётся слегка попрограммировать для решения вашей задачи :)

Re: Нарисовать курьерский маршрут в QGis и экспортировать в

Добавлено: 15 мар 2013, 11:11
Дмитрий Барышников
Aq_Stranger писал(а):Дмитрий Барышников, читали мой пост внимательно? Или «по диагонали»?
Читал.
Aq_Stranger писал(а):Я не прошу подробной инструкции
Если хотите что бы вам дали систему решающую ваши специфические задачи "из коробки", тогда только заказ разработки у специализирующихся на этом компаниях или самостоятельное программирование.

Re: Нарисовать курьерский маршрут в QGis и экспортировать в

Добавлено: 17 мар 2013, 02:09
Aq_Stranger
Александр Мурый писал(а):
Aq_Stranger писал(а):а то огрызками из OpenStreetMap неприятно пользоваться, там часто даже нужные улицы отсутствуют.
Эти "огрызки" — чуть ли единственные геоданные подобной подробности, которыми вы можете легально бесплатно пользоваться, в т.ч. в коммерческих целях.
Я ещё могу понять, когда в каком-то частном секторе на глухой окраине нехватает нескольких Задрищенских переулков. Но когда почти не прорисован район железнодорожного вокзала в треугольнике Старосенной-Водопроводной, где целая куча важных предприятий -- тут уже слово «подробность» вызывает усмешку.
Александр Мурый писал(а): Найдите в интернете карты подробнее (2GIS, например) и купите у поставщика, в чём проблема-то?
Кстати, в установочном каталоге Дупель-ГИСа я нашёл 31-мегабайтный файл *.dgdat с заголовком 0х07 0х47 0х44 0х46. Я так понял, что это карта. Её можно скормить Квантум-ГИСу?

Дупель-ГИС в бесплатной версии -- картоновая дурилка для юзеров, ничего толком не умеет, зато сразу показывает, где какие рестораны и ночные клубы. В плане построения маршрутов функциональность аналогична Гугель/Яндекс-мапс, то есть вообще непригодна.

Вот ещё полезная ссылка. Похоже, вам придётся слегка попрограммировать для решения вашей задачи :)[/quote]
Интересный плагин. Делает то, что мне не надо и не делает того, что надо.

Может я неправильно описал задачу? Дайте краткую инструкцию для чайников -- не хочется при очередном изменении (точка-клиент открылась, закрылась или переехала) опять рисовать всё в Фотошопе на плохо отсканированной карте лохматого года и считать длины с помощью линейки!

Re: Нарисовать курьерский маршрут в QGis и экспортировать в

Добавлено: 17 мар 2013, 02:31
Aq_Stranger
Дмитрий Барышников писал(а): Если хотите что бы вам дали систему решающую ваши специфические задачи "из коробки", тогда только заказ разработки у специализирующихся на этом компаниях или самостоятельное программирование.
У меня сложилось впечатление, что либо Вы не поняли написанного, либо под любым предлогом хотите сделать меня бета-тестером указанного плагина.

Ладно, попробую ещё раз. Город условно разбит на районы обслуживания. В каждом районе 200-300 точек. Все они охватываются маршрутами, в каждом из которых 30-60 точек. Никакие «поиски кратчайшего расстояния» с Дейкстрами и прочими нахрен не сдались -- во-первых курьеры, ориентируясь на местности, лучше знают как им ездить, во-вторых для этого функционала достаточно сходить на Гугел-мапс. Маршруты по разным причинам всё время немного меняются -- исчезают старые и появляются новые точки, где-то водопроводчики на две недели дорогу перекопают, а где-то проделанная дыра в заборе позволит сократить путь на лишний километр. Всё это надо каждый раз ОПЕРАТИВНО перерисовывать, перепечатывать и считать длины -- вот это и есть основная задача -- правильно нарисовать и правильно подсчитать. Всякие мапсы и дупели такой функциональности не предоставляют.

Re: Нарисовать курьерский маршрут в QGis и экспортировать в

Добавлено: 17 мар 2013, 07:45
paleogis
По поводу "огрызок "из OSM. Во-первых , Вы всегда можете дорисовать эти "огрызки", и куча народа будет Вам благодарна. Во-вторых, дареному коню в зубы не смотрят. Платные данные можете купить, например у Визикома. Согласен с Дмитрием, Ваша задача требует отдельной разработки.

[ Сообщение с мобильного устройства ]

Re: Нарисовать курьерский маршрут в QGis и экспортировать в

Добавлено: 17 мар 2013, 08:16
Александр Мурый
Aq_Stranger, умерьте пыл, пож-та. Давайте обсуждать задачу.
Aq_Stranger писал(а): Всё это надо каждый раз ОПЕРАТИВНО перерисовывать, перепечатывать и считать длины -- вот это и есть основная задача -- правильно нарисовать и правильно подсчитать.
Если маршруты определяются не кратчайшими расстояниями и прочим сетевым анализом, а просто по точкам и по ситуации, то берите любую бесплатную ГИС, которая умеет 4 вещи:
1) строить по точкам линии (в QGIS это плагин Points to Paths); линии строятся путём группировки точек по атрибутам (надо проставить номера точек, например);
2) считать длины полученных линий с занесением их в атрибутивную таблицу (в QGIS это делается через калькулятор полей, функция $length);
3) умеет делать макеты карт с нужной вам символикой и экспортировать в SVG (QGIS может);
4) позволяет частично автоматизировать пункты 1-3 (в QGIS — через скрипты на Python).

Re: Нарисовать курьерский маршрут в QGis и экспортировать в

Добавлено: 17 мар 2013, 13:51
Дмитрий Барышников
Aq_Stranger писал(а): У меня сложилось впечатление, что либо Вы не поняли написанного, либо под любым предлогом хотите сделать меня бета-тестером указанного плагина.
Странная позиция, "здесь все мне должны".
Был задан вопрос, с учетом своего опыта я вам "задал направление". В ответ пошли стенания, что мол и карта не подробная и плагин не совсем то/совсем не то делает.
Я же вроде отметил, что если хотите, в точности:
Aq_Stranger писал(а): Ладно, попробую ещё раз. Город условно разбит на районы обслуживания. В каждом районе 200-300 точек. Все они охватываются маршрутами, в каждом из которых 30-60 точек. Никакие «поиски кратчайшего расстояния» с Дейкстрами и прочими нахрен не сдались -- во-первых курьеры, ориентируясь на местности, лучше знают как им ездить, во-вторых для этого функционала достаточно сходить на Гугел-мапс. Маршруты по разным причинам всё время немного меняются -- исчезают старые и появляются новые точки, где-то водопроводчики на две недели дорогу перекопают, а где-то проделанная дыра в заборе позволит сократить путь на лишний километр. Всё это надо каждый раз ОПЕРАТИВНО перерисовывать, перепечатывать и считать длины -- вот это и есть основная задача -- правильно нарисовать и правильно подсчитать. Всякие мапсы и дупели такой функциональности не предоставляют.
то придется разрабатывать.
Как у вас с Python и C++?

И еще не понятно, если
Aq_Stranger писал(а): Никакие «поиски кратчайшего расстояния» с Дейкстрами и прочими нахрен не сдались -- во-первых курьеры, ориентируясь на местности, лучше знают как им ездить, во-вторых для этого функционала достаточно сходить на Гугел-мапс.
зачем вам вообще ГИС? Вы и без ГИС, судя по этой фразе, лучше ориентируетесь на местности.

Re: Нарисовать курьерский маршрут в QGis и экспортировать в

Добавлено: 17 мар 2013, 17:51
trir
Дайте курьеру GPS'ку - он запишет трек. По полученному треку узнаете расстояние. Загрузите его в SAS.Planet и получите картинку, с какой угодно картой/снимками.

Re: Нарисовать курьерский маршрут в QGis и экспортировать в

Добавлено: 17 мар 2013, 18:40
Дмитрий Барышников
Да можно и на смартфон записать. Благо программ трекеров полно.
Можно вообще отслеживать в реальном времени: http://habrahabr.ru/post/129395/