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

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

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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 105 След.
Проблема с отображением при обновлении пространственной БД
 
Скорость обработки данных, а также их отображения зависит не столько от количества объектов, сколько от насыщенности их метрики.
На скорость отображения дополнительно влияет сложность выбранного условного знака.
При работе с данными по сети дополнительно сказывается ее пропускная способность (но это только при первом обращении, далее они кэшируются на клиенте).

Настольная ГИС Панорама Мини при подключении к ГИС Серверу, на котором настроен dbm, получает уже карту в формате Панорама, подготовленную ГИС Сервером, и самостоятельно к БД не обращается.
Поэтому тут разницы в скорости по сравнению с обычными картами, опубликованными там же, быть не должно. Зависит только от загруженности карты, как я говорил выше.
Если торможение присутствует, пришлите по возможности карту на e-mail техподдержки (panorama@gisinfo.ru), - мы посмотрим в чем может быть причина.

При этом настольная ГИС Панорама Мини (если она у вас 13.6 версии и выше) умеет еще и самостоятельно открывать dbm - локально, не с ГИС Сервера. Попробуйте для сравнения скопировать dbm с ГИС Сервера и открыть его локально.

В настольной версии поиск по номерам объектов: гл.меню - поиск - поиск по форме. В диалоге поиска можно задать отдельный номер, диапазон номеров, либо набрать список номеров.

Не смотря на отсутствие технической поддержки мы Вам предоставим крайние версии GIS WebService и ГИС Серевер в рамках Вашей лицензии - это 13 и 9 версии соответственно.
Если это не решит наблюдаемую у Вас проблему, можно будет попробовать открывать dbm без ГИС Сервера - напрямую самим GIS WebService (последние релизы 13 версии это умеют делать).
Пришлите номера лицензионных ключей на e-mail техподдержки panorama@gisinfo.ru - Вам в ответном письме предоставят ссылки на скачивание.
Проблема с отображением при обновлении пространственной БД
 
Необходимо определить, на каком уровне проблема:
- при формировании картографического представления по данным из БД на ГИС Сервере;
- при получении GIS WebService-ом этой карты с ГИС Сервера;
- при передаче данных клиенту по запросу.

У Вас есть какое либо наше настольное приложение, чтобы Вы могли в нем подключиться к ГИС Серверу и посмотреть карту? Надо выяснить, будут ли при этом наблюдаться указанные проблемы или нет.

Какой объем данных у Вас в исходной таблице?
При небольших объемах и при изменениях, затрагивающих значительную часть записей, журнал лучше не использовать, а с некоторой периодичностью переформировывать карту из БД заново. За это отвечает параметр "Время актуальности карты". Этот параметр никак не влияет на работу при включенном журнале изменений.
Журнал нужен для инкрементной обработки изменений - когда изменения затрагивают относительно небольшое количество записей, ради обработки которых заново выкачивать на карту все объекты из таблицы будет накладно.
При этом использование журнала наоборот должно разгружать ГИС Сервер, а не тормозить его. Причем, чем чаще его проверка (параметр "Период опроса журнала изменений"), тем должно накопиться меньше изменений (теоретически), а значит - они проще и быстрее будут обработаны.

В IDLIST передаются идентификаторы объектов карты. При работе с БД они будут совпадать со значением первичного ключа в исходной таблице (того поля, которое задано как "Поле уникального идентификатора"). Но для этого должно быть выполнено следующее условие: это поле должно быть целочисленным, а значения в этом поле должны быть уникальными и находится в диапазоне от единицы до 2 миллиардов.
Это же значение триггер, отслеживающий изменения, должен записывать в журнал (если таковой используется).
Проверьте, так ли это.


GIS WebService установлен на том же компьютере, что и ГИС Сервер?
Если да, то как GIS WebService обращается к ГИС Серверу - по реальному IP или через localhost?

