| Цитата |
|---|
Валерий Парусов написал: У меня на одном sit-е располагается граф автомобильных и железнодорожных дорог, соединенные в определденных точках кратчайший путь нахожу функцией onSeekPathCreateObject Можно ли узнать, какие дуги вошли в полученный объект пути ? Мне надо определить где путь переходит от автомобильного в ж/д и обратно, дуги имеют пользовательскую семантику принадлежности к типу дороги (авто, ж/д и т.п.) |
Добрый день!
Можно использовать функцию onSeekPathGraphSelect() из netapi.h.
// Определение кратчайшего расстояния между двумя узлами сети без вызова диалогов
// hmap - идентификатор открытой векторной карты
// hgraph - идентификатор графа сети, предварительно должен быть открыт функцией
// onOpenGraph(...)
// object - идентификатор объекта в памяти,
// предварительно созданного функцией mapCreateObject()
// или mapCreateSiteObject(),
// в котором будет размещен результат - минимальный путь.
// infobegin - начальный узел(идентификатор объекта карты в памяти)
// infoend - конечный узел(идентификатор объекта карты в памяти)
// select - контекст условий поиска, предварительно созданный функцией
// mapCreateSiteSelectContext(...), для размещения результатов (в select записываются
// дуги, которые составляют минимальный путь)
// methodseek - метод построения (0 - длина, 1- время)
// speed - средняя скорость (км/ч)(если methodseek = 1 и значения семантики
// "Скорость" не установлены)
// При ошибке возвращает 0
_NETIMP long int WINAPI onSeekPathGraphSelect(HMAP hmap, HGRAPH hgraph, HOBJ object, HOBJ infobegin, HOBJ infoend, HSELECT select,
long int methodseek, double speed);