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

Сохранение карты на диск

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

Код
  // Выполнить согласование данных электронной карты
  // в памяти и на диске (при многопользовательском доступе
  // к данным)
  // hmap -  идентификатор открытых данных
  // Если состояние данных в памяти изменилось (по данным
  // с диска) - возвращает ненулевое значение (1), иначе 0
  // Если карта должна быть закрыта - возвращает 2
  // (доступ на ГИС Сервер прекращен!)
  // Если состояние изменилось - необходимо перерисовать
  // изображение карты
  // Опрос состояния целесообразно выполнять периодически
  // в процессе работы приложения
_MAPIMP long int _MAPAPI mapAdjustData(HMAP hMap);

и
Код
  // Сохранить данные на диск
  // при работе на Sparc-платформе также сохраняет данные в файлы Intel-платформы
  // hMap - идентификатор базовой карты
  // hSite - идентификатор пользовательской карты
  // При ошибке возвращает 0
_MAPIMP long int _MAPAPI mapFlushData(HMAP hMap, HSITE hSite);


Как и какую использовать в много-нитевой программе (TThread)
--------------------
ПО двум открытыми темам.
Имеется набор карт, на которых нужно выполнять "долгоиграющие" процессы не отвлекая пользователя от работы, например воссозданием аэронавигационной обсьтановки страны по состоянию на
для этого, нужно периодически выполнять сравнение содержимого карты с содержимым базы данных.
Из набора карт (12 штук) пользователь может выполнять какие то построения на одной из карт набора, при этом 4 карты обновлдяются воздушной обстановкой одной нитью (Thread)
Ещё три карты обновляются другой нитью (локационная обстановка - метки воздушных судов)
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
Можно использовать и ту и другую. Первая обновляет вашу карту в буфере, если остальные пользователи ее изменили. Вторая немедленно сохраняет все ваши изменения из опретаивной памяти на диск, после чего остальные пользователи могут видеть эти изменения.
 
Вопрос 1 Почему в первой нет параметра SITE ?
Вопрос 2 что такое буфер, где он находится у меня. Каким образом пользователь в сети может обновить его мне на компьютере
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
Нет параметра, потому что функция действует на все карты. Изменения буферизуются в кеше и периодически записываются на диск.
 
Вопрос по этим двум функциям: при многопользовательсом доступе к пользовательским картам в своем приложении использую mapAdjustData, вызываю ее переодически(период вызова настраивается) и если данная функция возвращает 1 делаю MapScreen.Repaint, но возникает проблема при доступе более трех пользователей к данной карте, когда один нанес знак у одного нормально картинка обнавляется в заданный период, а у третьего может пройти несколько периодов(1,2 и более, нет закономерности) и только после этого данная функция корректно отрабатывает. Можите более подробно расписать логику работы данных фукций??
Изменено: Максим Казаровец - 08.10.2014 23:42:47
 
Коллективную работу рекомендуем организовывать через ГИС Сервер, тогда все будет предсказуемо работать.
Логика простая - при вызове проверяется номер состояния данных в памяти и на диске в паспорте карты.
Если не совпадают, то идет считывание данных в память и возврат ненулевого значения.
Но полноценную синхронизацию, когда редактируют все, делает только ГИС Сервер.
Страницы: 1
Читают тему (гостей: 1)



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

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