Перейти к содержимому

Фотография

MapBasic и все что с ним связаноМожет я не один такой?!


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 388

#241
Jismo

Jismo
  • Свой человек
  • 975 сообщений
ничего лучше не придумалось, чем написать readme с инструкциями по установке :-)

Сообщение отредактировал Jismo: 02.12.2009, 13:50:03

  • 0

#242
swatch

swatch
  • Частый гость
  • 99 сообщений
Вполне резонный и менее трудозатратный подход :-)
  • 0

#243
NAstySanta

NAstySanta
  • Случайный прохожий
  • 2 сообщений
Jismo
Привет ... я решил заняться изучением мапбейсика, не мог бы ты прислать мне на почту stsa85{Sabaka}ya.ru
ссылки на литературу на русском по сабжу. Не знаете есть ли возможность там обрабатывать информацию с com порта?
  • 0

#244
Jismo

Jismo
  • Свой человек
  • 975 сообщений
2NAstySanta
Привет! Все отправил на мыло.
  • 0

#245
swatch

swatch
  • Частый гость
  • 99 сообщений

Не знаете есть ли возможность там обрабатывать информацию с com порта?

Знаем. Возможности средствами MB обрабатывать информацию с com порта нет.
Для этого нужно сделать библиотеку dll средствами других ЯП, и затем уже, используя вызовы функций и процедур из dll, обрабатывать информацию в MB.

Сообщение отредактировал swatch: 13.12.2009, 10:01:08

  • 0

#246
NAstySanta

NAstySanta
  • Случайный прохожий
  • 2 сообщений
swatch
спасибо
  • 0

#247
kipishya

kipishya
  • Случайный прохожий
  • 3 сообщений
Здравствуйте, прошу выслать на мыло kipishya@yandex.ru ссылку на материалы по MapBasic (желательно рус яз, но и с инглишем я знакома:cry: )и еще прошу ссылочку, где скачать сам MapBasic. Думается мне, версия 6 очень подойдет. Заранее спасибо.Бу оч благодарна!!!!
  • 0

#248
Jismo

Jismo
  • Свой человек
  • 975 сообщений
2kipishya

Извини лень было ссылки делать отправил файлы все какие были целиком в 2 письмах, в 1 сам МБ в разных версиях, во 2 литра по МБ9 и МБ7.5
  • 0

#249
kipishya

kipishya
  • Случайный прохожий
  • 3 сообщений
Здравствуйте. Извините, болела и доступа к инету не имела. Почту проверила.К сожалению, ничего от Вас не приходило. Попробуйте еще раз, пожалуйста. Почта kipishya@yandex.ru Спасибо!
  • 0

#250
Jismo

Jismo
  • Свой человек
  • 975 сообщений
Видимо не отправилось, извини, выслал еще раз, проверь :)
  • 0

#251
kipishya

kipishya
  • Случайный прохожий
  • 3 сообщений
Получила, буду изучать! Оч надо для работы! СПАСИБО!!!
  • 0

#252
Jismo

Jismo
  • Свой человек
  • 975 сообщений
пожалуйста
  • 0

#253
soneg

soneg
  • Случайный прохожий
  • 1 сообщений
Пожалуйста, дайте ссылку на собственно MapBasic! Почта soneg@ya.ru учебник уже есть, нужна сама программа
  • 0

#254
Asphyxis

Asphyxis
  • Гость
  • 6 сообщений
Добрый день.

Получил задачу: создание утилиты для mapinfo, написать утилиту поиска кратчайшего маршрута на mapbasic.
Маршрут должен быть "привязан" к существующим дорогам (отрисованы линиями).

Подскажите пожалуйста как это реализовать? или что почитать?

Спасибо.
  • 0

#255
swatch

swatch
  • Частый гость
  • 99 сообщений
Добрый день.
Задача не такая простая, как кажется на первый взгляд.
Для поиска маршрута нет готовых инструментов в MapInfo. Для решения поставленной задачи Вам потребуется построение топологической модели дорожной сети по графическим объектам карты в виде графа. Затем уже по графу, используя любой алгоритм поиска кратчайшего пути между вершинами, например Дейкстры, найти маршрут.
"Грабли", обычно встречаются при построении топологической модели дорожной сети по самой карте, если изначально она (карта) не предназначалась для решения подобных задач. Т.е. не были соблюдены определенные топологические правила при отрисовке. Самая распространенная ошибка - несовмещение конечных узлов сегментов, наличие пересечений сегментов без формирования узла в точке пересечения.

