Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книга1(полный конспект).docx
Скачиваний:
55
Добавлен:
23.12.2018
Размер:
49.16 Mб
Скачать

13.9. Создание графических объектов на базе растровых изображений.

Данная задача заключается в преобразовании растрового изображения в векторное с созданием соответствующих объектов. Порядок работы при этом следующий.

1.Командой Файл(File) Открыть таблицу(Open Table)

войти в окно Открыть таблицу . В окошке Тип файлов установить тип «MapInfo». После этого в соответствующей папке открыть привязанное к системе координат растровое изображение , например Новгород.

  1. По команде Файл(File) Открыть таблицу(Open Table открыть созданную для графических объектов таблицу , например Раб.участки в режиме активной карты(Automatic) с полями например: номер, площадь.

  2. По команде карта(Map) управление слоями(Layer Control сделать слой Раб.участки изменяемым.

  3. Задавая по известным правилам стиль линий и цвет областей с помощью инструмента полигон выполнить трассирование выбранного на растровой основе объекта , в данном случае земельного участка .

  4. После создания объекта т.е. полигона , соответствующего этому участку , по команде Таблица(Table) обновить колонку(Update Column) войти в окно обновить колонку(Update Column) и выбрать в нем : название таблицы Раб.участки, обновляемую колонку - площадь , выражение - при этом произойдет вход в окно Выражение(Expression В этом окне в списке функции выбрать функцию вычисления площадей Area[obj, «sq km»]. Нажать ОК.

  5. Осуществляется возврат в таблицу Раб.участки , где будет вычислено значение площади данного участка в принятых единицах ( км2).

  6. Значения других атрибутов - номера а вводятся с клавиатуры .

Такие операции повторяются для каждого созданного графического объекта. Можно поступить иначе. Вначале создать графические объекты , а потом функцией Area[ ] вычислить их площади , а далее заполнить другие атрибуты.

13.10.Реализация запросов в гис.

Для реализации запросов реализуется команда Запрос (Query) главного меню . В ниспадающем по этой команде меню имеются команды : Select , SQL- Select, . Рассмотрим вначале реализацию запросов по команде Запрос (Query Выбрать: (Select) . Этот диалог позволяет выбрать записи таблицы (базы данных ) по заданному критерию . Порядок выбора следующий :

1. В окошке Выбрать записи из таблицы(Select Records from Table) необходимо выбрать таблицу, с которой будем работать . Пусть это будет таблица Участки .

  1. В окошке Согласно условию(that Satisfy) после нажатия клавиши Составить(Assist) сформулировать условия. Для этого следует использовать окошки списков : Колонки(Columns) , Операторы(Operators, Функции(Function). Например, для того чтобы выбрать все участки с номерами , меньшими 2 , необходимо в данном окошке записать : НомерУчастка 2.

  1. Нажав кнопку «ОК» осуществляется возврат в окно Выбрать . В нем в окошке Поместить результат в таблицу(Store result in Table) задать название таблицы , в которую помещается результат запроса . По умолчанию там записано слово Selection. В итоге будет создана новая таблица или база данных с новым именем(рис.1.56) .

Рис.13.56

  1. Выражения можно составлять с помощью ключевых слов : any,all,in,between. Например, выражение НомерУчастка = any ( 2,3 ) означает , что будет создана таблица , в которую войдут все записи предыдущей таблицы , номера участков для которых равны 2 или 3 .При выражении НомерУчастка   all (2,3) будут выбраны те записи , номера участков для которых не равны 2 или 3. При условии НомерУчастка   any ( 2 , 3 ) будут выведены все записи . Условие НомерУчастка between 2 and 5 определит вывод на экран таблицы с записями , номера участков которых лежат в замкнутом интервале от 2 до 5 . Окошко Упорядочить по колонке(Sort Results by Column) служит для упорядочивания записей по возрастанию числовых значений их полей или в алфавитном порядке значений символьных полей . Если ,например , в этом окошке установить колонку Площадь, то результатом такого выбора будет таблица, в которой все записи следуют в порядке возрастания площадей участков .

Рассмотрим теперь реализацию диалога по команде Запрос  SQL- запрос. Реализуем для примера SQL- запрос вывода записей , в которых номера участков меньше или равны 2 .

  1. В окошке из таблиц(from Tables)устанавливаем курсор мыши .Из окошка списка Таблицы(Tables) вызываем нужную таблицу , например , Участки

  2. В окошке «Выбрать колонки(Select Columns)» перечислить те колонки , которые необходимы в запросе . Например НомерУчастка и «obj». Для этого в окошке списка колонки (Columns) выбираются соответствующие названия .

  3. В окошке с условием(Where Condition) устанавливается курсор и записывается условие НомерУчастка  2 .

  4. Окошко поместить в таблицу(into Table Named) можно пропустить .

  5. 5. В окошке порядок задать по колонке(Order by Columns) установить ту колонку , по которой упорядочиваются все записи . Например , если установить колонку с именем НомерУчастка , то в результате такого запроса появится таблица с полями «номер» и «obj», в которой все записи упорядочены по номерам участков .

Следует обратить внимание на то , что при SQL- запросе можно формировать вычисляемые колонки. Пусть необходимо вывести при том же условии результат запроса с полями «НомерУчастка ,, «obj» и вычисляемым полем площади каждого участка . Тогда такой SQL- запрос осуществляется в следующем порядке :

  1. В окошке «из таблиц» указывается таблица из окошка списка «Таблицы», например «участки».

  2. В окошке «выбрать колонки» из окошка списка «колонки» выбрать, например : НомерУчастка, obj , Площадь

  3. В окошке с условием(Where Condition составить НомерУчастка 2. При этом НомерУчастка выбирается из окошка списка колонки (Columns),знак  из окошка списка операторы(Operators), а 2 вводится с клавиатуры.

  4. Окошко сгруппировать по колонкам(Group by Columns) остается пустым .

  5. В окошке порядок задать по колонке(Order by Columns выбрать НомерУчастка из списка колонки (Columns)

  6. Окошко поместить в таблицу(into Table Named) можно оставить без изменения или ввести имя новой таблицы как результаты запроса. По умолчанию там записано имя «Selection»(рис.13.57)

Рис.13.57

  1. Перемещение по окошкам осуществляется мышью или с помощью клавиши «ТАВ». После нажатия клавиши «ОК» появится следующая таблица с соответствующими записями(рис.1.58)

номер УЧАСТКА

object

ПЛОЩАДЬ

Рис.13.58

Отметим ,что запросы не запоминаются в MapInfo. Они сохраняются лишь на время диалога.