Представление сложной географической карты в информационной системе

сью, необходимо ввести дополнительный индекс соответствия (“ге1^ех”) для одной из двух баз данных. Здесь возникает проблема выбора базы данных, которая должна будет работать через “ге1^ех”. Выберем для этого атрибутную базу, поскольку приоритет атрибутного запроса ниже пространственного.

После предложенных выше модификаций структура данных будет иметь вид представленный на рис. 2.

Рис. 2.

Эта структура данных обладает более высокой скоростью обработки запросов для больших объемов данных по сравнению с первым вариантом, а также сохраняет свойство оптимальности, поскольку также базируется на оптимальных схемах выполнения запросов.

Заметим также, что при подборе хэш-функций необходимо исходить из семантики состава самих запросов. Правильный подбор хэш-функций позволяет значительно ускорить работу всей СУБД.

УДК 519.85

С.Л. Беляков

ПРЕДСТАВЛЕНИЕ СЛОЖНОЙ ГЕОГРАФИЧЕСКОЙ КАРТЫ В ИНФОРМАЦИОННОЙ СИСТЕМЕ

Электронные географические карты (ЭГК) находят все более широкое применение в системах информационно-поискового назначения, диспетчирования, моделирования, навигации, мониторинга и многих других. Созданы мощные геоинформационные системы (ГИС) [1,2], обладающие совершенным инструментарием для построения карт и наполнением их разнородной информацией. Как показывает практика, ЭГК представляют собой сложные объекты, обработка которых как единого целого затруднительна. Типичной является ситуация, когда получение картографической информации пользователем в сети ЭВМ требует передать несколько десятков мегабайт данных и выполнить на сетевой станции обработку сотен

тысяч примитивов векторного изображения. В дальнейшем следует ожидать только усложнения ЭГК и, как следствие, повышения требований к техническим средствам реализации систем. В данной работе рассматривается один из подходов к решению проблемы — представление сложной карты набором более простых элементов карты (ЭК).

В общем виде задачу представления сформулируем следующим образом: имеется карта Р, состоящая из множества графических примитивов

Р={Ръ P2,..., Рм}

требуется найти разбиение Р на подмножества С=^ь g2,..., gN};

N

Р= и а,

г = 1

