Добрый. При попытке открыть карту *.sit которая включена в штатную поставку moskow.sit получаю внутреннюю ошибку - 60009 (Ошибка открытия файла). Примечатльно, что при открытии других форматов карт, например sitx никаких проблем.
Так же, если в каталог , скинуть все остальные файлы (что идут в поставке API), то библиотека сообщает о внутренней ошибке 60050. Но, все права на месте.
Подскажите пожалуйста. В чем может быть причина такой избирательности при открытии карты?
Alexander Volovikov написал: Я скопировал все файлы. Из SDK ./data/moskow. Давайте проверим состав? Возможно, в состав поставки ToolKit не все файлы включены?
Состав правильный, проверьте расширение - не SS, а SSE
Спасибо. С расширением SSE все корректно. Состав библиотек - последний (14.1.05). Без ключа. Free версию. Есть ли другие карты, формата SIT, которые бы без ключа открывались?
Например, карта reg_russia.sitx открывается замечательно.
Также посмотрите часто задаваемые вопросы - раздел "Лицензирование" и тему "Кросс-платформенная разработка".
Free-версия - это отнюдь не бесплатная версия, напротив - стоит она в разы дороже обычной. Чтобы Ваше приложение не требовало ключ его необходимо скомпилировать определенным образом, используя лицензионный ключ Free-версии.
Карта Example\data\Graph\Noginsk_G1.sit - это карта графа дорог, она подходит под ограничения демо-режима, поэтому может быть открыта без ключа.
Однако, никто не обещал, что примеры из GIS ToolKit 12 (Windows) будут корректно открываться в Astra Linux с библиотеками от ГИС Конструктор 14. Во-первых, значительно изменились правила возможного открытия карт без ключа (демо-режима). Во-вторых, примеры GIS ToolKit 12 могут быть не адаптированы для Линукс (как минимум в них может оказаться измененный регистр символов в именах файлов, что для Windows безразлично, а в Линуксе файл найден не будет).
Поэтому рекомендуется использовать примеры, идущие в составе ГИС Конструктор - usr\share\gisdesigner\examples\
1 Спасибо. Я использую - "Версии с приставкой Free стоят дороже, но позволяют выпустить исполняемый модуль, который не будет требовать ключа." 2 Скачал архив. Там 2 файла (Noginsk.sxf, 200t05g.rsc) 3 При попытке открыть карту выходит следующая ошибка ОШИБКА ВХОДНЫХ ПАРАМЕТРОВ (60040)
Формат SXF - это формат хранения и обмена, для работы с картой ее нужно загрузить в формат SIT, SITX, SITZ, MAP, MAPZ
Либо штатными средствами ГИС Панорама, ГИС Оператор. Либо:
Цитата
//======================================================================== // Функции импорта, экспорта и обновления карты для форматов SXF, TXF и DIR //======================================================================== // Окну диалога посылаются следующие сообщения : // WM_OBJECT = 0x585 WParam - процент обработанных объектов // WM_INFOLIST = 0x584 LParam - адрес структуры INFOLIST // ----------------------------------------------------------------
// Загрузить (импортировать) карту из файла SXF, TXF или DIR с // использованием Select с преобразованием топокарты к зоне документа // Файлы SXF и TXF могут хранить координаты в метрах, радианах или градусах // hmap - идентификатор открытой карты (рекомендуется указывать // для определения текущей зоны топокарты) или 0; // sxfname - имя загружаемого файла типа SXF, TXF или DIR; // rscname - имя файла классификатора, с которым загружается карта, // имя классификатора можно запросить из SXF (TXF) функцией GetRscNameFromSxf // или из карты; для файла DIR может быть 0; // mapname - имя создаваемой карты (обычно совпадает с именем SXF (TXF)) // или ноль или указатель на пустую строку (буфер размером MAX_PATH // c нулевым байтом равным нулю) или указатель на папку для размещения // карты. Если имя карты не задано или задана только папка, то карта // создается с именем SXF (TXF) и расширением ".sit". Если namemap // указывает на буфер достаточной длины (size), то в буфер записывается // имя созданной карты; // Для файла DIR тип общей карты - MPT (проект данных, включающий все // открытые карты из DIR) или MAP (многолистовая карта); // size - длина буфера, на который указывает переменная namemap, или 0. Обычно длина // равна MAX_PATH_LONG (1024); // handle - идентификатор окна диалога, которому посылаются уведомительные // сообщения (HWND для Windows, CALLBACK-Функция для Linux); // select - фильтр загружаемых объектов и слоев, если необходима выборочная // обработка данных; // frscfromsxf - значение флажка "разрешить использование // имени классификатора, указанного в файле sxf" // typesit - тип создаваемых карт в проекте MPT при импорте DIR (1- SIT; -1- SITX) // password - пароль для создания защищенного хранилища карты (SITX) // psize - длина пароля в байтах // transform - признак необходимости трансформировать загружаемую карту в систему координат hmap // (если hmap и transform не равно 0) // hevent - адрес функции обратного вызова для записи в протокол ошибок выполнении программы // eventparam - первый параметр функции обратного вызова // Для добавления открытой карты в документ необходимо вызвать функцию // mapAppendData(hmap, namemap). Если mapname содержит имя карты типа MAP и // она содержит хотя бы один лист, то при импорте данных выполняется создание // нового листа в карте MAP. В этом случае функция mapAppendData не должна вызываться. // При ошибке возвращает ноль
_VECIMP long int _VECAPI ImportFromAnySxfProEx(HMAP hmap, const WCHAR * namesxf, const WCHAR * namersc, WCHAR * namemap, long int size, HMESSAGE handle, HSELECT select, long int frscfromsxf, long int typesit, const WCHAR * password, long int psize, long int transform, EVENTLOG hevent, void * eventparam);
_VECIMP long int _VECAPI ImportFromAnySxfProM(HMAP hmap, const WCHAR * namesxf, const WCHAR * namersc, WCHAR * namemap, long int size, HMESSAGE handle, HSELECT select, long int frscfromsxf, long int typesit, const WCHAR * password, long int psize, long int transform);
_VECIMP long int _VECAPI ImportFromAnySxfPro(HMAP hmap, const WCHAR * namesxf, const WCHAR * namersc, WCHAR * namemap, long int size, HMESSAGE handle, HSELECT select, long int frscfromsxf, long int typesit, const WCHAR * password, long int psize);