Шпаргалка по " Геоинформационные системы"

Автор работы: Пользователь скрыл имя, 02 Июля 2013 в 23:13, шпаргалка

Описание работы

Работа содержит ответы на вопросы по курсу "Геоинформационные системы".

Файлы: 1 файл

ответ на экзамен ГИС.doc

— 518.00 Кб (Скачать файл)

Contains Part (Содержит часть) Объект A содержит часть объекта B, если границы B частично лежат внутри границ A.

Within (Внутри) Объект A лежит внутри  объекта B, если его центроид  лежит в границах B.

Entirely Within (Полностью внутри) Объект A лежит полностью внутри объекта  B, если его граница полностью лежит внутри границ B.

Partly Within (Частично внутри) Объект A лежит частично внутри объекта  B, если его границы частично  лежат внутри границ объекта  B.

Intersects (Пересекает) Объект A пересекается  с объектом B, если они имеют  хотя бы одну общую точку.

Различие между Contains и Within, с одной  стороны, и Contains Entire и Entirely Within, с другой, состоит в том, что Contains и Within основаны на анализе центроида объекта, а Contains Entirely и Entirely Within - на анализе всего  объекта. Рисунок объясняет это различие:

объект A Содержит (Contains) объект B объект B Внутри (Within) объекта A

объект A Полностью содержит (Contains Entire) объект B объект B Полностью внутри (Entirely Within) объекта A объект A Пересекает (Intersects) объект B объект B Пересекает (Intersects) объект A

В обоих случаях объект A содержит объект B, так как центроид объекта B лежит внутри границы объекта A. Однако, на рисунке слева часть  объекта B лежит вне границ объекта A. А на рисунке справа весь объект B лежит внутри объекта A.

MapInfo выполняет простые операции  Содержит (Contains) и Внутри (Within) гораздо  быстрее, чем Содержит полностью  (Contains Entire) и Полностью внутри (Entirely Within). Поэтому, если не обязательно точно знать, полностью ли один объект содержит другой, используйте Contains и Within вместо Contains Entire и Entirely Within.

Пересечение (Intersect) - единственный географический оператор, рекомендуемый для использования  в команде ВЫБРАТЬ, так как Contains, Contains Entire, Within и Entirely Within работают обычно с объектами, которые содержатся в двух разных таблицах. Эти операторы больше всего подходят для задания условия выбора в команде SQL-ЗАПРОС. А оператор Intersect может работать с объектами из одного набора, например, таблицей областей или улиц.

Логические операторы:

And принимает значение "истина" только в том случае, если оба  ее аргумента ( логических выражения)  истинны. 

Or принимает значение "истина", если хотя бы один из аргументов  имеет значение "истина".

Not принимает значение "истина", если аргумент имеет значение " ложь", и наоборот.

Вопрос № 63

Функции

Географические функции

Area

Area(obj, единицы_измерения)

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

Допускаются следующие единицы  измерения площади:

"sq mi" квадратные мили

"sq km" квадратные километры

"sq in" квадратные дюймы

"sq ft" квадратные футы

"sq survey ft" квадратные топографические футы

"sq yd" квадратные ярды

"sq mm" квадратные миллиметры

"sq cm" квадратные сантиметры

"sq m" квадратные метры

"acre" акры

"hectare" гектары

Примеры: Чтобы выбрать все строки таблицы, соответствующие объектам с площадью более, чем 59 квадратных километров: 63. Area(obj,"sq km")>59

Чтобы выбрать все строки таблицы, соответствующие объектам с плотностью населения менее 250 человек на квадратный километр:

НАСЕЛЕНИЕ/Area(obj,"sq km")<250

Вычисление плотности населения  в объекте:

НАСЕЛЕНИЕ/Area(obj,"sq km")

Если Вы хотите получить площадь  в гектарах:

Area(obj,"hectare")

Если Вы хотите получить площадь  в квадратных милях:

Area(obj,"sq mi")

CentroidX

CentroidX(obj)

Возвращает координату X центроида  объекта, которая является значением  долготы на картах мира. Центроид -это центр минимального прямоугольника, описывающего заданный объект.

Значение возвращается в десятичных градусах, если координаты представляют широту и долготу.