Для обеспечения достаточного быстродействия и получения ожидаемых результатов рекомендуется действовать следующим образом:
1. Подготовка картографических данных. Создание объектов карты с соблюдением правил топологии. Делается вручную оператором.
2. Проверка картографических данных на соблюдение правил топологии. Выявление ошибок автоматически при помощи инструментария. Исправление ошибок вручную оператором. Повторение п.2 до тех пор, пока не будут устранены все ошибки топологии.
3. Поиск и построение маршрутов для решения поставленной задачи.

Приведу основное правило топологии, которое необходимо соблюдать при создании карты.
Сегменты дорог должны обрываться при пересечении с другими дорогами и продолжаться с полным совпадением координат конечного и начального узла (от перекрестка до перекрестка отдельные сегменты).

При поиске маршрута "на лету" можно каждый раз строить модель по дорожной сети, либо один раз сделать модель и использовать ее при поиске маршрутов. При изменении карты перестраивать модель.

Что представляет собой модель? Это взвешенный граф, (в случае наложения ограничений таких как односторонние улицы - ориентированный взвешенный граф). Для построения простого взвешенного графа делаем следующее (не претендую на самый оптимальный алгоритм):
1. Из всех линий, обозначающих дороги, считываем координаты конечных узлов в массив. Также сохраняем идентификатор линии (ссылку на объект карты).
2. Делаем сортировку узлов в массиве по координатам. Узлы, принадлежащие различным сегметам, образующим прекресток выстраиваются вместе.
3. Проходим по массиву и в случае обнаружения 2-х и более точек с одинаковыми координатами заносим данные о сегментах в матрицу отношений (способ описания графа).

Как осуществляем поиск маршрута.
1. Пользователь указывет начало и конец маршрута.
2. Поиск ближайшего сегмента дороги к указанной точке начала маршрута.
3. Поиск ближайшего сегмента дороги к указанной точке окончания маршрута.
4. Поиск кратчайшего пути в графе между указанными вершинами по модели (в случае, если начало и окончание маршрута лежит не на конечном узле сегмента учесть это при расчете расстояния).
5. По списку вершин, вошедших в маршрут, осуществить подстветку на карте сегментов дорожной сети с соответствющими идентификаторами (они были сохранены при чтении данных).

Удачи... :-)

Сообщение отредактировал swatch: 15.02.2010, 11:14:57

  • 0

#256
swatch

swatch
  • Частый гость
  • 99 сообщений
2soneg: читаем здесь.
Жаль, что вам было лень воспользоваться поиском.
  • 0

#257
Asphyxis

Asphyxis
  • Гость
  • 6 сообщений

Добрый день.
Задача не такая простая, как кажется на первый взгляд.


спасибо! очень дельный совет!

я понимаю, что задача не простая, тогда и вопросов не было :-)
а можете мне подсказать некий набор функций реализующий эту задачу (при программировании на mapbasic), детально я о них прочитаю в справочнике (надеюсь)

ещё раз спасибо!
  • 0

#258
swatch

swatch
  • Частый гость
  • 99 сообщений
Вот перечень операторов на первый взгляд.
Для модели целесообразно использовать массив из значений пользовательского типа описывающего отношения узлов графа, содержащего информацию о координатах и идентификаторах конечных узлов объектов. (см оператор Type)
ObjectInfo - для определения типа графического объекта, количества частей, количества узлов.
ObjectLen - для определения длины объекта.
ObjectNodeX, ObjectNodeY - для чтения координат узлов объектов.
Select - для осуществления выборок из таблиц, также используется для поиска интересующих объектов по координатам.
Insert - для помещения сегментов линий, составляющих найденный маршрут, в результирующую таблицу
Остальное - математика.

Я, к сожалению, не знаю Ваш опыт в программировании, поэтому не знаю насколько нужно детально погружаться. Начните решать задачу. Общий алгоритм решения я написал. По мере возникновения вопросов спрашивайте. Постараюсь помочь. :)
  • 0

#259
Asphyxis

Asphyxis
  • Гость
  • 6 сообщений
swatch, ещё раз спасибо! потихоньку начну делать, думаю вопросы обязательно появятся))
  • 0

#260
Asphyxis

Asphyxis
  • Гость
  • 6 сообщений
не получается считать координаты узлов в массив...
почему то в массив заносится лишь координаты одной точки для каждой полилинии...

надо как-то все узлы считать для каждой полилинии...

For j1=1 To ObjectInfo(road.obj, OBJ_INFO_NPOLYGONS)
   For i1=1 To ObjectInfo (road.obj, OBJ_INFO_NPOLYGONS+j1)
	node_pol(j1).x1=ObjectNodeX(road.obj, j1, i1)
	node_pol(j1).y1=ObjectNodeY(road.obj, j1, i1)
   Next
Next

Сообщение отредактировал Asphyxis: 28.02.2010, 22:19:58

  • 0


Количество пользователей, читающих эту тему: 4

пользователей: 0, неизвестных прохожих: 4, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.