Пространственный анализ
Пространственные запросы - запросы к графическим объектам - являются одной из главных задач любой ГИС. Самый простой и известный из них - ручное выделение объектов на карте, когда Вы "мышью" выделяете один или несколько объектов. При этом подсвечиваются объекты, а также связанные с ними записи атрибутивной таблицы. Более же серьезные задачи решаются с помощью операций определения пространственного положения объектов( лежит внутри, лежит вне, включает, пересекает) относительно друг друга и относительно буферных зон.
Оверлейные операции заключаются в частичном или полном пересечении нескольких объектов на карте. Что с чем пересекается, задается при организации запроса, и попавшие под условие пересечения объекты выделяются на карте (а связанная с ними атрибутивная информация - в таблице). Пересечение - частный случай, может быть задано полное попадание объекта в объект, пересечение на заданный процент площади и т.д.
Буферные зоны организуются логически вокруг графических объектов. Для точки буфером будет обычно круг, для линии и полигона - полигон. Буфер сам не является обычно объектом карты, он лишь служит для выделения пересекших его или целиком лежащих в нем объектов, то есть работает, в конечном счете, с помощью оверлеев. Хотя в отдельных системах можно и создать графический объект из буферной зоны.
Атрибутивная информация
Структура
Реальные физические объекты не только существуют, но и обладают некоторыми свойствами. Так, у города есть размер населения, у района - периметр и имя главы администрации, у страны - общая площадь и тип государственного управления. И для хранения всей этой информации применяются атрибутивные таблицы. В них каждому картографическому объекту соответствует запись базы данных, отдельные поля которой - числовые, символьные, логические - определяют различные атрибуты объекта: номер, уникальное имя, степень загрязнения, дату создания, и еще что угодно. В зависимости от числовых и логических параметров можно по-разному показать разные типы объектов, скажем, различить асфальтовые, грунтовые и проселочные дороги.
Необязательно хранить все атрибутивные данные слоя в одной таблице - можно информацию из разных источников держать в разных таблицах, и связывать их (горизонтально, запись к записи) логически в одну большую таблицу. Для этого можно использовать одинаковое во всех таблицах и в то время уникальное в пределах отдельно взятой таблицы поле - номер объекта. Это важно, поскольку в современном мире информация постоянно меняется, то есть достаточно обновлять только одну из исходных табличек. Логическая связка будет действовать следующим образом - при выделении атрибутивной информации объекта в одной таблице выделение отобразится и во все другие. Таким вот методом можно связать несколько таблиц не только логически, но и физически "сшить" их в одну большую, хотя такая операция редко приносит пользу, скорее добавит проблем, связанных с ограничением на размер БД.
Обработка
В ГИС обычно встроены не только средства отображения базы данных, а есть также небольшая СУБД - модуль работы с таблицами. Он позволяет создать новую атрибутивную таблицу, заполнить ее (добавляя записи и поля), и, в отдельных системах, привязать ее к карте. К сожалению, операции реструктуризации базы поддерживается далеко не везде. Так, в известном продукте ArcView после того, как база создана, нельзя даже переназначить имена полей - пользователю остается только задать отображаемые вместо истинных имен полей псевдонимы (aliases) или "спрятать" от пользователя отдельные поля в таблице. При этом никаких изменений в самой БД реально не происходит.
Не следует понимать, что графические объекты живут сами по себе, а атрибутика - сама по себе. Напротив, интеграция достигает порой той степени, когда графический объект физически хранится как одно из полей атрибутивной таблицы, несколько же других полей реально в таблице базы данных не существуют, а отображают автоматически отслеживаемые географические параметры объекта (длину, периметр, площадь...)
Логический запрос. Предположим, мы обрабатываем базу данных по ряду квартир. Нам нужно выбрать все те, у которых число комнат более 2-х.
На языке SQL этот запрос выглядел вы так:
SELECT FROM Sells
WHERE Roomcount > 2
В ArcView (а его язык запросов базируется на SQL) этот же запрос задается следующим образом:
[Roomcount > 2]
Анализ
Атрибутивные базы данных не только помогают по-разному отобразить объекты с различными свойствами. При выполнении пространственных запросов атрибутика помогает более точно идентифицировать объект - в самом простом случае мы можем указать объект на карте и получить о нем подробную информацию (номер, имя, размер и т.д.) Можно, разумеется, организовывать выбор объектов на карте посредством запросов к атрибутивной таблице, так как мы знаем, что выделение объектов связано с выделением их атрибутивных записей. В любой ГИС можно организовать запрос к атрибутике. Предпочтение отдается двум формам: языку запросов наподобие SQL (Structured Query Language), или шаблону, совпадающие с которым записи и выделяются. Последний называется QBE (Query By Example).
Говоря о запросах вообще (и пространственных, и атрибутивных), затронем логические операции. Первое, что надо знать - это операции с выборкой. В идеальном случае должны быть команды "выбрать все объекты слоя", "отменить выборку для всех" и "инвертировать выборку". Второе - логические операции при запросах. Везде результаты более нового запроса перекрывают результаты предыдущего, но полезны бывают также "логическое умножение" (AND), "логическое сложение" (OR) и "исключающее или" (XOR) с предыдущей выборкой.
