В параметрах функций указано, что учитывается.
Расчет выполняется по весам ребер. Если вес составлен только с учетом расстояния, то будет поиск по расстоянию (с учетом запретов поворотов,
одностороннего движения и т.п.). Если нужно учесть скорость, то нужно пересчитать веса с учетом коэффициента скорости и т.п.
Код |
---|
// Определение кратчайшего расстояния между двумя точками с учетом одностороннего
// движения и исключением ребер (аварийных участков)
// hmap - идентификатор открытой векторной карты
// site - пользовательская карта с построенной сетью, т.е. на карте должны быть
// объекты узлы сети с обязательными семантиками: номер сети и ссылка на ребро
// сети, и ребра с семантиками: номер первого и последнего узлов для данного
// ребра, ссылка на объект карты и номер сети
// info - идентификатор объекта в памяти,
// предварительно созданного функцией mapCreateObject()
// или mapCreateSiteObject(),
// в котором будет размещен результат - минимальный путь
// point1 - начальная точка в метрах на местности
// point2 - конечная точка в метрах на местности
// select - контекст условий поиска (должен содержать ребра, которые исключаются из поиска мин. пути)
// foneway - флаг одностороннего движения (0 - не учитывать, 1- учитывать)
// Путь определяется от точки на ближайшем ребре к point1 до точки на ближайшем
// ребре к point2
// Возвращает: -1, если путь найден, 0 - при ошибке
_NETIMP long int WINAPI onSeekPathByPointEx(HMAP hmap, HSITE site, HOBJ info, TASKPARMEX *parm,
DOUBLEPOINT *point1, DOUBLEPOINT *point2, HSELECT select, long int foneway); |