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

Сергей Викторович (Все сообщения пользователя)

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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 102 След.
GisTool14 и python, GisTool14 и python
 
[QUOTE]Andrey Gheleznyakov написал:
Инсталляция обновлена.[/QUOTE]
При установки инсталляции GIS ToolKit 14.5.9.2 отмечаются предупреждения. См скриншот.
Те же предупреждения выдаются и на стадии компиляции приложения.
Изменено: Сергей Викторович - 25.07.2023 15:31:17
GisTool14 и python, GisTool14 и python
 
[QUOTE]Andrey Gheleznyakov написал:
автра обновим инсталляцию (изменим настройку путей по умолчанию в файле gisconsts.py).[/QUOTE]
Здравствуйте, Андрей Владиславович!
Обновили?
GisTool14 и python, GisTool14 и python
 
[QUOTE]Andrey Gheleznyakov написал:
Запустите пример из среды IDLE Python[/QUOTE]
Hello World работает
findobj не работает.
Я что-то не понимаю?
Изменено: Сергей Викторович - 18.07.2023 17:37:10
GisTool14 и python, GisTool14 и python
 
[QUOTE]Andrey Gheleznyakov написал:
Инсталляцию обновили  [URL=https://gisinfo.ru/download/?id=291]https://gisinfo.ru/download/?id=291[/URL] [/QUOTE]
Обновили инсталляцию.
Приложение скомпилировалось хорошо.
Но при запуске его выдает ошибку.
Импорт из shp, shpLoadOneShape
 
[QUOTE]Oleg Belenkov написал:
mapGetRscObjectCodeByNumber[/QUOTE]
procedure Tform_main.SHP2Click(Sender: TObject);
Var
error : Pinteger;
hshpload : THANDLE;
setting : PSETTING;
res : integer;
ExNum : integer;
begin
error := nil;
setting := nil;
// Создать объект для импорта файлов SHP
// handle - идентификатор получателя сообщений WM_ERROR и WM_OBJECT
// mapname - имя паспорта создаваемой\обновляемой карты
// rscname - имя классификатора создаваемой карты или 0 (если имя не задано, то карта обновляется)
// name    - имя района (листа) карты
// mapreg, ellparm, datumparm - параметры системы координат исходных данных и создаваемой карты (если карта создается)
// nomenclature - номенклатура листа или 0 (используется и для формирования имени файлов листов карт с рамкой)
// recitem - список обрабатываемых атрибутов (имена полей DBF и их ключи в классификаторе - если они разные)
// semitem - список обрабатываемых полей атрибутов или 0 (если нужно обрабатывать не все поля DBF)
// ismap   - признак создания карты (1- многолистовая карта MAP, иначе 0)
// epsgcode - код системы координат, в которой создается карта или 0 (если система совпадает с системой исходных данных)
// При ошибке возвращает ноль

ShowMessage ('alias = '+alias);

listname := form_main.mvMap.MapName;

ShowMessage ('listname = '+listname);

hshpload := shpShapeProcInit(form_main.Handle,PChar(alias),nil,PChar(listname),nil,nil,nil,nil,0,nil,0);

ShowMessage ('hshpload = '+IntToStr(hshpload));

// Запросить внутренний код (порядковый номер) объекта
 // по внешнему коду ; локализации  и порядковому номеру среди аналогичных
 // объектов(с 1)
 // hRsc - идентификатор классификатора карты
 // При ошибке возвращает ноль

ExNum  := mapGetRscObjectCodeByNumber(form_main.MapRsc1.RscHandle,10000051,1,1);

ShowMessage ('ExNum = '+IntToStr(ExNum));

// Загрузка  SHP-файла
// hshpload - идентификатор объекта загрузки SHP
// shpname  - имя входного файла SHP
// type     - тип объекта в наборе данных
// code     - код зарегистрированного объекта
// setting  - указатель на структуру настроек диалога SETTING (myform.h)
// error    - код ошибки при создании объектов
// При ошибке возвращает ноль

res := shpShapeProcLoad(hshpload,PChar('D:\2\ZonesDop_Прилегающая территория.shp'),ExNum, setting,error);

ShowMessage ('res = '+IntToStr(res));
end;

Да, сейчас всё хорошо.
Олег Валентинович, какой функцией можно
освободить объект загрузки SHP?
Импорт из shp, shpLoadOneShape
 
[QUOTE]Oleg Belenkov написал:
В Windows - это HWND диалога, который принимает сообщения WM_OBJECT, WM_ERROR[/QUOTE]
Процедура компилируется нормально.
В процессе импорта программа "задумывается" на 5 секунд.
Затем все происходит штатно перемещение, масштабирование карты и т.п.
Но в результате на карту не добавляются из SHP файла ожидаемые объекты.

procedure Tform_main.SHP2Click(Sender: TObject);
Var
error : Pinteger;
hshpload : THANDLE;
setting : PSETTING;
res : integer;
begin
error := nil;
hshpload := 0;
setting := nil;
// Создать объект для импорта файлов SHP
// handle - идентификатор получателя сообщений WM_ERROR и WM_OBJECT
// mapname - имя паспорта создаваемой\обновляемой карты
// rscname - имя классификатора создаваемой карты или 0 (если имя не задано, то карта обновляется)
// name    - имя района (листа) карты
// mapreg, ellparm, datumparm - параметры системы координат исходных данных и создаваемой карты (если карта создается)
// nomenclature - номенклатура листа или 0 (используется и для формирования имени файлов листов карт с рамкой)
// recitem - список обрабатываемых атрибутов (имена полей DBF и их ключи в классификаторе - если они разные)
// semitem - список обрабатываемых полей атрибутов или 0 (если нужно обрабатывать не все поля DBF)
// ismap   - признак создания карты (1- многолистовая карта MAP, иначе 0)
// epsgcode - код системы координат, в которой создается карта или 0 (если система совпадает с системой исходных данных)
// При ошибке возвращает ноль

ShowMessage ('alias = '+alias); // Здесь HOST#194.247.15.146#2047#ALIAS#A3FD27D3-488D-4935-A7E3-F

listname := form_main.mvMap.MapName;

ShowMessage ('listname = '+listname); // Здесь Karta

hshpload := shpShapeProcInit(form_main.Handle,PChar(alias),0,PChar(listname),nil,0,nil,nil,0,nil,0);

ShowMessage ('hshpload = '+IntToStr(hshpload)); // Здесь 105709752

// Загрузка  SHP-файла
// hshpload - идентификатор объекта загрузки SHP
// shpname  - имя входного файла SHP
// type     - тип объекта в наборе данных // Прошу обратить внимание в параметрах MapAPI функции это нет
// code     - код зарегистрированного объекта
// setting  - указатель на структуру настроек диалога SETTING (myform.h) // Не нашел файла myform.h, что за указатель SETTING мне не понятно. Он нужен?
// error    - код ошибки при создании объектов
// При ошибке возвращает ноль

res := shpShapeProcLoad(hshpload,PChar('D:\2\ZonesDop_Прилегающая территория.shp'),10000051, setting,error);

ShowMessage ('res = '+IntToStr(res)); // Здесь 607 Это число соответствует количеству ожидаемых объектов
end;

В результате добавляются на карту объекты СИСТЕМНЫЙ ЛИНИЯ
Номер объекта есть
Код объекта нет
Ключ объекта нет

Что я делаю не так?
Изменено: Сергей Викторович - 17.07.2023 13:55:18
Импорт из shp, shpLoadOneShape
 
Денис, здравствуйте!

Сделали так:

procedure Tform_main.SHP2Click(Sender: TObject);
Var
error : Pinteger;
hshpload : THANDLE;
setting : PSETTING;
begin
error := nil;
hshpload := 0;
setting := nil;
// Создать объект для импорта файлов SHP
// handle - идентификатор получателя сообщений WM_ERROR и WM_OBJECT
// mapname - имя паспорта создаваемой\обновляемой карты
// rscname - имя классификатора создаваемой карты или 0 (если имя не задано, то карта обновляется)
// name    - имя района (листа) карты
// mapreg, ellparm, datumparm - параметры системы координат исходных данных и создаваемой карты (если карта создается)
// nomenclature - номенклатура листа или 0 (используется и для формирования имени файлов листов карт с рамкой)
// recitem - список обрабатываемых атрибутов (имена полей DBF и их ключи в классификаторе - если они разные)
// semitem - список обрабатываемых полей атрибутов или 0 (если нужно обрабатывать не все поля DBF)
// ismap   - признак создания карты (1- многолистовая карта MAP, иначе 0)
// epsgcode - код системы координат, в которой создается карта или 0 (если система совпадает с системой исходных данных)
// При ошибке возвращает ноль

hshpload := shpShapeProcInit(WM_ERROR,PChar(alias),0,PChar('Karta'),nil,0,nil,nil,0,nil,0);

// Загрузка  SHP-файла
// hshpload - идентификатор объекта загрузки SHP
// shpname  - имя входного файла SHP
// type     - тип объекта в наборе данных
// code     - код зарегистрированного объекта
// setting  - указатель на структуру настроек диалога SETTING (myform.h)
// error    - код ошибки при создании объектов
// При ошибке возвращает ноль

shpShapeProcLoad(hshpload,PChar('D:\3\ZonesDop_Прилегающая территория.shp'),10000051, setting,error);
end;

т.е. создаем объект загрузки SHP
затем пытаемся импортировать SHP файл.

Результат:
программа подвисла во время выполнения.

Что я делаю не так?
Импорт из shp, shpLoadOneShape
 
[QUOTE]Денис Вицко написал:
Однако при наличии рядом к классификатором, на основе которого выполняется загрузка, файла настроек, они буду использованы при загрузке. Описание файла настроек [/QUOTE]
Создали файл настроек, во вложении.
Положили его в папку общего для всех карт классификатора
на ГИС Сервере
Указали в настройках файла имя
ZonesDop_Прилегающая территория
и код из классификатора, в который необходимо загрузить shp файл

Результат тот же
объекты из shp файла загрузились в слой СИСТЕМНЫЙ объект ВЫДЕЛЕНИЕ ПЛОЩАДНЫХ.
Вывод: такой вариант не работает?

Вариант 2.
Из предложенных вами нескольких MapAPI функций, похоже должна подойти вот эта:
// Загрузка  SHP-файла
// hshpload - идентификатор объекта загрузки SHP
// shpname  - имя входного файла SHP
// type     - тип объекта в наборе данных
// code     - код зарегистрированного объекта
// setting  - указатель на структуру настроек диалога SETTING (myform.h)
// error    - код ошибки при создании объектов
// При ошибке возвращает ноль

function shpShapeProcLoad(hshpload : HSHPLOAD; const  shpfilename : PWCHAR;
                                         code : integer;  setting : PSETTING;
                                         error : PInteger): HMAP;
Вопрос:
прошу пояснить что такое идентификатор объекта загрузки SHP?
у нас есть имя *.shp файла, а что такое идентификатор объекта загрузки SHP?
type, здесь указываем 1, для площадного объекта? и сразу уточнение, в описание параметров функции, в скобках, нет type, почему?

Еще вопрос:
procedure Tform_main.SHP2Click(Sender: TObject);
Var
error : Pinteger;
hshpload : THANDLE;
setting : PSETTING;
begin
error := 0;
shpShapeProcLoad(hshpload,PChar('D:\3\ZonesDop_Прилегающая территория.shp'),10000051, setting,error);
end;

Результат, компилятор скомпилировал приложение,
но при выполнении импорта из фала *.shp
программа выдала ошибку по памяти.
Изменено: Сергей Викторович - 13.07.2023 15:29:01
Импорт из shp, shpLoadOneShape
 
Здравствуйте!

Импортируем shp файл в действующую карту

procedure Tform_main.SHP2Click(Sender: TObject);
Var
res : integer;
error : integer;
begin
error := 0;
shpLoadOneShape(form_main.mvMap.MapHandle,PChar('D:\2\pt.shp'),0,0,0,0,0,error);
end;

Карта импортировалась,
но в слой СИСТЕМНЫЙ объект ВЫДЕЛЕНИЕ ПЛОЩАДНЫХ

Как указать ExCode, в который необходимо импортировать этот shp файл?
GisTool14 и python, GisTool14 и python
 
[QUOTE]Andrey Gheleznyakov написал:
Пример поправим. Есть неточности в определении путей[/QUOTE]
Хорошо, ждем.
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 102 След.



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

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