Поиск минимальных путей на карте дорог
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 24 дек 2011, 23:50
- Репутация: 0
Поиск минимальных путей на карте дорог
Здравствуйте!
Расположил на карте mapinfo точками столицы штатов США, хочу сделать дорогу между ними, чтобы в последствии из visual studio по средствам C# искать минимальный путь между двумя столицами, к примеру.
Вот вопрос возник, когда стал рисовать дороги линиями и полилиниями, а то ли я делаю. Не могу просто себе представить в виде чего нарисовать дорогу и как это сделать, чтобы потом можно было применить, допустим, алгоритм Дейкстры.
Могу на данный момент только так себе дорогу представить: полилинии соединяющие каждую точку между собой в виде дороги, причем 1 полилиния обязательно из одной точки в другую, объяснить сложно, нарисую :
А должно быть вот так я думаю:
Подскажите как правильно реализовать дороги с возможностью дальнейшего расчета минимальных путей по ним. Совсем новичек в mapinfo.
СПАСИБО заранее.
Расположил на карте mapinfo точками столицы штатов США, хочу сделать дорогу между ними, чтобы в последствии из visual studio по средствам C# искать минимальный путь между двумя столицами, к примеру.
Вот вопрос возник, когда стал рисовать дороги линиями и полилиниями, а то ли я делаю. Не могу просто себе представить в виде чего нарисовать дорогу и как это сделать, чтобы потом можно было применить, допустим, алгоритм Дейкстры.
Могу на данный момент только так себе дорогу представить: полилинии соединяющие каждую точку между собой в виде дороги, причем 1 полилиния обязательно из одной точки в другую, объяснить сложно, нарисую :
А должно быть вот так я думаю:
Подскажите как правильно реализовать дороги с возможностью дальнейшего расчета минимальных путей по ним. Совсем новичек в mapinfo.
СПАСИБО заранее.
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Поиск минимальных путей на карте дорог
В обычных ГИС дороги рисуют полилиниями - 1 дорога (полотно, если дорога односторонняя; бывает вариант все дороги двумя линиями, односторонние - одной). Для целей поиска кратчайших расстояний, дороги должны быть преобразованы в направленный граф.
В мапинфо такой алгоритм отсутствует - есть только его обрубок - расстановка точек в местах пересечения полилиний. Делает какой-то утилитой.
В любом алгоритме предварительной обработки - результат один: каждый сегмент дороги (кусок от одного перекрестка до другого или кусок однородной дороги) должен стать отдельным объектом полилинией - с направлением и временем, затрачиваемым на его прохождение.
В мапинфо такой алгоритм отсутствует - есть только его обрубок - расстановка точек в местах пересечения полилиний. Делает какой-то утилитой.
В любом алгоритме предварительной обработки - результат один: каждый сегмент дороги (кусок от одного перекрестка до другого или кусок однородной дороги) должен стать отдельным объектом полилинией - с направлением и временем, затрачиваемым на его прохождение.
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 24 дек 2011, 23:50
- Репутация: 0
Re: Поиск минимальных путей на карте дорог
Спасибо. Решил сделать как на втором рисунке. Поместил на карту перекрестки (точки - с одним свойством id - это будет номер вершины графа потом), дороги (полилинии и линии- Свойства: Две колонки говорят о том из какого перекрестка в какой идет дорога, то есть из какой вершины нашего будущего графа в какую и Колонка длина, то есть длина ребра графа в будущем).
Теперь вопрос как получить эти данные из visual studio. Знаю что есть метод интеграции eval. Им и пользоваться пытаюсь:
Однако он не срабатывает...
Говорит какая то синтаксическая ошибка. Если вместо Eval написать Do то Do выполнится.
Что не так?
Теперь вопрос как получить эти данные из visual studio. Знаю что есть метод интеграции eval. Им и пользоваться пытаюсь:
Код: Выделить всё
var stroke = mapinfo.Eval("Select * From towns");
Говорит какая то синтаксическая ошибка. Если вместо Eval написать Do то Do выполнится.
Что не так?
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 24 дек 2011, 23:50
- Репутация: 0
Re: Поиск минимальных путей на карте дорог
Разобрался, этот код работает:
Заполняю ComboBox'ы значениями из таблиц
Код: Выделить всё
mapinfo.Do("Fetch first from towns");
do
{
var stroke = mapinfo.Eval("towns.Name");
Cmb_From.Items.Add(stroke);
Cmb_To.Items.Add(stroke);
mapinfo.Do("Fetch next from towns");
} while (mapinfo.Eval("EOT(towns)") == "F");
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Поиск минимальных путей на карте дорог
У меня есть класс MapInfo для VB 6.0 - не уверен, что он подойдет для NET, но если нужно - поделюсь.
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 24 дек 2011, 23:50
- Репутация: 0
Re: Поиск минимальных путей на карте дорог
А что он может ?:) Лишним не будет, я думаю.
У меня встал вопрос: Как изменять стили линий, полилиний.
Вот такой код набросал:
mapinfo.Do("Alter Object myO Info objectinfo(myO,2), myPen");
Не работает: "Преобразовать данные не удалось."
Что то не так написал?
У меня встал вопрос: Как изменять стили линий, полилиний.
Вот такой код набросал:
Код: Выделить всё
mapinfo.Do("Dim myO As Object, myPen As Pen");
mapinfo.Do("Fetch first from roads");
mapinfo.Do("myO = roads.obj");
mapinfo.Do("myPen = MakePen(1, 2, rgb(0,0,255))");
mapinfo.Do("Alter Object myO Info objectinfo(myO,2), myPen");
mapinfo.Do("Update selection Set obj = myO");
Не работает: "Преобразовать данные не удалось."
Что то не так написал?
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 24 дек 2011, 23:50
- Репутация: 0
Re: Поиск минимальных путей на карте дорог
Разобрался, кажется
Путём замены
на
Путём замены
Код: Выделить всё
mapinfo.Do("Alter Object myO Info objectinfo(myO,2), myPen");
Код: Выделить всё
mapinfo.Do("Alter Object myO Info 2, myPen")
-
- Активный участник
- Сообщения: 160
- Зарегистрирован: 17 янв 2012, 18:51
- Репутация: 74
Re: Поиск минимальных путей на карте дорог
Могу предложить готовую программу на МВ.
http://depositfiles.com/files/x6uxnr6bc
http://depositfiles.com/files/x6uxnr6bc
-
- Новоприбывший
- Сообщения: 1
- Зарегистрирован: 25 авг 2016, 18:44
- Репутация: 0
Re: Поиск минимальных путей на карте дорог
можете подсказать может в новом мапинфо появилась возможность сделать поиск минимальных путей на карте, если не сложно подскажите как
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей