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

работа с семантикой

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
работа с семантикой
 
Извините,но хотел узнать, как в новый объект записать название семантической характеристики:
mapDescribeObject(Uzel,19);
mapAppendSemantic(Uzel, 19, "135,5",100);
mapAppendPointPlane(Uzel, xt1, yt1,0);
mapCommitObject(Uzel);
mapClearObject(Uzel,1,IDFLOAT2);
в этом коде я ввожу значение семантической характеристики а как записать ее название??
заранее благодерен
 
Вы используете функцию:
long int _MAPAPI mapAppendSemantic(HOBJ info,long int code, char * value,long int size);
Здесь Сode - внешний код характеристики, указанный в классификаторе открытой карты (пользовательской карты), соответственно, название характеристики меняется либо вручную в классификаторе при помощи программы ГИС Интеграция,
либо использовать api функиции по работе с классификатором карты такие как:
 // Создать новую семантику - возвращает  код созданной семантики
 // hRsc - идентификатор классификатора карты
 // структура RSCSEMANTICEX описана в maptype.h
 // При ошибке возвращает ноль

long int  _MAPAPI mapAppendRscSemanticEx(HRSC hRsc,RSCSEMANTICEX * rsem);

либо:

 // Обновить семантику - возвращает  код обновленной семантики
 // code - код обновляемой семантики
 // classupdate - 1, классификатор семантики удаляется для последующего
 // обновления
 // hRsc - идентификатор классификатора карты
 // структура RSCSEMANTICEX описана в maptype.h
 // При ошибке возвращает ноль

long int  _MAPAPI mapUpdateRscSemanticEx(HRSC hRsc,long int code,

                                   RSCSEMANTICEX * rsem,long int classupdate);

Более подробно можно посмотреть в справке по MapApi
Название семантической характеристики изменяется в структуре RSCSEMANTICEX.

// ОПИСАНИЕ СЕМАНТИКИ
typedef struct RSCSEMANTICEX  // РАСШИРЕННОЕ ОПИСАНИЕ СЕМАНТИЧЕСКОЙ
                             // ХАРАКТЕРИСТИКИ ОБ'ЕКТА
{
 long int Code;         // внешний код
 long int Type;         // тип значения
 long int Reply;        // разрешается повторение (1)
 long int Enable;       // допустимая(1),обязательная(2)
                        // (при создании семантики поле не учитывается)
 long int Service;      // служебная,допустима для всех объектов (1)
 long int Reserv;       // резерв (должен быть равен 0)
 char     Name[32]; // название характеристики
 char     Unit[8]; // единица измерения
 double   Minimum;      // минимальное значение
 double   Default;      // умалчиваемое значение
 double   Maximum;      // максимальное значение
 long int Size;         // общий размер поля значения семантики
 long int Decimal;      // точность поля значения семантики
 char     ShortName[16];// короткое имя семантики (связь с полем БД)
}
 RSCSEMANTICEX;
Изменено: voice2 - 03.02.2009 14:25:03
В изолированной системе ​энергия системы остается постоянной, возможны лишь переходы одного ​вида энергии в другой.
 
спасибо попробую
 
Не рекомендуется на лету править классификатор.
Предполагается, что при проектировании системы классификатор проработан и содержит необходимые слои, объекты и их характеристики (семантики).

Семантика может быть идентифицирована по ее коду или короткому имени (аналог имени поля в таблице базы данных). Запись в объект выполняется по коду семантики. Код семантики может быть запрошен по короткому имени (например, когда нужно записать характеристики объекта из базы данных - ищем по имени поля таблицы подходящую семантику).
 
спасибо,разобрался ,все заработало
 
Здравствуйте, уважаемые разработчики!
Стоит задача создания группового объекта: некоторого условного знака и списка подписей к нему.
Как указано в документации, ссылка на подписи реализуется добавлением семантической характеристики с кодом 32804 к основному объекту.
Вопрос: что надо указать в функции mapAppendSemantic в качестве параметра "значение"?

mapAppendSemantic(hObj,32804, ??? );

Спасибо.
 
пока могу дать ссылки на обсуждение данных семантик по форуму: http://gisweb.ru/forum/messages/forum14/topic2108/message12327/#message12327
и http://gisweb.ru/forum/messages/forum2/topic2485/message14920/#message14920
 
Для подписи 3 параметром должен быть указан уникальный номер объекта типа "Условный знак", для условного знака - указан уникальный номер объекта типа "Подпись" в функции
Код
mapAppendSemantic
Страницы: 1
Читают тему (гостей: 1)



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

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