Нарисовать курьерский маршрут в QGis и экспортировать в SVG
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 15 мар 2013, 04:19
- Репутация: 0
Нарисовать курьерский маршрут в QGis и экспортировать в SVG
Приветствую всех!
(Вроде темы такой не было, поэтому открываю новую.)
Вобщем, поставил я 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 неприятно пользоваться, там часто даже нужные улицы отсутствуют.
(Вроде темы такой не было, поэтому открываю новую.)
Вобщем, поставил я 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 неприятно пользоваться, там часто даже нужные улицы отсутствуют.
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Нарисовать курьерский маршрут в QGis и экспортировать в
Читали Поиск кратчайшего маршрута c помощью Road graph для QGIS? Такое решение вам подходит?
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 15 мар 2013, 04:19
- Репутация: 0
Re: Нарисовать курьерский маршрут в QGis и экспортировать в
Дмитрий Барышников, читали мой пост внимательно? Или «по диагонали»?
Нигде в описании не сказано, что этот РоудГраф может построить маршрут на 40 точек с заходом в каждую, правильно нарисовать и подсчитать все участки.
Нигде в описании не сказано, что этот РоудГраф может построить маршрут на 40 точек с заходом в каждую, правильно нарисовать и подсчитать все участки.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Нарисовать курьерский маршрут в QGis и экспортировать в
Эти "огрызки" — чуть ли единственные геоданные подобной подробности, которыми вы можете легально бесплатно пользоваться, в т.ч. в коммерческих целях. Найдите в интернете карты подробнее (2GIS, например) и купите у поставщика, в чём проблема-то?Aq_Stranger писал(а):а то огрызками из OpenStreetMap неприятно пользоваться, там часто даже нужные улицы отсутствуют.
Вот ещё полезная ссылка. Похоже, вам придётся слегка попрограммировать для решения вашей задачи
Редактор материалов, модератор форума
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Нарисовать курьерский маршрут в QGis и экспортировать в
Читал.Aq_Stranger писал(а):Дмитрий Барышников, читали мой пост внимательно? Или «по диагонали»?
Если хотите что бы вам дали систему решающую ваши специфические задачи "из коробки", тогда только заказ разработки у специализирующихся на этом компаниях или самостоятельное программирование.Aq_Stranger писал(а):Я не прошу подробной инструкции
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 15 мар 2013, 04:19
- Репутация: 0
Re: Нарисовать курьерский маршрут в QGis и экспортировать в
Я ещё могу понять, когда в каком-то частном секторе на глухой окраине нехватает нескольких Задрищенских переулков. Но когда почти не прорисован район железнодорожного вокзала в треугольнике Старосенной-Водопроводной, где целая куча важных предприятий -- тут уже слово «подробность» вызывает усмешку.Александр Мурый писал(а):Эти "огрызки" — чуть ли единственные геоданные подобной подробности, которыми вы можете легально бесплатно пользоваться, в т.ч. в коммерческих целях.Aq_Stranger писал(а):а то огрызками из OpenStreetMap неприятно пользоваться, там часто даже нужные улицы отсутствуют.
Кстати, в установочном каталоге Дупель-ГИСа я нашёл 31-мегабайтный файл *.dgdat с заголовком 0х07 0х47 0х44 0х46. Я так понял, что это карта. Её можно скормить Квантум-ГИСу?Александр Мурый писал(а): Найдите в интернете карты подробнее (2GIS, например) и купите у поставщика, в чём проблема-то?
Дупель-ГИС в бесплатной версии -- картоновая дурилка для юзеров, ничего толком не умеет, зато сразу показывает, где какие рестораны и ночные клубы. В плане построения маршрутов функциональность аналогична Гугель/Яндекс-мапс, то есть вообще непригодна.
Вот ещё полезная ссылка. Похоже, вам придётся слегка попрограммировать для решения вашей задачи [/quote]
Интересный плагин. Делает то, что мне не надо и не делает того, что надо.
Может я неправильно описал задачу? Дайте краткую инструкцию для чайников -- не хочется при очередном изменении (точка-клиент открылась, закрылась или переехала) опять рисовать всё в Фотошопе на плохо отсканированной карте лохматого года и считать длины с помощью линейки!
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 15 мар 2013, 04:19
- Репутация: 0
Re: Нарисовать курьерский маршрут в QGis и экспортировать в
У меня сложилось впечатление, что либо Вы не поняли написанного, либо под любым предлогом хотите сделать меня бета-тестером указанного плагина.Дмитрий Барышников писал(а): Если хотите что бы вам дали систему решающую ваши специфические задачи "из коробки", тогда только заказ разработки у специализирующихся на этом компаниях или самостоятельное программирование.
Ладно, попробую ещё раз. Город условно разбит на районы обслуживания. В каждом районе 200-300 точек. Все они охватываются маршрутами, в каждом из которых 30-60 точек. Никакие «поиски кратчайшего расстояния» с Дейкстрами и прочими нахрен не сдались -- во-первых курьеры, ориентируясь на местности, лучше знают как им ездить, во-вторых для этого функционала достаточно сходить на Гугел-мапс. Маршруты по разным причинам всё время немного меняются -- исчезают старые и появляются новые точки, где-то водопроводчики на две недели дорогу перекопают, а где-то проделанная дыра в заборе позволит сократить путь на лишний километр. Всё это надо каждый раз ОПЕРАТИВНО перерисовывать, перепечатывать и считать длины -- вот это и есть основная задача -- правильно нарисовать и правильно подсчитать. Всякие мапсы и дупели такой функциональности не предоставляют.
- paleogis
- Модератор
- Сообщения: 1112
- Зарегистрирован: 22 мар 2009, 08:54
- Репутация: 200
- Ваше звание: Модератоо
Re: Нарисовать курьерский маршрут в QGis и экспортировать в
По поводу "огрызок "из OSM. Во-первых , Вы всегда можете дорисовать эти "огрызки", и куча народа будет Вам благодарна. Во-вторых, дареному коню в зубы не смотрят. Платные данные можете купить, например у Визикома. Согласен с Дмитрием, Ваша задача требует отдельной разработки.
[ Сообщение с мобильного устройства ]
[ Сообщение с мобильного устройства ]
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Нарисовать курьерский маршрут в QGis и экспортировать в
Aq_Stranger, умерьте пыл, пож-та. Давайте обсуждать задачу.
1) строить по точкам линии (в QGIS это плагин Points to Paths); линии строятся путём группировки точек по атрибутам (надо проставить номера точек, например);
2) считать длины полученных линий с занесением их в атрибутивную таблицу (в QGIS это делается через калькулятор полей, функция $length);
3) умеет делать макеты карт с нужной вам символикой и экспортировать в SVG (QGIS может);
4) позволяет частично автоматизировать пункты 1-3 (в QGIS — через скрипты на Python).
Если маршруты определяются не кратчайшими расстояниями и прочим сетевым анализом, а просто по точкам и по ситуации, то берите любую бесплатную ГИС, которая умеет 4 вещи:Aq_Stranger писал(а): Всё это надо каждый раз ОПЕРАТИВНО перерисовывать, перепечатывать и считать длины -- вот это и есть основная задача -- правильно нарисовать и правильно подсчитать.
1) строить по точкам линии (в QGIS это плагин Points to Paths); линии строятся путём группировки точек по атрибутам (надо проставить номера точек, например);
2) считать длины полученных линий с занесением их в атрибутивную таблицу (в QGIS это делается через калькулятор полей, функция $length);
3) умеет делать макеты карт с нужной вам символикой и экспортировать в SVG (QGIS может);
4) позволяет частично автоматизировать пункты 1-3 (в QGIS — через скрипты на Python).
Редактор материалов, модератор форума
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Нарисовать курьерский маршрут в QGis и экспортировать в
Странная позиция, "здесь все мне должны".Aq_Stranger писал(а): У меня сложилось впечатление, что либо Вы не поняли написанного, либо под любым предлогом хотите сделать меня бета-тестером указанного плагина.
Был задан вопрос, с учетом своего опыта я вам "задал направление". В ответ пошли стенания, что мол и карта не подробная и плагин не совсем то/совсем не то делает.
Я же вроде отметил, что если хотите, в точности:
то придется разрабатывать.Aq_Stranger писал(а): Ладно, попробую ещё раз. Город условно разбит на районы обслуживания. В каждом районе 200-300 точек. Все они охватываются маршрутами, в каждом из которых 30-60 точек. Никакие «поиски кратчайшего расстояния» с Дейкстрами и прочими нахрен не сдались -- во-первых курьеры, ориентируясь на местности, лучше знают как им ездить, во-вторых для этого функционала достаточно сходить на Гугел-мапс. Маршруты по разным причинам всё время немного меняются -- исчезают старые и появляются новые точки, где-то водопроводчики на две недели дорогу перекопают, а где-то проделанная дыра в заборе позволит сократить путь на лишний километр. Всё это надо каждый раз ОПЕРАТИВНО перерисовывать, перепечатывать и считать длины -- вот это и есть основная задача -- правильно нарисовать и правильно подсчитать. Всякие мапсы и дупели такой функциональности не предоставляют.
Как у вас с Python и C++?
И еще не понятно, если
зачем вам вообще ГИС? Вы и без ГИС, судя по этой фразе, лучше ориентируетесь на местности.Aq_Stranger писал(а): Никакие «поиски кратчайшего расстояния» с Дейкстрами и прочими нахрен не сдались -- во-первых курьеры, ориентируясь на местности, лучше знают как им ездить, во-вторых для этого функционала достаточно сходить на Гугел-мапс.
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Нарисовать курьерский маршрут в QGis и экспортировать в
Дайте курьеру GPS'ку - он запишет трек. По полученному треку узнаете расстояние. Загрузите его в SAS.Planet и получите картинку, с какой угодно картой/снимками.
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Нарисовать курьерский маршрут в QGis и экспортировать в
Да можно и на смартфон записать. Благо программ трекеров полно.
Можно вообще отслеживать в реальном времени: http://habrahabr.ru/post/129395/
Можно вообще отслеживать в реальном времени: http://habrahabr.ru/post/129395/
Кто сейчас на конференции
Сейчас этот форум просматривают: Semrush [Bot] и 1 гость