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

Объекты карты без метрики или с неправильным классификационным кодом

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1 2 След.
RSS
Объекты карты без метрики или с неправильным классификационным кодом
 
Здравствуйте!

1. Предусматривается в будущем (а может уже предусмотрено, только я об этом не знаю) поддержка в векторной карте объектов, у которых имеется только семантика, а метрика отсутствует. И чтобы, при этом, такие объекты могли бы полноценно участвовать в циклах поиска объектов типа mapSeekSiteSelectObject() и т.п.

2. Если я зарегистрирую новый объект (mapRegisterObject()) с кодом, отсутствующим в классификаторе, добавлю семантику и метрику, а затем успешно сохраню в карте (mapCommitObjectAsNew()), то как мне потом этот объект найти, т.к.  
функция mapSelectObject() требует внутренний классификационный код (incd), которого, естественно, нет.


С Уважением, Болотов В.И.
 
ответ 2.
Код
mapSelectObject(FSelect,-1,0);     // тип объекта
mapSelectObject(FSelect,mapGetRscObjectKeyIncode(FRsc,'W00XXXXXX'),1);
while mapSeekSelectObject(FMap, FObj, FSelect,.....
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
Спасибо.
Не совсем понял, что такое 'W00XXXXXX'

// сохраняю новый объект в карту
ho := mapCreateSiteObject(hm, hs, KM_IDDOUBLE2, 0);
...
mapClearObject(ho, 1, KM_IDDOUBLE2);  // перед нанесением объекта очистить содержимое объекта
mapRegisterObject(ho, 1000000111, OL_MARK);
mapAppendSemantic(ho, 9, 'AAA', 3);
...
mapAppendPointPlane(ho, x1, y1, 0);  // добавить метрику
Result := mapCommitObjectAsNew(ho) > 0;  // ОК
...
mapFreeObject(ho);
...

Затем - как найти? - следующие функции возвращают 0 (что естественно, ведь P1000000111 нет в классификаторе):
incd := mapGetRscObjectKeyIncode(mapGetRscIdent(hm, hs), 'W1000000111');
if incd = 0 then ;
incd := mapGetRscObjectKeyIncode(mapGetRscIdent(hm, hs), 'P1000000111');
if incd = 0 then ;

С Уважением, Болотов В.И.
 
Вообще то  'P100000011' - уникальный код объекта в классфикаторе, а не 1000000111
С кодом 1000000111 может быть серия
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
Если в карту записали пространственный объект, которого нет в классификаторе (не знаем как отображать) и он не задается графическим описанием, то он (его метрика) отображается малиновым цветом.

Любые атрибутивные данные, не связанные с пространственным описанием, рекомендуется хранить во внешней БД.
 
Здравствуйте!
Всех поздравляю с Праздником Победы!

С малиновым цветом понятно.
Вопрос, как найти такой объект из программы без перебора всех объектов карты.

С Уважением, Болотов В.И.
 
Объекты, отсутствующие в классификаторе, попадают в системный слой "Системный", где для каждого типа (точечный, подписи,...)
зарезервированы специальные коды. Для точечного, например, классификационный код 1000000003 и ключ P1000000003 (можете посмотреть в редакторе классификатора).
По этим параметрам и ищете в карте (ваш текст в моей трактовке работает - mapGetRscObjectKeyIncode(mapGetRscIdent(hm, hs), 'P1000000003'); )
 
Нет полного понимания как рисуются объекты с ключами, которых нет в подключенном классификаторе. Вроде рисуются объектами из системного слоя классификатора с той же локализацией. Площадной объект карты с классификационным кодом 0 отрисуется площадным объектом из системного слоя подключенного классификатора. Но каким именно, если в системном слое несколько площадных объектов?
 
Вопрос в догонку. Объекты, которые вызывают при вопросы, отсутствуют а подключенном классификаторе, но рисуются не малиновым цветом. Это означает, что они имеют графическое описание?
 
*вызывают мои вопросы, отсутствуют в подключенном классификаторе
Страницы: 1 2 След.
Читают тему (гостей: 1)



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

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