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

Как скрыть объекты на пользовательской карте?

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
Как скрыть объекты на пользовательской карте?
 
Есть пользовательская карта, с нанесенными объектами. Карта публикуется через ГИС Сервер. Есть приложение, использующее Вебтулкит. Вопрос. Какими средствами правильнее и проще всего временно скрыть объект с пользовательской карты? Удалить и потом восстановить, изменить прозрачность? Или как-то иначе. Возможно, это можно сделать средствами вебтулкита?
 
Добрый день! Если у Вас на карте только один этот объект, можно скрыть слой, потом отобразить.  Иначе - проще всего удалить нужный объект и восстановить затем.
Либо в тулките в wms-запросе подать параметр idlist=gmlid1,gmlid2,... и перечислить в списке идентификаторы объектов, которые должны отображаться в рисунке.    
 
Цитата
Ольга Нефедьева написал:
Добрый день! Если у Вас на карте только один этот объект, можно скрыть слой, потом отобразить.  Иначе - проще всего удалить нужный объект и восстановить затем.
Либо в тулките в wms-запросе подать параметр idlist=gmlid1,gmlid2,... и перечислить в списке идентификаторы объектов, которые должны отображаться в рисунке.    

Нет, объектов как раз много.

То есть вариант использовать mapDeleteObjectByNumber и mapUndeleteObjectByNumber правильный?  А нужно ли поддерживать соединение? Если удалить, закрыть соединение, а после открыть для восстановления?
 
Отображение происходит в web? А удаляете объект вы из GisToolkit?
 
Цитата
Владимир Железняков написал:
Отображение происходит в web? А удаляете объект вы из GisToolkit?

Да. Пользовательская карта создана при помощи gistoolkit. Отображение на веб, все верно.
 
Цитата
Алексей написал:
То есть вариант использовать mapDeleteObjectByNumber и mapUndeleteObjectByNumber правильный?  А нужно ли поддерживать соединение? Если удалить, закрыть соединение, а после открыть для восстановления?
Да, если временно хотите удалить объект, но он удалится для всех пользователей.
Поддержка соединения необходима только, если вы что - то делаете с картой или запрашиваете из неё информацию. Соединение необходимо поддерживать, если у вас открыты несколько карт.
Вы можете открыть соединение, удалить объект, затем закрыть данные и соединение.
 
Цитата
Владимир Железняков написал:
Цитата
Алексей написал:
То есть вариант использовать mapDeleteObjectByNumber и mapUndeleteObjectByNumber правильный?  А нужно ли поддерживать соединение? Если удалить, закрыть соединение, а после открыть для восстановления?
Да, если временно хотите удалить объект, но он удалится для всех пользователей.
Поддержка соединения необходима только, если вы что - то делаете с картой или запрашиваете из неё информацию. Соединение необходимо поддерживать, если у вас открыты несколько карт.
Вы можете открыть соединение, удалить объект, затем закрыть данные и соединение.

То есть для сокрытия я могу вызвать mapDeleteObjectByNumber, затем закрыть соединение и после открыть заново и вызывать mapUndeleteObjectByNumber? Но я если я для данной карты вызову mapAdjustData до вызова mapUndeleteObjectByNumber, то данные пропадут безвозвратно?
 
Данные не пропадут. У объекта будет признак, что он удален. Этот признак можно отменить.
Но это не красивый вариант.
Как-то нужно приблизить модель к реальности. Если реально объекты исчезают, то можно их удалять.

Если у них меняются свойства, то может отражать эти свойства в координатах или атрибутах.

Например, нырнул под воду, исчез с экранов радаров, то может менять 3-ю координату и по ней в web не отображать объекты (добавив соответствующую проверку).
 
Цитата
Oleg Belenkov написал:

Например, нырнул под воду, исчез с экранов радаров, то может менять 3-ю координату и по ней в web не отображать объекты (добавив соответствующую проверку).

А чем поменять третью координату? В mapapi.h вижу только подобные функции - mapUpdatePointPlane3D. Это о них идет речь?
 
Есть еще функция:


Код
 // Редактирование высоты точки объекта/подобъекта в метрах // Тип высоты может быть запрошен функцией mapGetHeightType
 // Система высот устанавливается в паспорте карты (HEIGHTSYSTEM)
 // info    - идентификатор объекта карты в памяти
 // h       - высота точки в метрах
 // number  - номер точки (c 1)
 // subject - номер подобъекта (если = 0, обрабатывается объект)
 // Если объект имеет двухмерную метрику (mapIsObject3D() == 0),
 // состояние координат не изменяется
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapSetHPlane(HOBJ info, double h, long int number, long int subject = 0);
Страницы: 1
Читают тему (гостей: 1)



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

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