На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Вылет функции onGetPathEdgeLastPoint()

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
Вылет функции onGetPathEdgeLastPoint(), Вылет функции onGetPathEdgeLastPoint() при кол-ве рёбер, равным 1
 
Здравствуйте!

Построил минимальный путь функцией onCreatePath,
в пути оказалось 2 точки, и, соответственно, 1 ребро.

вызов onGetPathEdgeLastPoint(hPath, 0, &p);
приводит к SIGSEGV

При большем кол-ве рёбер, ошибки не возникает

Заранее спасибо
 
Здравствуйте!

Пришлите, пожалуйста, для воспроизведения проблемы используемый в Вашем приложении граф дорог и тестовый пример, с помощью которого мы сможем повторить последовательность действий, с помощью которых Вы осуществляете построение кратчайшего маршрута и обращение к его элементам.

Спасибо!
 
Добрый день Александр!

Вот граф
https://cloud.mail.ru/public/6vCr/g4ukyTJeL

Пример:

QString map_path = "/home/user/maps/graph/ru/ru-osm_graph.sit";

QPointF start_point_deg = QPointF(59.965001685955386,
                           30.393356395664608);

QPointF finish_point_deg = QPointF(59.965047974976386,
                            30.39340916495224);


 OPENNETPARM open_net_parm;
 memset(&open_net_parm, 0, sizeof(open_net_parm));
 HNET hNet = onOpenNet((WCHAR*)map_path.utf16(),
                                    &open_net_parm);


 PATHPARM path_parm;
 memset(&path_parm, 0, sizeof(path_parm));


 path_parm.IsWgs = 1;
 path_parm.Type = SP_TIME;
 path_parm.IsUturn = 1;
 path_parm.Point1.x = start_point_deg.x()/180*M_PI;
 path_parm.Point1.y = start_point_deg.y()/180*M_PI;
 path_parm.Point2.x = finish_point_deg.x()/180*M_PI;
 path_parm.Point2.y = finish_point_deg.y()/180*M_PI;


 HPATH hPath = onCreatePath(hNet, &path_parm);


 if (!hPath)
 {
   onCloseNet(hNet);
return;
 }


 int edge_count = onGetPathEdgeCount(hPath); // в примере edge_count=2
 for (int i=0; i<edge_count; i++)
 {
   DOUBLEPOINT p;
   onGetPathEdgeLastPoint(hPath, i, &p); // ВЫЛЕТАЕТ!!!
   double angle;
   onGetPathEdgeLastPointAngle(hPath, i, &angle);
 }


 onFreePath(hPath);
 onCloseNet(hNet);
 
Здравствуйте!

Проблему воспроизвели и исправили. В ближайшее время обновим версию ГИС Конструктор.

Спасибо!
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности