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

Денис Вицко (Все сообщения пользователя)

Поиск  Пользователи  Правила  Войти
Форум » Пользователи » Денис Вицко
Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 ... 5 6 7 8 9 10 11 12 13 14 15 ... 142 След.
[ Закрыто] Просмотр данных «1С: Предприятие» и других НТТР-сервисов
 
Вы подключение осущетствляете по имени компьютера srv-panorama-omsk, а данные пытаетесь открыть по алиасу, содержащему в качестве хоста IP-адрес.
С точки зрения ГИС-ядра это разные подключения, поэтому при открытии данных оно Вам выводит диалог для подключения.
При пустом поле хоста в этом диалоге подключение будет выполняться с локальным ПК (то есть с localhost).

Совет по алгоритму подключения и открытия данных с ГИС Сервера:
1. откройте соединение с ГИС Сервером ([URL=https://help.gisserver.ru/_extra/axGisTool/axGisTool/axmapgisserver_openconnect.html]axMapGisServer.OpenConnect[/URL]), указав имя и порт сервера, в ответ Вы получите номер соединения
2. подготовьте хэш пароля ([URL=https://help.gisserver.ru/_extra/axGisTool/axGisTool/axmapgisserver_stringtohash.html]axMapGisServer.StringToHash[/URL]) или, как Вы уже сделали, возьмите готовый из файла настроек ГИС Сервера
3. зарегистрируйте пользователя по логину и хэшу пароля ([URL=https://help.gisserver.ru/_extra/axGisTool/axGisTool/axmapgisserver_registeruser.html]axMapGisServer.RegisterUser[/URL])
4. если используется доменная аутентификация, то вместо пунктов 2 и 3 зарегистрируйте пользователя с помощью [URL=https://help.gisserver.ru/_extra/axGisTool/axGisTool/axmapgisserver_registersystemuser.html]axMapGisServer.RegisterSystemUser[/URL]
5. подготовьте алиас данных для открытия ([URL=https://help.gisserver.ru/_extra/axGisTool/axGisTool/axmapgisserver_buildaliasname.html]axMapGisServer.BuildAliasName[/URL]), передав в него те же имя сервера и порт, что были указаны в п.1, а также имя карты, с которым она опубликована на ГИС Сервере
6. передайте алиас в метод [URL=https://help.gisserver.ru/_extra/axGisTool/axGisTool/axcmapview_mapopen.html]axcMapView.MapOpen[/URL]
7. работайте с открытыми данными также, как с локальной картой
8. по окончании работы закройте карту ([URL=https://help.gisserver.ru/_extra/axGisTool/axGisTool/axcmapview_mapclose.html]axcMapView.MapClose[/URL]) и закройте соединение с ГИС Сервером ([URL=https://help.gisserver.ru/_extra/axGisTool/axGisTool/axmapgisserver_closeconnect.html]axMapGisServer.CloseConnect[/URL]).
[ Закрыто] Просмотр данных «1С: Предприятие» и других НТТР-сервисов
 
Добрый день!

Наиболее вероятная причина - наличие более старого комплекта библиотек, доступных для статической загрузки или динамической по алгоритму поиска библиотек в Windows ([URL=https://learn.microsoft.com/ru-ru/windows/win32/dlls/dynamic-link-library-search-order]см. msdn[/URL]).
Когда Вы пытаетесь открыть карту с ГИС Сервера, не задав перед этим параметры соединения и не зарегистрировав пользователя, у Вас автоматически подгружается библиотека gis32dlgs.dll, чтобы вывести пользователю диалог для подключения и авторизации.
Для загрузки gis32dlgs.dll ей требуются и другие библиотеки (например, gis32sqlmap.dll), Windows пытается их найти, но находит более старую версию, где еще не было каких-то функций, которые ожидает gis32dlgs.dll.
Отсюда - результат на скриншоте о ненайденных точках входа. В итоге и сама gis32dlgs.dll не может быть загружена.

1. Необходимо найти и удалить все библиотеки gis32*.dll и gis64*.dll (кроме тех, что у Вас в c:\Program Files\Panorama\GisToolActive14\GisDll\X32\ и c:\Program Files\Panorama\GisToolActive14\GisDll\X64\). В частности, в папках c:\Windows\, c:\Windows\System32\, c:\Windows\SysWOW64\, а также в директориях, перечисленных в переменной PATH окружения Windows. Но лучше просто воспользоваться поиском файлов на дисках по шаблонам gis32*.dll и gis64*.dll.

2. Отредактируйте переменную PATH окружения Windows, поместив пути c:\Program Files\Panorama\GisToolActive14\GisDll\X32\ и c:\Program Files\Panorama\GisToolActive14\GisDll\X64\ не в конец, а в начало.

3. Для корректной работы динамических вызовов внутри библиотек ГИС-ядра в самом начале работы сделайте вызов [URL=https://help.gisserver.ru/_extra/axGisTool/axGisTool/index.html?axgisproperty_mapsetpathshell.html]AxGisProperty.mapSetPathShell[/URL], указав путь к папке с библиотеками.
Путь лучше не зашивать жестко в код, а определять по местоположению библиотеки gis32acces.dll (gis64acces.dll - для х64).
[ Закрыто] Просмотр данных «1С: Предприятие» и других НТТР-сервисов
 
Чтобы убедиться откуда именно подгружаются библиотеки, рекомендуется включить запись диагностического протокола ГИС-ядра:

[QUOTE][B]axGisProperty.mapOpenDiagnostics [/B]

Открыть запись в диагностический протокол.

function mapOpenDiagnostics(var logname: WideString): Integer;

Описание:
Открыть запись в диагностический протокол.
Входной параметр:
logname - путь к файлу для записи протокола работы, если значение не задано, то запись идет в \ProgramData\mapdiagnostics.log.
При ошибке возвращает ноль.[/QUOTE]

Сделать это надо в самом начале до вызова других ГИС-методов.

По завершению работы программы по указанному пути будет располагаться текстовый файл. Просьба его выслать нам на panorama@gisinfo.ru со ссылкой на эту тему форума.

Дополнительные функции работы с диагностическим протоколом:
[CODE]axGisProperty.mapIsDiagnostics()
axGisProperty.mapCloseDiagnostics()
axGisProperty.mapWriteToDiagnosticsLog(var amessage: WideString; var amessageex: WideString; atype: Integer)
axGisProperty.mapWriteErrorToDiagnosticsLog(code: Integer; var amessage: WideString; atype: Integer)
axGisProperty.mapWriteToLogLastError(var amessage: WideString; var amessageex: WideString; atype: Integer)
axGisProperty.mapWriteToLogInt(var amessage: WideString; avalue: Integer; atype: Integer)[/CODE]
Ошибка при массовом нанесении объекта типа Подпись на карту, mapCreateSiteObject
 
Доброго времени суток!

Присутствует ошибка в библиотеках версии 14.6.0 от 26.07.2023 г.

Обновленную версию GIS ToolKit выложим на сайте в ближайшее время.
Для получения новой сборки GIS ToolKit Free обратитесь в техподдержку на почту.
Ошибка при массовом нанесении объекта типа Подпись на карту, mapCreateSiteObject
 
[QUOTE]Сергей Викторович написал:
Пропущен параметр, который в явном виде должен указать что объект типа "подпись".
Вопросы:
1. Как указать параметр, что наноситься объект типа "подпись"
[/QUOTE]

По-хорошему, если заранее известно, что создается объект-подпись, то в параметр text следует передать ненулевое значение.
[QUOTE] // Cоздать пустой объект пользовательской карты
 // hMap  - идентификатор открытой основной карты
 // hSite - идентификатор открытой пользовательской карты, в которой будет расположен
 //         создаваемый объект (для первой карты равен hMap)
 // kind  - формат метрики
 //[B] text - признак метрики с текстом (для объектов типа "подпись")[/B]
 // pointcount - зарезервировать память под число точек (ускоряет первичное заполнение метрики из массива)
 // После вызова функций типа What...() и Seek...() все параметры
 // полученного объекта могут измениться (text,kind и т.п.)
 // Для каждого полученного и больше не используемого
 // идентификатора HOBJ необходим вызов функции mapFreeObject()
 // При ошибке возвращает ноль

function mapCreateSiteObjectEx(Map:HMap; Site:HSite; kind:integer = KM_IDDOUBLE2;
                            text : integer= 0; pointcount : integer= 0):HObj;[/QUOTE]

Но и с text=0 ошибки не будет, так как вызов функции mapPutTextUn всё равно установит нужные признаки в объекте.

[QUOTE]Сергей Викторович написал:
2. Можно ли вторым параметром, если у нас нет второй пользовательской карты, указать orm_main.mvMap.MapHandle?
[/QUOTE]

Можно, но только в одном случае - у Вас одна карта SIT и именно ее Вы открыли первой. Если, например, Вы открыли растр, а затем к нему добавили SIT, фокус не пройдет.
Для получения HSITE можно воспользоваться функцией:
[QUOTE] // Определить идентификатор открытой пользовательской карты
 // по ее номеру в цепочке
 // hMap   - идентификатор открытой карты
 // number - номер пользовательской карты в цепочке
 // Если number == 0; возвращается идентификатор фоновой
 // (базовой) карты; равный hMap (он может применяться вместо HSITE)!
 // При ошибке возвращает ноль

function mapGetSiteIdent(Map : HMap;number : integer) :HSite ;[/QUOTE]


[QUOTE]Сергей Викторович написал:
3. Это нормально, что все наши карты проектов с расширением *sit? Карты с расширением *.map мы не используем совсем.
[/QUOTE]

И *sit, и *.map - это карты формата "Панорама". Вы можете использовать как один или другой, так и их совместно.
*.map более строгий и сложный формат для топографических многолистовых карт. Вам он, скорее всего, не нужен.

[QUOTE]Сергей Викторович написал:
3. Нужно ли для объекта типа подпись обязательно добавлять метрики двух точек или достаточно одной?  [/QUOTE]

Зависит от того, как настроен условный знак подписи. Есть подписи, текст которых растягивается по заданной метрике объекта, либо вторая точка может определять направление текста (если подпись в RSC не горизонтальная), поэтому вторую точку для подписи лучше указывать.
Но и подпись с одной точкой ошибкой не будет.
Ошибка при массовом нанесении объекта типа Подпись на карту, mapCreateSiteObject
 
[QUOTE]Сергей Викторович написал:
Ошибка вновь проявилась.[/QUOTE]

Возвращаемся к первоначальному плану:

[QUOTE]Денис Вицко написал:
Просьба выполнить следующее:
1. провести проверку нанесения подписей без задействования БД (исключить переходы по записям набора данных, их чтение и передачу в MAPAPI)
2. если ошибка повторяется, просьба подготовить и выслать нам на почту техподдержки:
  а) карту с исходными полигонами (с классификатором)
  б) карту, на которой выполняется создание подписей (с классификатором)
  в) протокол запуска клиентского приложения и синхронный с этим запуском протокол работы ГИС Сервера
3. если без задействования БД нанесение подписей проходит без ошибок, причину сбоя надо искать в коде программы.
[/QUOTE]
Как привязать объект типа Подпись к точке площадного объекта, Как привязать объект типа Подпись к точке площадного объекта
 
Если я правильно понял, требуется отображать подпись как выноску - с визуальной привязкой ее к точке объекта.
Вариантов два.
1. Рисовать линию самостоятельно при попытке редактирования положения подписи. Линия из двух точек: первая - это соответствующая точка объекта (номер точки, номер подобъекта и сам объект сохранены в объекте подписи), вторая точка - это точка подписи.
2. Использовать не объект-подпись, а линейный объект с видом "векторные по линии", в котором для окончания линии задать подпись по семантике. Тогда сразу будет и линия, и подпись.

[IMG]https://i.postimg.cc/XvM9RXmV/2023-09-11-16-50-22.png[/IMG]
Изменено: Денис Вицко - 11.09.2023 16:53:47 (добавил картинку)
Ошибка при массовом нанесении объекта типа Подпись на карту, mapCreateSiteObject
 
[QUOTE]Сергей Викторович написал:
Проверялся методом нанесения всех подписей по площадному объекту, включая подобъекты,
результат: ОК[/QUOTE]
а по всем площадным объектам?
Ошибка при массовом нанесении объекта типа Подпись на карту, mapCreateSiteObject
 
[QUOTE]Сергей Викторович написал:
Результат на скриншоте. Что-то можно по нему сказать?[/QUOTE]
Только то, что крайняя команда, выполненная в Вашем коде перед тем как управление перешло в библиотеку, была mapCommit.
Это означает, что сбой происходит при обработке этой команды внутри библиотеки.
Но причиной сбоя может являться всё, что угодно. Если память была испорчена до вызова mapCommit, то это вполне закономерное падение и mapCommit не при чем.
Кстати, в Вашем коде я не увидел вызова mapCommit...
Ошибка при массовом нанесении объекта типа Подпись на карту, mapCreateSiteObject
 
Добрый день!

Выпуск Panorama GIS Server версии 8 прекращен еще в 2019 году. Техподдержка этой версии прекратилась в 2020 году.
Если даже выяснится что в версии 8 ГИС Сервера присутствует ошибка, исправлений в ней уже не будет.
Рекомендую использовать актуальные версии программных продуктов.

[QUOTE]Сергей Викторович написал:
Наш тестировщик провёл точно такой же тест, но уже на другом проекте[/QUOTE]

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

На этот пункт от Вас также нет информации:
[QUOTE]Денис Вицко написал:
Также память может портиться где-то в другом месте программы, а падать уже в ГИС-ядре.
К примеру, на смену записи в DataSet добавлен обработчик. Когда Вы в цикле проходите по записям, выполняется код обработчика. Надо смотреть, что внутри.[/QUOTE]

[QUOTE]Сергей Викторович написал:
Просьба, посмотреть лог файл ГИС Сервера, мы его прислали на вашу почту Елене Кузнецовой, с просьбой передать это сообщение вам.[/QUOTE]

Вы прислали протокол работы ГИС-ядра на клиенте. Протокола с ГИС Сервера нет.
О том, что программа работает с ГИС Сервером я узнал из присланного протокола, Вы об этом изначально умолчали.

Для выявления ошибок при работе "клиентское приложение - ГИС Сервер" требуются протоколы и клиентского приложения, и ГИС Сервера! Причем синхронные (от одного запуска).

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

[U]Просьба выполнить следующее:[/U]
1. провести проверку нанесения подписей без задействования БД (исключить переходы по записям набора данных, их чтение и передачу в MAPAPI)
2. если ошибка повторяется, просьба подготовить и выслать нам на почту техподдержки:
  а) карту с исходными полигонами (с классификатором)
  б) карту, на которой выполняется создание подписей (с классификатором)
  в) протокол запуска клиентского приложения и синхронный с этим запуском протокол работы ГИС Сервера
3. если без задействования БД нанесение подписей проходит без ошибок, причину сбоя надо искать в коде программы.


hSiteRaschet - это отдельная карта или та же, где исходные площадные объекты?
Страницы: Пред. 1 ... 5 6 7 8 9 10 11 12 13 14 15 ... 142 След.



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

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