В противном случае значение вычисляется  в единицах, заданных для Вашей  таблицы.

Примеры: Выбрать все объекты к западу от Нью-Йорка, расположенного на долготе -73.997890 и широте 40.750450:

CentroidX(obj)<-73.997890

Выбрать все объекты к востоку  от Нью-Йорка, расположенного на долготе -73.997890 и широте 40.750450:

CentroidX(obj)>-73.997890

Выбрать все объекты к северо-востоку  от Нью-Йорка:

CentroidX(obj)>-73.997890 and CentroidY(obj)>40.750450

Выбрать все объекты к северу или востоку от Нью-Йорка:

CentroidX(obj)>-73.997890 or CentroidY(obj)>40.750450

CentroidY

Синтаксис: CentroidY(obj)

Результат: Возвращает координату Y центроида  объекта, которая является значением  широты на

мировой карте.

Примеры: Выбрать все объекты  к северу от Нью-Йорка, расположенного на долготе -73.997890 и

широте 40.750450:

CentroidY(obj)>40.750450

Выбрать все объекты к югу от Нью-Йорка на долготе -73.997890 и широте 40.750450:

CentroidY(obj)<40.750450

Distance

Distance(x1, y1, x2, y2, единицы_измерения)

x1 и y1 - координаты восток-запад  (долгота) на карте мира

x2 и y2 - координаты север-юг (широта) на карте мира

единицы_измерения - текущие единицы измерения длины

Функция вычисляет расстояние между  двумя точками.

Допускаются следующие единицы  измерения длины:

"mi" мили

"km" километры

"in" дюймы

"ft" футы

"survey ft" топографические футы

"yd" ярды

"mm" миллиметры

"cm" сантиметры

"m" метры

"nmi" морские мили (1 морская  миля равна 1852 метрам)

Примеры: Вычисление расстояния между  некоторым объектом и Нью-Йорком, расположенным

на долготе -73.997890 и широте 40.750450:

Distance(-73.997890, 40.750450, CentroidX(obj), CentroidY(obj),"mi")

Выбрать все объекты удаленные  не более, чем на 20 миль к западу от Нью-Йорка:

CentroidX(obj)<-73.997890 and Distance(-73.997890, 40.750450, CentroidX(obj), CentroidY(obj),"mi")<=20

ObjectLen

ObjectLen(obj, единица_измерения)

Возвращает длину линий и ломаных и 0 для остальных объектов.

Примеры: Вычисление длины объекта:

ObjectLen(obj, "mi")

Вычисление длины объекта в  километрах:

ObjectLen(obj,"km")

Вычисление длины объекта в  морских милях:

ObjectLen(obj, "nmi")

Выбрать все объекты, длина которых превышает 10 километров:

ObjectLen(obj, "km")>10

Perimeter

Perimeter(объект, единица_измерения)

Возвращает периметр таких объектов, как многоугольник, эллипс, прямоугольник  и скругленный прямоугольник.

Примеры: Вычисление периметра объекта:

Perimeter(obj, "mi")

Вычисление периметра объекта  в километрах:

Perimeter(obj, "km")

Вычисление периметра в метрах:

Perimeter(obj, "m")

Выбрать все объекты, периметр которых  превышает 35 миль:

Perimeter(obj, "mi")>35

Математические функции

Abs(num) Возвращает абсолютное значение числа (модуль).

Cos(num) Возвращает косинус числа  num в радианах.

Int(num) Возвращает целую часть  числа.

Maximum(num,num) Возвращает наибольшее.

Minimum(num,num) Возвращает наименьшее.

Round(num1,num2) Возвращает число (num1), округленное до ближайшего кратного num2.

Sin(num) Возвращает синус числа  num в радианах.

Tan(num) Возвращает тангенс числа  num в радианах.

Примеры:

1. Выяснить максимальный номер  дома для отрезка улицы в  файле StreetInfo:

Maximum(ToLeft,ToRight)

2. Выяснить минимальный номер дома для отрезка улицы в файле StreetInfo:

Minimum(FromLeft,FromRight)

3. Выбрать все строки таблицы,  для которых средний возраст  равен 42:

Round(СРЕД_ВОЗРАСТ, 1) = 42

