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

ID объекта из БД в семантике

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1 2 След.
RSS
ID объекта из БД в семантике, C# + GIS ToolKit Active 11
 
Здравствуйте!
У меня возникла такая необходимость:  при добавлении объекта на карту создать в семантике объекта поле под названием ID и записать туда номер этого ID.
Далее при выделении этого объекта на карте я должен получить его ID (а лучше в виде подсказки типа HINT объекта, где покажет его ID).
Подскажите пожалуйста какие операторы мне необходимо использовать??
Заранее спасибо!!  
 
Цитата
Александр Махин написал:
Здравствуйте!
У меня возникла такая необходимость:  при добавлении объекта на карту создать в семантике объекта поле под названием ID и записать туда номер этого ID.
Далее при выделении этого объекта на карте я должен получить его ID (а лучше в виде подсказки типа HINT объекта, где покажет его ID).
Подскажите пожалуйста какие операторы мне необходимо использовать??
Заранее спасибо!!  
Здравствуйте!
В панели задач "Редактор карты" есть режим "Семантика - Расчеты по семантике", где в блоке "Операции" есть функция ID.
Она записывает уникальные номера объектов в указанную семантику.
В меню "Параметры" есть режим "Отображение подсказки", который без "клика" по карте выводит информацию на экран.
Среди выводимой информации есть семантика "Собственное название".
Следовательно, Вы можете записать ID (уникальные номера объектов) в эту семантику и программа будет отображать их на карте.
С уважением, Демиденко Р.А.
 
А есть более "простой" вариант - есть возможность подключить к карте библиотеку условных знаков agro.iml, в ней заложена возможность создать семантику типа "Формула". Одна из реализованных формул - ID (номер) объекта, который будет автоматически добавляться во все объекты.
Ну а далее (для вывода на экран) - как описал Роман.
 
Добрый день!
Это все понятно, но я пишу свою ПО на C# с использованием GIS ToolKit 11 и там в тот момент когда я программно добавляю объект мне нужно добавить в него еще поле и записать в это поле значение.
Все это делается для того, чтобы после того когда объект выделяют, то получают его описание из БД.
А в БД у меня есть поле с описанием. Т.е. я выделил объект на карте получил его ID далее сравнил с ID записи со своей БД и отобразил его описание. Все это необходимо сделать программно.
 
Я еще попробывал перед тем как добавить программно объект на карту записать в MapObj.Tag значение, но при повторном открытии карты значение становится пустам.
Есть ли возможность сохранять это значение постоянно???  
 
Просьба задавать вопросы строго в тематических форумах.
Если у Вас вопросы по разработке - для этого предусмотрена данная ветка форума.
Ваши вопросы были выделены в отдельную тему и перенесены сюда.
 
Извеняюсь! Но куда перенесены я теперь найти не могу!
 
Цитата
Александр Махин написал:
Добрый день!
Это все понятно, но я пишу свою ПО на C# с использованием GIS ToolKit 11 и там в тот момент когда я программно добавляю объект мне нужно добавить в него еще поле и записать в это поле значение.
Все это делается для того, чтобы после того когда объект выделяют, то получают его описание из БД.
А в БД у меня есть поле с описанием. Т.е. я выделил объект на карте получил его ID далее сравнил с ID записи со своей БД и отобразил его описание. Все это необходимо сделать программно.

Ваша задача решается записью нужного Вам значения в семантику объекта.
Для идентификатора записи в БД в классификаторе карты предусмотрена специальная семантика ObjectDBID (код 32798).
Вы также можете использовать свой собственный классификатор в котором создать для своих целей свои семантические характеристики.

Для работы с семантиками объекта карты используются свойства и методы класса axMapObj.Semantic
 
Цитата
Александр Махин написал:
Извеняюсь! Но куда перенесены я теперь найти не могу!

Конкретно сюда и перенесены. Раз Вы пишете в этой теме, значит Вы ее нашли.
 
Цитата
Денис Вицко написал:
Цитата
Александр Махин написал:
Добрый день!
Это все понятно, но я пишу свою ПО на C# с использованием GIS ToolKit 11 и там в тот момент когда я программно добавляю объект мне нужно добавить в него еще поле и записать в это поле значение.
Все это делается для того, чтобы после того когда объект выделяют, то получают его описание из БД.
А в БД у меня есть поле с описанием. Т.е. я выделил объект на карте получил его ID далее сравнил с ID записи со своей БД и отобразил его описание. Все это необходимо сделать программно.

Ваша задача решается записью нужного Вам значения в семантику объекта.
Для идентификатора записи в БД в классификаторе карты предусмотрена специальная семантика ObjectDBID (код 32798).
Вы также можете использовать свой собственный классификатор в котором создать для своих целей свои семантические характеристики.

Для работы с семантиками объекта карты используются свойства и методы класса  axMapObj.Semantic
Получается так (код на С#)
При программном добавлении объекта мне необходимо добавить ему семантику, а именно ID = 17; (скрин прилагаю)

if (AddObj.Checked) //Добавление объекта на карту
           {
               if (!MapSelectObjectRsc.ExecuteForMapObj(MapObj.C_CONTAINER, true)) return;
               MapSelectObjectRsc.RestoreEnabled = true;
               MapEditMetric.MetEditMode = TxEditMode.emCreate;
               MapSelectObjectRsc.Show();
               MapPoint.PlaceInp = TxPPLACE.PP_PICTURE;
               MapPoint.SetPoint(x1, y1);
               MapObj.Metric.Append(0, MapPoint.C_CONTAINER);
               MapObj.Semantic.AddWithValue(1122, ID);
               MapObj.Semantic.Add(112233);
               MapObj.Commit();
               MapView.Refresh();
           }
           AddObj.Checked = false;

А еще я хотел пойти простым путем т.е. создаваему объекту в его Tag присваивать значение = 17, но при повторном открытии карты данный Tag обнуляется (((
Может можно его как то его сохранять при закрытии приложения??
Желательно подскажите кодом мне он легче дается)))
Заранее спасибо!!
Изменено: Александр Махин - 19.06.2019 12:23:38
Страницы: 1 2 След.
Читают тему (гостей: 1)



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

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