Страница 1 из 1
Расчет маршрута между двумя точками в пакетном режиме
Добавлено: 06 окт 2007, 14:14
purgenetik
Давно ищу совет для решения конкретной прикладной задачи научного исследования поездок жителей Подмосковья от места жительства до работы.
Для каждого жителя известен город проживания и город предприятия, где он работает. Нужно определить расстояние между этими двумя городами. Любая современная карта может это делать, но ИНТЕРАКТИВНО, даже с привязкой по автодорогам. Но когда количество пар в расчетах - десятки тысяч - нужен пакетный режим работы. Вот с этим и проблема. Кто-нибудь может подсказать ГИС-Карту, которая работала бы в пакетном режиме? Т.е. ее можно было запустить из командной строки:
somemap.exe -initialpoint Ивановка -finalpoint Петровка
И она напечатала бы расстояние между Ивановкой и Петровкой?
Другой вариант - извлечение каким-либо образом координат городов из имеющейся карты с последующим расчетом гео-расстояния между двумя точками. Но тут проблема с законностью операции извлечения данных + точностью, поскольку геометрическое расстояние между точками иногда сильно отличается о расстояния по реальным дорогам.
Был бы очень благодарен за любой совет, достаточно общих идей - что и с помощью чего делать по шагам (если их несколько).
Добавлено: 07 окт 2007, 15:14
geologic
Если вас устроит расстояние по прямой, то заложите себе координаты всех пунктов в базу данных, и настройте "простенький" SQL-запрос. Простенький он будет в том, что использует теорему пифагора. Испокон веку так и делается, даже в более сложных случаях, когда нужны варианты. ГИС вам тут не нужен, потому что задача будет примитивная. Координаты, разумеется, должны быть прямоугольные, в какой-нибудь равнопромежуточной ппроекции. Впрочем, для вашей задачи сойдет и обычный гаусс-крюгер седьмой зоны, искажения будут заведомо меньше чем за счет неточностей построения дорог.
Если вам все же нужны расстояния по реальной сети дорог, то эту сеть придется отстроить через Network Analyst или ему подобные. Можно даже найти готовые сети. Командный интерфейс к нему придется сочинить самому. Впрочем, если вы на ты с топологией, можете и на основе БД опять же сочинить состыковку векторов, там в общем схема организации прозрачная, однако математика уже не простая - лучше все же готовые библиотеки и среды.
Добавлено: 07 окт 2007, 18:37
purgenetik
geologic писал(а):Если вас устроит расстояние по прямой, то заложите себе координаты всех пунктов в базу данных.
Проблема в том, что координаты всех пунктов надо еще как-то определить. Если бы кто подсказал, где можно взять, или как можно извлечь из какой-нибудь известной ГИС-карты (законность данной операции?) БД с координатами населенных пунктов Московской области, был бы очень благодарен. Расчеты по ней - уже проще, формулы и программы можно взять хоть на этом сайте. Но вторая проблема - точность , о чем я писал. Два пункта по прямой может разделять 2 километра, но если между ними река и мост в 10 км в стороне, то ошибка набегает приличная...
geologic писал(а):
Если вам все же нужны расстояния по реальной сети дорог, то эту сеть придется отстроить через Network Analyst или ему подобные. Можно даже найти готовые сети. Командный интерфейс к нему придется сочинить самому. Впрочем, если вы на ты с топологией, можете и на основе БД опять же сочинить состыковку векторов, там в общем схема организации прозрачная, однако математика уже не простая - лучше все же готовые библиотеки и среды.
В топологии я ни в зуб ногой, поэтому этот вариант мне не по силам. Повторяюсь, может есть какой-нибудь простенький коммандный интерфейс к какой-нибудь известной ГИС-программе, скажем INGIT-карта Подмосковья, (замечательно прокладывающей маршруты), позволяющий запускать программу в batch-режиме, а не интерактивно? Понятно, что разработчики всех подобных программ не рассчитывают, что такая функциональность кому-нибудь нужна, но ведь нужна же! И для любых других статистических ГИС-расчетов это необходимо! Не понимаю, почему разработчики ограничиваются только тупым утилитарным интерактивным режимом...
Добавлено: 08 окт 2007, 16:58
geologic
Понятно. Если "через мост ехать", тогда вам все же сетевая модель нужна... Хотя я бы постарался упростить задачу до двух радиальных векторов - до Москвы например, и от неё, наверняка охватит 90% передвижений. Координаты можно взять из любой бесплатной карты МО - хоть официальной датаплюсовской, хоть неофициальной GPS-ной (см. ниже). ГИС и GPS средства позволяют пакетно получить координаты, и ничего незаконного в этом нет. Если карта уже в работе, то числовые значения координат считай, рассекречены.
Насчет сетей думаю, кто-нибудь ответит, но мой совет - спросить обязательно на gps-forum.ru, там народ бесплатной маршрутизацией владеет, сможете найти простые средства и модели. В ГИС более громоздкий, но и более мощный аппарат.
Ну а разработчики народ хитрый, зачем им раньше времени отвертки раздавать - пусть народ станки берёт в комплекте