В зависимости от типа данных, это  выражение может дать лучшие результаты, чем прямое сравнение со значением (СРЕД_ВОЗРАСТ=42). При обычном сравнении со значением 42 MapInfo не выберет записи со значениями, скажем, 41.7, 42.1 или 42.4.

Строковые функции

Chr$(num) Возвращает символ, заданный  кодом.

DeformatNumber$( str ) Обладает обратным  действием к функции FormatNumber$; удаляет разделители тысяч из строки.

Format$(num, шаблон) Возвращает строковое  представление числа. Шаблон - это  строка, задающая формат результата, возвращаемого функцией.

FormatNumber$( num ) Возвращает строку, представляющую форматированную строку. Эта функция проще, чем Format$, но менее гибкая (например, всегда вставляет разделитель тысяч).

InStr(num,str1,str2) Возвращает позицию  первого символа подстроки в  строке.

LCase$(str) Возвращает строку, написанную  в нижнем регистре.

Left$(str,num) Возвращает первые num символов  строки str.

Len(str) Возвращает число символов  строки.

LTrim$(str) Удаляет все пробелы из  начала строки.

Mid$(str,num1,num2)

Возвращает num2 символов из str, начиная  с символа, номер которого определен параметром num1.

Proper$(str) Возвращает строку, написанную  в смешанном регистре(первый символ  каждого слова заглавный).

Right$(str,num)

Возвращает последние num символов строки str.

RTrim$(str) Удаляет все пробелы из  конца строки.

Str$(expr) Возвращает строковое представление выражения.

UCase$(str) Возвращает строку, написанную  в верхнем регистре.

Val(str) Возвращает число из строки, например, Val("18") равно 18.

Примеры:

1. В первой строке надписи  Вывести название области, а  во второй - численность населения.

Proper$(Область)+Chr$(13)+Население

2. Вы готовитесь нанести на  карту города банки. Для этого  нужно найти все строки, содержащие  подстроку "Банк" в колонке  "Название". Слово "Банк" может  быть как отдельным словом  в названии, так и сливаться  с другими словами. Вы также не уверены, что слово "Банк" написано везде большими буквами. Поэтому составляете выражение:

InStr(1,UCase$(Название),"БАНК")>0

3. Рассмотрим выражение, где  "Телефон" - это колонка, содержащая  телефонные номера, начинающиеся  с кодов городов:

Left$(Телефон,3)="404"

Это выражение выбирает все строки таблицы, поле номера телефона в которых  начинается на "404".

Функции даты и времени

CurDate( ) Возвращает текущую дату.

Day(date) Возвращает день даты (от 1 до 31).

Month(date) Возвращает месяц даты (от 1 до 12).

Weekday(date) Возвращает день недели (от 1 до 7), 1 соответствует воскресенью. 

Year(date) Возвращает год-компоненту  даты.

CurDate

Примеры:

1. Функция CurDate() может использоваться  в сочетании с командой ОБНОВИТЬ  КОЛОНКУ, когда нужно внести в колонку текущую дату.

2. Выбрать все записи о поступлениях, принятых 30 и более дней назад: 

Поступило <= CurDate()-30

3. Примеры: Выбрать все записи, относящиеся к первому числу  любого месяца:

Day(date)=1

4. Выбрать все записи, относящиеся  к пятницам, не попадающим на 13-е число:

Weekday(date)=6 and Day(date)<>13

5. Выбрать все записи, относящиеся  к августу:

Month(Доставлено)=8

6. Чтобы выбрать все записи, полученные  до августа:

Month(Доставлено)<8

7. Выбрать все записи, относящиеся  к августу 1990:

Month(Доставлено)=8 and Year(Доставлено)=1990

8. Выбор всех записей от августа  или сентября:

Month(Доставлено)=8 or Month(Доставлено)=9

9. Выбор всех записей от августа  или сентября:

Month(Доставлено)=any(8,9)

10. Выбор всех записей от августа  или сентября 1990 года:

Month(Доставлено)=any(8,9) and Year(Доставлено)=1990

11. Выбрать все записи о пятницах  в июле месяце:

Weekday(date)=6 and Month(date)=7

12. Найти все записи, относящиеся  к 1990 году:

Информация о работе Шпаргалка по " Геоинформационные системы"