& е Р, а П gk= 0, 1,к е [1,Щ Т(С)  ех1г,

где Т(С) — критерий оценки разбиения.

Здесь gi — элементы карты. Каждый из них состоит из набора примитивов, которые описывают изображение участка карты. В отличие от подмножества примитивов соответствующие ЭК изображения могут перекрываться на карте.

Будем считать, что пользователь работает с картой в режиме "клиент-сервер". Сервер хранит ЭГК и по запросу формирует ответ — требуемую область ЭГК из набора ЭК. Запросы могут содержать либо непосредственно координаты произвольного многоугольника на плоскости, либо указание на него типа: “дать ближайшие объекты к указанному”, “показать зону распространения вещества”, “указать кратчайший путь между объектами”. В любом случае клиенту должен быть отправлен набор примитивов, описывающих искомую область карты. Как показывает анализ, описанная модель взаимодействия естественна для интерактивных систем, когда визуальный способ получения и обработки информации является главным. Качество разбиения (1) по этой причине будем оценивать временем обслуживания запроса (Тоб), которое включает в себя время формирования и передачи запроса серверу (Тз), время обработки запроса сервером (Тс), пересылки результата клиенту (Тп) и регенерации полученной области карты (Тр):

Тоб= Тз + Тс + Тп + Тр.

Рассмотрим каждую из составляющих. Величина Тз зависит от используемой системы навигации ЭГК и формата запроса серверу. Под системой навигации мы понимаем набор схем, классификаторов, справочников, иных документов, которые позволяют пользователю сформировать координаты требуемой области. От способа представления карты система навигации (и соответственно, составляющая Тз) не зависит.

Обработка запроса в сервере заключается в нахождении подмножества И ЭК

И £ С,

в совокупности покрывающих запрашиваемую область. Время обработки запроса представим как

Тс—N * tg,

где tg — среднее время определения принадлежности ЭК подмножеству И, выполнения системных функций по проверке полномочий доступа, поддержанию целостности данных.

Результатом обработки запроса является набор из г ЭК (г > 1). Пересылка результата по каналу связи может быть представлена как транспортировка примитивов, поэтому среднее время передачи результата

М

Тп=Г0 * ^ * — ,

N

где Го — среднее число ЭК, составляющих ответ на запрос;

^ — среднее время передачи одного примитива.

Значение Го, строго говоря, зависит от количества ЭК и реальной карты и на рассматриваемом этапе неизвестно. Однако анализ показал, что установить значение Тд можно путем статистического моделирования.

Кроме этого, параметр г0 может быть определен следующим образом: поскольку речь идет об интерактивном взаимодействии, передавать программе-клиенту информацию сверх границы человеческого восприятия не имеет смысла. Значение г0 может определять этот предел, выраженный в количестве ЭК. Поскольку ответы на запросы все же могут быть громоздкими, обслуживание клиента сервером можно построить следующим образом: если ответ на запрос по сложности (числу примитивов) превышает заданный порог, клиенту передается упрощенная схема ответа, по которой далее выполняется процедура просмотра. Просмотр заключается в формировании серии запросов на получение произвольных областей карты.

Регенерация карты — процесс формирования изображения на экране и создания внутренней базы данных графического редактора. Как показал экспериментальный анализ, для векторного формата среднее время регенерации ответа на запрос

М

Тр=г0 * *Р * ~Т7,

N

где tp — среднее время регенерации в расчете на один примитив.

Подставив полученные выражения в (2), можно найти его минимум

т*об= Тз+2 * д/м * го* г

что достигается при

М*=

М * то*

---------;---------

ч

Последнее соотношение позволяет сформулировать задачу представления (1) как разбиение карты на N ЭК с одинаковым числом примитивов.

Может оказаться, что величина Т*0^ в (3) не удовлетворяет ограничению на время реакции системы на запрос (Тд ). Это означает, что неравенство

т об £ То

не имеет решений в действительных числах. Рассмотрев выражение Тз+н»t.+ м* п*(>п+<р) £ т0

ё N

или

tg * Н2-(То-Тз) * N+M * Го * (tп+tp) £ 0,

можно видеть, что действительные корни соответствующего уравнения существуют при условии

(То-Тз)2- 4tg * М * Го * (tп+tp) > о.

Достичь выполнения условия можно, уменьшив М в Ь раз, т. е. разделив исходную карту на Ь независимых с точки зрения запросов карт. Величина Ь должна удовлетворять неравенству

4* tg* М* Го*

1 >---------;-----^--------.

Представление карты (1) должно быть выполнено для каждой из Ь полученных карт независимо. С точки зрения навигации, поиск по карте становится двухэтапным: первоначально — выбор одной из Ъ карт, затем формирование координат требуемой области внутри нее. Можно видеть, что любую из Ъ карт в свою очередь можно представить набором карт в соответствии с (5) и получить многоуровневое дерево выбора карт. Недостатком такого подхода является невозможность получить области на границе соседних карт, поэтому применение его следует ограничить 1—2 уровнями.

Характерной особенностью ЭГК является использование информационных слоев [1]. Слой представляет собой часть электронной карты, выделенную по некоторым содержательным признакам: слой зданий, трубопроводов, зеленых насаждений, и т. д. Пользователь может “накладывать” слои друг на друга и получать тематическую карту требуемого назначения. Обычно в текущем сеансе работы используется только часть слоев. Следовательно, направляемые серверу запросы относятся только к части общей карты. Можно определить средний объем карты в примитивах (Мср), которая фактически обрабатывается сервером:

*ср

1=0

где £ — общее число слоев;

— число примитивов в г-м слое; кг — вероятность запроса г-го слоя клиентом.

Использование Мср в выражениях (3) и (4) позволит учесть “слоистую” структуру ЭГК. Значения кг могут быть получены либо экспертным опросом, либо ведением учета в сервере запрашиваемых слоев карты и вычислением эмпирических оценок вероятностей.

Процедуры поддержки представления карты (1) должны входить в качестве компоненты программного обеспечения представительного уров-

ня сервера геоинформационной системы. В их функции входит получение представления (1) при изменении параметров выражений (3) и (4), нахождение совокупности ЭК, “покрывающую” заданную область карты.

Приведенные результаты могут использоваться для одиночных ЭВМ. Роль клиента и сервера в этом случае играет графический редактор ГИС. Параметры, входящие в (3) и (4), могут быть определены экспериментальным путем.

ЛИТЕРАТУРА

1. Малышев С. Новый картографический порядок. Компьютер-пресс, 8/96.

2. Миллер С., Сорокин А. Выбор программных и технических средств ГИС. Компьютерра. 21/96.

УДК 519.85

Л.К. Самойлов, С.Л. Беляков, М.П. Сидоренко

АНАЛИЗ АЛГОРИТМОВ РАЗБИЕНИЯ ГЕОДЕЗИЧЕСКОЙ КАРТЫ НА ЭЛЕМЕНТЫ

Геоинформационные системы (ГИС) находят все более широкое применение в областях контроля и управления — будь то система городского хозяйства или пожарная служба. ГИС — это программно-аппаратный комплекс, предназначенный для сбора, управления, анализа и отображения пространственно-распределенной информации [1]. По характеру доминирующих запросов все ГИС классифицируются на:

— ГИС с неравновероятными обращениями к различным частям геодезической карты;

— ГИС, в которых преобладают запросы выбора семантически связанных примитивов (объектов);

— ГИС, в которых преобладают запросы выбора семантически несвязанных примитивов;

— ГИС с равновероятными обращениями к различным частям геодезической карты.

При построении ГИС перед разработчиком ставится задача, заключающаяся в организации графической информации (геодезической карты) таким образом, чтобы пользователь ГИС имел доступ к любой части геодезической карты за минимальный интервал времени. При превышении определенного числа примитивов хранить графическую информацию в виде цельной карты становится неэффективным. Поэтому для ГИС с большим числом примитивов необходимо разбивать геодезическую карту на части — элементы. Задача разбиения геодезической карты на элементы формулируется следующим образом.

Пусть Рк — число примитивов карты, тогда необходимо разбить геодезическую карту на N элементов таким образом, чтобы:

1) число примитивов Рэ, принадлежащих каждому элементу, не превышало Рк/Н, т. е. (" Рэ)(Рэ £ Рк/Н);

2) никакие два элемента и Ej (1Ф ], 1,] = 1, N) не пересекались бы между собой, т. е. (" Е1,1= 1, N)(" Е], ]= 1, N )(1 Ф ]  (Е1П Е]= 0));