Появляется диалог. Нажимаю кнопку "Построить" - программа вылетает, лог перед onCreateNetDlgEx выводится, второй нет. Сам граф строится, на жестком диске появляется требуемый файл с графом, его можно открыть и посмотреть.
вывод gdb
Код
#0 0x00007f6318e58692 in MapSortProcessEx () from /usr/local/gis/lib/libqdmapvecex.so
(gdb) bt
#0 0x00007f6318e58692 in MapSortProcessEx () from /usr/local/gis/lib/libqdmapvecex.so
#1 0x00007f6318e58977 in MapSortProcess () from /usr/local/gis/lib/libqdmapvecex.so
#2 0x00007f631c118ba7 in TCreateNetDlg::BuildPathNet() () from /usr/local/gis/lib/libqdobjnet.so
#3 0x00007f631c11610c in TCreateNetDlg::BuildNet() () from /usr/local/gis/lib/libqdobjnet.so
#4 0x00007f631c115c03 in TCreateNetDlg::OkButtonClick() () from /usr/local/gis/lib/libqdobjnet.so
#5 0x00007f631c121809 in ?? () from /usr/local/gis/lib/libqdobjnet.so
#6 0x00007f631d21832f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7 0x00007f631dda6012 in QAbstractButton::clicked(bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#8 0x00007f631daf932e in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#9 0x00007f631daf9b60 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#10 0x00007f631daf9dcc in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#11 0x00007f631d789bd0 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#12 0x00007f631d73a1dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#13 0x00007f631d73eebb in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#14 0x00007f631d2026de in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#15 0x00007f631d73b01b in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#16 0x00007f631d7b9424 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#17 0x00007f631d7b831f in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#18 0x00007f631d7e0552 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#19 0x00007f631a64b205 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007f631a64b538 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007f631a64b5f4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007f631d230fa6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#23 0x00007f631d7e01ce in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#24 0x00007f631d20142f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#25 0x00007f631d2016b8 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#26 0x00007f631dbf3b78 in QDialog::exec() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#27 0x00007f631c0e27ea in onCreateNetDlgEx () from /usr/local/gis/lib/libqdobjnet.so
Рекомендации: 1.Обновить до последней версии ГИС Конструктор по ссылке - http://gisinfo.ru/download_linux?id=56 2.В начале программы обязательно должен присутствовать код:
программа зависает, при этом загрузка ЦП под 100% для 1070 найденых объектов это нормально?
если уменьшить число условий, то при запуске одного того же exe-шника может зависнуть может отработать пробовал менять "Допуск согласования" на 1м - один раз привело к падению, повторить не удалось
Код
#0 0x00007faa9bacb2fe in deXDouble(TDataEdit*) () from /usr/local/gis/lib/libqdmapacces.so
(gdb) bt
#0 0x00007faa9bacb2fe in deXDouble(TDataEdit*) () from /usr/local/gis/lib/libqdmapacces.so
#1 0x00007faa9bace506 in TDataEdit::XDouble() () from /usr/local/gis/lib/libqdmapacces.so
#2 0x00007faa9bad455d in TDataEdit::ObjectFrame(DFRAME&) () from /usr/local/gis/lib/libqdmapacces.so
#3 0x00007faa9bb571b8 in TObjectInfo::ObjectFramePlane(DFRAME*) () from /usr/local/gis/lib/libqdmapacces.so
#4 0x00007faa9bb5dac9 in TObjectInfo::IsCrossObjectFrame(TObjectInfo*, double) () from /usr/local/gis/lib/libqdmapacces.so
#5 0x00007faa9bca0c8c in mapCreateObjectCrossPointsEx () from /usr/local/gis/lib/libqdmapacces.so
#6 0x00007faa9b7990dc in TCreateNetDlg::BuildCut() () from /usr/local/gis/lib/libqdobjnet.so
#7 0x00007faa9b798053 in TCreateNetDlg::BuildNet() () from /usr/local/gis/lib/libqdobjnet.so
#8 0x00007faa9b797c03 in TCreateNetDlg::OkButtonClick() () from /usr/local/gis/lib/libqdobjnet.so
Любое всплывающее окно ("Файл уже существует..", "Сформированно более 3 сетей...") при нажатие на крестик в правом верхнем углу (закрытие), приводит к принудительному завершению программы Fatal IO error: client killed если исправть пример на
//АВТОМАГИСТРАЛИ (АВТОСТРАДЫ)
long code = mapGetRscObjectKeyIncode(hRsc, "L0061210000");
mapSelectObject(hSelect, code, 1);
//УСОВЕРШЕНСТВОВАННЫЕ ШОССЕ
code = mapGetRscObjectKeyIncode(hRsc, "L0061220000");
mapSelectObject(hSelect, code, 1);
чаще всего отрабатывает, иногда пишет "Сеть не построена", один раз упал
Код
Program terminated with signal 11, Segmentation fault.
#0 0x00007f665261941b in deYDouble(TDataEdit*) () from /usr/local/gis/lib/libqdmapacces.so
(gdb) bt
#0 0x00007f665261941b in deYDouble(TDataEdit*) () from /usr/local/gis/lib/libqdmapacces.so
#1 0x00007f665261c532 in TDataEdit::YDouble() () from /usr/local/gis/lib/libqdmapacces.so
#2 0x00007f66526225a0 in TDataEdit::ObjectFrame(DFRAME&) () from /usr/local/gis/lib/libqdmapacces.so
#3 0x00007f66526a51b8 in TObjectInfo::ObjectFramePlane(DFRAME*) () from /usr/local/gis/lib/libqdmapacces.so
#4 0x00007f66526abac9 in TObjectInfo::IsCrossObjectFrame(TObjectInfo*, double) () from /usr/local/gis/lib/libqdmapacces.so
#5 0x00007f66527eec8c in mapCreateObjectCrossPointsEx () from /usr/local/gis/lib/libqdmapacces.so
#6 0x00007f66522e70dc in TCreateNetDlg::BuildCut() () from /usr/local/gis/lib/libqdobjnet.so
#7 0x00007f66522e6053 in TCreateNetDlg::BuildNet() () from /usr/local/gis/lib/libqdobjnet.so
//АВТОМАГИСТРАЛИ (АВТОСТРАДЫ) long code = mapGetRscObjectKeyIncode(hRsc, "L0061210000"); mapSelectObject(hSelect, code, 1); //УСОВЕРШЕНСТВОВАННЫЕ ШОССЕ code = mapGetRscObjectKeyIncode(hRsc, "L0061220000"); mapSelectObject(hSelect, code, 1);
Выдается каждый раз сообщение: "Сформировано более 3 сетей! Откорректируйте исходные данные!" В данном сообщении достаточно нажать кнопку "Да" или клавишу "Enter". Карта Подольск подходит для построения графа дорог по коду L0061210000. Что и следует ожидать. Для построения графа дорог исходную карту надо подготовить, а это нетривиальная задача. Советую внимательно ознакомиться с документом " Граф дорог. Руководство пользователя", которое можно скачать по ссылке - http://gistoolkit.ru/download/doc/graphofroad.pdf
ГИС Оператор замечательно строит граф для всего слоя "Дорожная сеть" onCreateNetDlgEx умирает на 4-5 типах объектов для одной и той же карты, можно ли как нибудь вызывать диалог используемый Оператором?
Для ГИС Оператор используется новый, эксперементальный алгоритм построения графа дорог. Позднее он будет внесен в ГИС Конструктор. Тем не менее базовая карта должна соответствовать рекомендациям и требованиям, которые изложены в документе "Граф дорог. Руководство пользователя" (ссылка для скачивания - http://gistoolkit.ru/download/doc/graphofroad.pdf).
Данный код был проверен с версиями ядра 11.06.1 и 11.10.3
Смысл был проверить работу onCreateNetDlgEx в режиме без диалога, т.е : onCreateNetDlgEx(hMap, &parm, graphSitePath, rscPath, 0); При использовании версии 11.06.1 - работает.. При использовании версии 11.10.3 программа вылетает на onCreateNetDlgEx. Если вызвать диалог, то видим, что имена файлов graphSitePath, rscPath никак не используются (в отличии от 11.06.1). Функция сама создаёт Graph/grap_podolsk.sit. Как правильно работать с функцией onCreateNetDlgEx без диалогов в версии 11.10.3?
Устранили ошибку при использовании функции без вызова диалога. Пожалуйста, скачайте и проверьте на новой версии. Ссылка для скачивания - http://gisinfo.ru/download_linux?id=56