www.map-info.ru :: Просмотр темы - Поиск маршрута из точки А в точку В
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
Soneg



Зарегистрирован: 04.03.2010
Сообщения: 8

СообщениеДобавлено: Вт Апр 20, 2010 2:39 pm    Заголовок сообщения: Поиск маршрута из точки А в точку В Добавить ответ со ссылкой на данный текст

Хочу сделать программу, при помощи которой можно найти путь из точки А в точку В.
У меня имеется несколько слоев с автобусными маршрутами (линейные объекты), а также слой с автобусными остановками.
Программу я представляю так: открывается диалоговое окно "Введите точку А _____, Введите точку В _____". После нажатия кнопки ОК выделяются отрезки всех линий, соединяющих эти точки, а также выводится сообщение с номерами автобусных маршрутов, попавших в данную выборку.
Как это сделать - представления не имею. Пожалуйста, подтолкните на верный путь. Скажите, какие операторы можно использовать?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Arhara



Зарегистрирован: 18.02.2009
Сообщения: 400
Откуда: Moscow, RF

СообщениеДобавлено: Ср Апр 21, 2010 12:51 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

ищите в интернете алгоритм дейстры. или просто поиск кратчайшего пути. тема многократно обсуждалась в интеренете. алгоритм хорошо прописан, в том числе и на различных диалектах Basic'a.
В общем виде, он требует задание матрицы смежности вершин отдельных отрезков.
Разбор существующих карт и картинок на такую матрицу смежности - задача по сложности превышает сам алгоритм. Кроме того есть еще ограничения на размер массива в MapBasic'е. Так что после создания списка смежности обработку проще проводить в стороннем языке программирования или внешней программе.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
FedorinoFF



Зарегистрирован: 01.02.2007
Сообщения: 272
Откуда: Санкт-Петербург

СообщениеДобавлено: Ср Апр 21, 2010 4:10 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Arhara писал(а):
ищите в интернете алгоритм дейстры. или просто поиск кратчайшего пути. тема многократно обсуждалась в интеренете. алгоритм хорошо прописан, в том числе и на различных диалектах Basic'a.
В общем виде, он требует задание матрицы смежности вершин отдельных отрезков.
Разбор существующих карт и картинок на такую матрицу смежности - задача по сложности превышает сам алгоритм. Кроме того есть еще ограничения на размер массива в MapBasic'е. Так что после создания списка смежности обработку проще проводить в стороннем языке программирования или внешней программе.


А зачем обязательно массивы, когда есть таблицы и SQL. Рамки ограничений существенно раздвигаются...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Arhara



Зарегистрирован: 18.02.2009
Сообщения: 400
Откуда: Moscow, RF

СообщениеДобавлено: Пт Апр 23, 2010 12:06 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Стандартные алгоритмы на графах используют матрицы смежности и рекурсию. Очень может быть, что существуют модификации для выбора из таблицы смежности вершин с использованием SQL.
Но разбор дорожной сети, если она не создавалась изначально как дорожный граф, требует достаточно сложных алгоритмов.
Рамки существенно раздвинуть нельзя, поскольку задача поиска кратчайшего пути есть задача высокой размерности - надо найти все цепочки из точки А в точку В, а потом выбрать из них самую короткую.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
FedorinoFF



Зарегистрирован: 01.02.2007
Сообщения: 272
Откуда: Санкт-Петербург

СообщениеДобавлено: Пт Апр 23, 2010 9:03 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Имелись ввиду рамки, накладываемые ограничениями на размерность/размер массивов... ;-)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru