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

Копирование объектов на другую пользовательскую карту

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: Пред. 1 2 3
RSS
Копирование объектов на другую пользовательскую карту, Копирование объектов на другую пользовательскую карту (если карты расположены в сети)
 
Я некорректно написал. При импорте из DXF выбирается карта, в которой все параметры системы координат и проекции должны быть установлены.
 
При попытке создать копию объекта form_main.MapObj1 с основной карты mvMap.MapHandle на пользовательскую TempSite с изменением типа объекта,
kd_new := 10000020;
loc_new := 1;
объект TempObject почему-то копируется на туже основную карту.

TempSite := mapCreateTempSite(PChar(NameRsc));
TempObject:=mapCreateObject(TempSite,1,KM_IDDOUBLE2,0);
kd_new := 10000020;
loc_new := 1;
mapReadCopyObject(TempObject,form_main.MapObj1.ObjHandle);
mapRegisterObject(TempObject,kd_new, loc_new);
mapSetObjectMap(TempObject,TempSite);
mapChangeObjectMap(TempObject, mvMap.MapHandle,TempSite);
mapCommitObjectAsNew(TempObject);
form_main.mvMap.Repaint;

Как скопировать объект с изменением типа,
на пользовательскую TempSite карту?  
Изменено: Сергей Викторович - 04.07.2017 10:21:46
 
Разобрался.
Если кому надо:
TempSite := mapCreateAndAppendTempSite(form_main.mvMap.MapHandle,PChar(NameRsc));
TempObject:=mapCreateObject(TempSite,1,KM_IDDOUBLE2,0);
kd_new := 10000020;
loc_new := 1;
mapReadCopyObject(TempObject,form_main.MapObj1.ObjHandle);
mapRegisterObject(TempObject,kd_new, loc_new);
mapSetObjectMap(TempObject,TempSite);
mapChangeObjectMap(TempObject, mvMap.MapHandle,TempSite);
mapCommitObjectAsNew(TempObject);
form_main.mvMap.Repaint;
 
Маленькие поправочки:

1. можно немного упростить работу с объектом:
а) создать объект сразу с копированием из исходного - mapCreateCopyObjectAsNew (вместо mapCreateObject и mapReadCopyObject);
б) перенести объект на временную карту - mapChangeObjectMap;
в) перерегистрировать объект на временной карте - mapRegisterObject (это лучше делать после переноса, так как теоретически классификаторы исходной и временной карт могут отличаться);
г) сохранить объект mapCommitObject.

2. mapSetObjectMap и mapChangeObjectMap - это две эквивалентные функции, достаточно вызвать одну из них.

3. не забывайте на каждый созданный HOBJ (mapCreateCopyObjectAsNew, mapCreateObject и др.) по окончании его использования вызывать mapFreeObject.
Страницы: Пред. 1 2 3
Читают тему (гостей: 1)



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

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