Когда карта на ГИС Сервере находится в состоянии загрузки данных из БД, ответ на запрос WMS может вернуть картинку, содержащую не все добавленные объекты, либо, если идет обновление существующих объектов, то часть объектов в WMS может попасть уже обновленными, а часть в своем старом состоянии.
Если на уровне БД какие-то объекты удаляются, а затем этот же ID назначается новому объекту, то запрос WMS по IDLIST, попадающий в период обработки ГИС Сервером этих изменений, может вернуть очень неожиданную совокупность объектов.


И самое главное.
В последних версиях мы устранили ряд существенных проблем, выявленных при взаимодействии GIS WebService с ГИС Сервером.
Соответственно, настоятельно рекомендуется обновить продукты до их актуальных версий.
Для оценки стоимости обновления просьба прислать номера лицензионных ключей на e-mail техподдержки panorama@gisinfo.ru. При наличии у Вас действующей технической поддержки обновление производится бесплатно.
Уроки по GIS ToolKit Active для начинающих программистов
 
[QUOTE]Федор Соловьев написал:
я не понял, что я должен назвать ViewSelect. Получается, новая форма должна называться ViewSelect в рамках кода? Но тогда что должно быть названо FromViewSel?[/QUOTE]

Исходя из определения в коде
[CODE]
public ViewSelect FormViewSel;
...
FormViewSel = new ViewSelect();
...
FormViewSel.Show();
[/CODE]
ViewSelect - класс формы (то как Вы должны его назвать в проекте), FormViewSel - экземпляр класса ViewSelect (он создается и вызывается в тексте примера)
Уроки по GIS ToolKit Active для начинающих программистов
 
