На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты
АРХИВ ФОРУМА...
здесь вы можете ознакомиться с материалами форума до 08.06.2008

Добавление невидимого объекта с координатами

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти  
Форум » Настольные приложения » GIS ToolKit
Страницы: 1
RSS
Добавление невидимого объекта с координатами
Здравствуйте, коллеги!

Я хочу добавить объект, который бы не отображался на карте, но служил бы местом для хранения координат.
Это нужно для того, чтобы при создании карты я туда записал координаты некоторой точки, а при открытии я бы оттуда их считал.
Можно ли это сделать и как?
Здравствуйте!

Самый простой способ - создать в классификаторе точечный объект без графического описания (без векторного вида и без вида на печать) и использовать для описанных Вами целей.
Так же можно настроить состав объектов для отображения электронной карты, так чтобы Ваш объект был скрыт.
Цитата
Самый простой способ

ещё ещё проще способ - создать подпись с текстом ПРОБЕЛ smile:)
Цитата
Так же можно настроить состав объектов для отображения электронной карты, так чтобы Ваш объект был скрыт.

Роман, а в режиме "... с узлами" будет виден "скрытый объект" ?
Изменено: KFF - 27.09.2011 14:27:48
Mapview 11. ГИС Карта 10.7.7. GisToolKit 10 (и 11) Free.
ЧИСЛО СОБЩЕНИЙ = "Отмена крепостного права на РУСИ"
Цитата
KFF пишет:
Роман, а в режиме "... с узлами" будет виден "скрытый объект" ?

Будет.
Остается настройка состава отображения. Но в случае, если в приложении предусмотрена установка состава отображения объектов пользователем, придется дополнительно выключать этот "скрытый" объект.

Иван Мартынов, а для каких целей Вам скрытый объект? может проще хранить координаты в отдельном файле, а не в самой карте в виде объекта?
Да не хотелось бы плодить лишних сущностей - если все в карте можно хранить.

Только вот вопрос: как ввести для "невидимого" объекта уникальный код, чтобы потом по этому коду можно было бы его найти.
Т.е. я хотел бы сделать потом поиск объекта по ключу, который я один знаю.

Как в объект прописать код и по этому коду найти потом?
Такой "уникальный код" для каждого объекта уже предусмотрен - уникальный номер объекта. Вам необходимо после вызова метода Commit запросить для этого объекта Key.

Или mapapi:
// Запросить уникальный номер объекта
// info - идентификатор объекта карты в памяти
// При ошибке возвращает 0

_MAPIMP long int _MAPAPI mapObjectKey(HOBJ info);

Для поиска объекта по номеру вызвать функцию SeekObject(ListName : string; Key : integer) : integer; в классе TMapObj.

Или вызвать mapapi:
// Поиск объекта по имени листа (номенклатуре) и номеру объекта
// среди всех карт
// hMap - идентификатор открытой карты.
// info - идентификатор существующего объекта,
// в котором будет размещен результат поиска.
// listname - название (номенклатура) листа,
// key - идентификатор объекта в листе,
// При ошибке возвращает ноль

_MAPIMP HOBJ _MAPAPI mapSeekObject(HMAP hMap,HOBJ info,
const char * listname, long int key);

_MAPIMP HOBJ _MAPAPI mapSeekObjectInList(HMAP hMap, HSITE hSite, HOBJ info,
long int list, long int key);
Дополнение к ответу Романа:

Неотображаемый объект может быть независим от классификатора (код объекта по классификатору = 0). При регистрации типа объекта вместо функций mapRegisterObject, mapRegisterObjectByKey или mapDescribeObject необходимо вызвать функцию mapRegisterDrawObject.
Код

// Сформировать описание нового графического объекта
// по номеру слоя (из классификатора карты) и локализации
// info - идентификатор объекта карты в памяти
// layer - порядковый номер слоя в классификаторе
// local  - локализация (LOCAL_LINE, LOCAL_POINT..., см. maptype.h)
// Вызывается после mapCreateObject(...)
// Для формирования условного знака необходимо
// использовать функцию mapAppendDraw(...)
// При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapRegisterDrawObject(HOBJ info, long int layer, long int local);
P.S. Объект будет отображемым только если установить для него вид (добавить элементы графического описания функцией mapAppendDraw).
Гораздо проще и надежнее (для дальнейшего использовния) такие вопросы решать, например, через ini файл приложения(задачи).
Цитата
Иван Мартынов пишет:
не хотелось бы плодить лишних сущностей - если все в карте можно хранить.
ИМХО (читайте мою подпись! smile:) ) - лишняя сущность - это как раз Ваш вспомогательный объект и проблемы, с ним связанные.
Цитата
Andrey Gheleznyakov пишет:
Гораздо проще и надежнее (для дальнейшего использовния) такие вопросы решать, например, через ini файл приложения(задачи).
Хоть INI, хоть XML, хоть TXT, хоть бинарник с самодельной структурой.
Non sunt entia multiplicanda praeter necessitatem. © William of Occam
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)


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