[QUOTE]Федор Соловьев написал:
При просмотре урока 3 по GIS ToolKit Active ( https://gisinfo.ru/edu/edu_gistoolkit/lesson3.htm ) пытался повторить пункт с выводом списка выделенных объектов в таблице на новой форме (5). В программе-примере форма с таблицей обозначена через ViewSelect, но Visual Studio 2019 пишет, что "Не удалось найти тип или пространство имен ViewSelect[/QUOTE]

ViewSelect - это и есть та самая новая форма, создаваемая в разделе 5 "Список выделенных объектов" [URL=https://gisinfo.ru/edu/edu_gistoolkit/lesson3.htm]указанного урока[/URL].
ViewSelect - имя класса, FormViewSel - экземпляр класса.
Действительно, в исходных кодах к уроку эта форма отсутствует. Предполагается, что Вы проходите урок по шагам и данная форма у Вас будет.
Логика работы с ней вся есть в тексте Lesson3.cs, Ваша задача - только создать форму и разметить на ней необходимые элементы управления, как указано в п.5 урока.

Недостающие указания по именованию создаваемых формы и ее элементов управления мы добавим в описание урока.
Спасибо за замечание!


PS
Обращаю Ваше внимание, что [URL=https://gisinfo.ru/edu/edu_gistoolkit/annotation.htm]рассматриваемые уроки[/URL] были разработаны на GIS ToolKit Active версии 11.
В следствие чего некоторые тексты примеров программ могут содержать прямые вызовы MAPAPI из библиотек 11-ой версии.
В настоящее время актуальной является [URL=https://gisinfo.ru/download/?id=299]GIS ToolKit Active версии 14[/URL].
При использовании при рассмотрении примеров любой версии GIS ToolKit Active, отличной от версии 11, необходимо заменить обращения к библиотекам на соответствующие.
Применение в приложении библиотек разных версий в одном приложении недопустимо!
подключение ActiveX библиотеки на Qt через dumpcpp
 
Давайте по порядку.
Во-первых, в какой среде разработки Вы разрабатываете приложение?
Во-вторых, что из состава GIS ToolKit Active Вы собираетесь использовать?
Можно выполнять разработку на основе компонентов, можно без них - на основе MAPAPI-функций ГИС-ядра, можно и то, и другое.

Для того, чтобы применять компоненты, библиотека axGisToolKit.ocx (оба варианта - x32 и x64) должна быть штатным образом зарегистрирована в системе.
Если разрабатывать без них, на чистом MAPAPI-интерфейсе, это не обязательно.

Для использования структур и прочих типов данных для MAPAPI надо подключать библиотеки ГИС-ядра (статически или динамически) и использовать заголовочные файлы с объявлением прототипов функций.

Для использования типов данных GIS ToolKit компоненты регистрируются в среде разработки (в разных средах по-разному). Например, в MSVS при регистрации компонентов GIS ToolKit Active пространство имен создается автоматически и содержит описание всех необходимых типов.
Возможно, есть какие-то нюансы использования dumpcpp.
Лично я не пользовался, не подскажу.

Посмотрите на всякий случай [URL=https://www.gisweb.ru/forum/search/index.php?PAGE_NAME=search&tags=&q=Qt%2BActive&FORUM_ID%5B%5D=2&DATE_CHANGE=0&order=date&s=%CD%E0%E9%F2%E8]темы на форуме[/URL] по применению GIS ToolKit Active совместно с Qt. Там есть примеры кода, как пользователи обращаются к компонентам и используют типы данных.
API и обработка семантик типа "Имя файла зарегистрированного типа"
 
Описанное выше справедливо для всех файлов, размещаемых в виртуальных каталогах ГИС Сервера.

Для документов, на которые объекты могут ссылаться по алиасам формата HOST#СЕРВЕР#ALIAS#Карта#[B]DOC#[/B]Папка#документ.расширение
следует использовать функцию mapReadSiteDocumentUn.
Строку с алиасом она разберет сама и отправит необходимый запрос на сервер.

[QUOTE]
 // Считать документ на сервере
 // hMap   - идентификатор открытой основной карты
 // hSite  - идентификатор открытой пользовательской карты
 // alias  - алиас документа на сервере (может храниться в семантике
 //          объекта карты, начинается со строки "HOST#")
 // name   - полный путь к считанному документу, строка заполняется
 //          автоматически при считывании документа, имя документа и
 //          дата редактирования устанавливаются такими, какими они были
 //          при записи в mapSaveSiteDocument.
 // Например: HOST#WorkServer#ALIAS#Моя_Карта#DOC#MyFolder#schema.png
 // size   - размер буфера в байтах для записи пути (не менее 520 байт)
 // При успешном выполнении возвращает имя считанного файла документа в поле name
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapReadSiteDocumentUn(HMAP hMap, HSITE hSite,
                                              const WCHAR *alias,
                                              WCHAR *name, long int size);
[/QUOTE]
Хранение выносок на карте
 
Кому-то надо чтобы ссылки были всегда относительные, кому-то нет.
В большинстве случаев данные размещаются на ГИС Сервере с целью предоставить к ним многопользовательский авторизованный доступ и проверка доступа должна осуществляться в том числе и для "привязанных" к карте документов.
Использование папок на ГИС Сервере с раздачей всем пользователям прав скачивать оттуда карты и документы - не самая хорошая реализация. В этом случае использование ГИС Сервера теряет свой смысл, можно с тем же успехом использовать расшаренную папку в сети.
Но Вашу систему проектируете Вы, Вам виднее.
По той же причине Вам виднее, где подменять пути, а где нет, - инструменты у Вас для этого есть.
API и обработка семантик типа "Имя файла зарегистрированного типа"
 
[QUOTE]
 // Прочитать файл на сервере ([B]если есть доступ к виртуальной папке[/B])
 // alias   - алиас файла на сервере, [B]начиная с имени виртуальной папки[/B] (кроме выполняемых файлов,
 //           файлов карт, матриц и растров)
 // path    - путь, по которому будет сохранен файл ([B]после записи путь дополняется именем файла[/B])
 // size    - размер поля, содержащего путь
 // error   - поле для записи кода ошибки, если функция вернет ноль
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapReadFileOnServer(long int number, const WCHAR * alias, WCHAR * path, long int size, long int * error);
[/QUOTE]

Обратите внимание на входные параметры.
В alias указывается все, что после "ALIAS#".
В path указывается директория, а не конечный файл (имя файла будет извлечено из алиаса).

При ошибке в переменной error должен быть код, по которому можно разобраться, что за ошибка произошла.
Перечень кодов ошибок есть в \include\maperr.rh

Пример вызова mapReadFileOnServer есть в [URL=https://gisinfo.ru/download/?id=279]SDK для ГИС Панорама[/URL] (см. \mapexam\mapexam82.cpp),
а также в [URL=https://gisinfo.ru/download/?id=202]SDK для GIS WebService[/URL] (см. метод TRestMethod::GetFileFromGisServerFolder в \SDK\restmethod\mapinfo.cpp).



[QUOTE]Илья Рыбалко написал:
И еще касательно хранилищ, пока не понимаю, каким образом, например, получить их список через API.[/QUOTE]

[QUOTE]
 // Запросить список папок на сервере, доступных для записи файлов
 // number - номер активного подключения к ГИС Серверу от 1 до mapActiveServerCount()
 // folder - путь к виртуальной папке, в которой запрашивается список файлов и папок или 0
 // Например, "Data\\Maps"
 // Если folder равно 0, то запрашивается список алиасов всех доступных папок
 // allfiles - признак запроса всех файлов в папке folder, если не установлен,
 // то буден выдан список внутренних папок и файлов MAP,SIT,SITX,RSC,MTW,MTQ,RSW
 // parm   - адрес буфера для размещения списка запрошенных данных или 0
 // Если parm равно 0, то запрашивается размер буфера, требуемый для размещения списка
 // length - размер буфера для размещения списка
 // Список данных заполняется только для файлов и папок, непосредственно расположенных
 // в заданной папке без вложений
 // При успешном выполнении возвращает размер сформированного списка
 // Если размер списка превышает размер буфера, то данные считаны не полностью.
 // Тогда нужно выделить больший буфер и запросить данные повторно
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapGetFolderList(long int number, const WCHAR * folder, long int allfiles,
                                         TMCDATALIST * parm, long int size);
[/QUOTE]

Код, как это вызывается непосредственно из ГИС Панорама приведен также в [URL=https://gisinfo.ru/download/?id=279]SDK[/URL](см. \ready\mapscena\folders.cpp, а также в примерах 55 и 56 - в \mapexam).
API и обработка семантик типа "Имя файла зарегистрированного типа"
 
Значения семантик типа TANYFILE и т.п. - это не сам файл, а ссылка на него: абсолютный или относительный путь, либо алиас этого файла на ГИС Сервере.

Функции mapReadFileOnServer и mapSaveFileOnServer предназначены для скачивания файла с ГИС Сервера и загрузки его на сервер соответственно.

То есть, если карта у Вас на ГИС Сервере, Вы хотите добавить ссылку на файл в некий объект, так, чтобы это было видно всем пользователям этой карты, следует сначала загрузить файл на ГИС Сервер в виртуальную папку, затем, сформировав путь (алиас виртуальной папки на ГИС Сервер / имя файла), записать его в соответствующую семантику.
Хранение выносок на карте
 
Ссылки вида HOST#IP#ALIAS# - это ссылки, работающие отовсюду, где доступен ГИС Сервер.
Данные по ним открываются непосредственно с ГИС Сервера с учетом полномочий пользователей по доступу к этим данным.

Относительные ссылки в объектах карты, размещенной на ГИС Сервере, будут работать только в одном случае - когда карта размещается в виртуальной папке ГИС Сервера вместе со всеми данными, на которые есть ссылки.
При этом должно выполнятся правило, о котором я говорил выше - все ссылки должны быть либо в тот же каталог, где карта, либо в поддиректории этого каталога.
Тогда, скачивая карту на другой ПК вместе со всеми данными, на которые она ссылается, на этом ПК карта локально будет открываться вместе с данными по ссылкам (само собой при условии сохранения иерархии каталогов относительно карты и ниже, вверх относительные ссылки не поддерживаются).

Еще вариант - готовить карту на локальном ПК с относительными ссылками, затем формировать из нее упакованный проект MPTZ и уже его размещать на ГИС Сервере.

[QUOTE]Александр Махин написал:
Есть ли возможность изменить ссылки программно при открытии карты?  [/QUOTE]

Всё в Ваших руках.
Ссылки - это всего лишь значения семантик. Их можно редактировать программно.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 105 След.



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

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