Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ArcGIS 9 ArcMap Руководство пользователя

.pdf
Скачиваний:
659
Добавлен:
02.03.2016
Размер:
32.92 Mб
Скачать

Выбор объектов с помощью SQL9 запросов

Язык структурированных за/ просов (SQL) / это мощный инструмент, который позволя/ ет строить запросы, состоящие из атрибутов, операторов и вы/

числений. Например, предпо/

ложим, что у вас есть карта кли/ ентов, и вы хотите найти тех из

них, которые потратили в ва/

шей компании более 50 000 долларов в прошлом году и за/ нимаются ресторанным бизне/ сом. Вы сможете выбрать этих клиентов с помощью выраже/ ния: Продажа > 50000 AND

Тип_бизнеса = “Ресторан”.

Когда вы ведете поиск с помо/ щью выражений SQL, вы мо/

жете выбирать объекты или за/ писи таблицы в любом формате

данных, поддерживаемом ArcMap. Однако, вы должны

строить выражения по/разно/

му, в зависимости от формата данных, по которым ведется

поиск. На следующих страни/

цах приведены примеры пост/ роения SQL/запросов для раз/

личных форматов данных.

Подсказка

Попробуйте Мастер запросов

Если вы никогда не выбирали объ! екты по значениям их атрибу! тов, нажмите на кнопку Мас! тер Запросов, чтобы сгенериро! вать выражение запроса.

1. Откройте закладку Выборка и щелкните Выбрать по атрибу" 1 ту.

2.Щелкните на стрелке вниз в строке Слой и выберите слой, содержащий объекты, кото" рые вы хотите выбрать.

3.Щелкните на стрелке вниз в строке Метод и укажите не" обходимый метод выбора.

4.Дважды щелкните на поле, чтобы добавить имя поля в окно выражения.

5.Щелкните на операторе, что" бы добавить его в выражение.

6.Выберите Получить значения, чтобы увидеть, какие значе" ния имеются в поле.

Двойным щелчком добавьте 2

выбранное значение в выра"

3

жение.

 

7. Щелкните на кнопке Прове" 4 рить, чтобы убедиться в пра"

вильности синтаксиса ваше"

5

го запроса.

8.Щелкните Применить.

Строка состояния внизу окна ArcMap сообщит вам, сколь" ко объектов было выбрано.

9.Если вы закончили выбирать объекты, щелкните Закрыть.

7

8

9

Мастер

запросов поможет в построении выражений.

6

ЗАПРОСЫ К КАРТАМ

399

Построение SQL9запроса

Использование SQL в ArcMap

SQL – это обычный компьютерный язык доступа и управления базами данных. Он используется в ArcMap для выбора объектов через функцию Выбор по атрибуту или через диалоговое окно Конструктор запросов, используемое для построения запросов при определении слоя.

SQL/запросы используются во многих частях ArcMap и его рас/ ширениях для определения поднабора данных, над которыми надо производить какие/либо операции. Интерфейс построе/ ния запросов одинаковый во всей программе.

SQL/запросы также могут использоваться в качестве парамет/ ров, при выборе объектов программным способом.

SQL используется в ArcMap только как язык запросов к базам данных. Этот язык нельзя использовать для вставки, редакти/ рования или удаления данных. Диалоговое окно Выбор по атри/ буту позволяет задать только выражение выборки (SELECT) с параметром Где (WHERE).

В следующих разделах описано, как строить простейшие SQL/ запросы. Более подробно о том, как строить более сложные вы/ ражения SQL см. интерактивную справку по ArcGIS Desktop.

Версии SQL

Синтаксис выражения SQL, которое вы строите, зависит от формата ваших данных. Это происходит потому, что, хотя SQL является стандартным, программное обеспечение баз данных

может поддерживать разные версии SQL.

ANSI SQL используется для запросов к базам геоданных ArcSDE, а Jet SQL используется для персональных баз геоданных. Для запросов к покрытиям, шейп/файлам, таблицам INFO и dBASE используется ограниченная версия SQL, не поддерживающая многие объекты и функции ANSI и Jet SQL.

Например, если вы делаете запрос к покрытиям ArcInfo, шейп/ файлам, таблицам INFO или dBASE, названия полей в SQL/за/ просах должны быть заключены в двойные кавычки:

"AREA"

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

[AREA]

Если запрос осуществляется к данным базы геоданных ArcSDE, данным класса объектов ArcIMS или подслоя ArcIMS Image Service, поля остаются открытыми:

AREA

Некоторые операторы и ключевые слова также могут варьиро/ вать.

Диалоговые окна, в которых создаются SQL/запросы, сами вы/ дают список доступных для запросов полей, ключевых слов и операторов.

ПРИМЕЧАНИЕ: Приводимый в примерах к настоящей главе синтаксис соответствует запросам к персональным базам гео/ данных Jet SQL (данные Microsoft Access).

Простой SQL1запрос

Простейший SQL/запрос выглядит примерно так:

SELECT * FROM states WHERE [STATE_NAME] = 'Alabama'

Простые выражения сродни английским фразам и интуитивно понятны. Данное выражение отберет объекты слоя Штаты (states), содержащие в атрибутах поля STATE_NAME значение Alabama.

400

ARCMAP. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Так как SQL может использоваться в ArcMap исключительно для построения запросов, вам надо только подставить нужную часть выражения после ключевого слова WHERE.

Поиск строковых значений

Строковые значения всегда заключаются в запросах в одинар/ ные кавычки.

Например:

[STATE_NAME] = 'California'

Запросы чувствительны к регистру букв, за исключением клас/ сов объектов и таблиц персональных баз геоданных. Чтобы осу/ ществить поиск независимо от регистра, используйте функцию SQL для преобразования всех значений к одному регистру. Для файловых источников данных, таких как шейп/файлы и покры/ тия, используйте функции UPPER (верхний регистр) или LOWER (нижний регистр).

Например, данный запрос выберет всех клиентов, фамилия ко/ торых занесена в базу как Иванов либо ИВАНОВ:

UPPER("LAST_NAME") = 'ИВАНОВ'

Для других источников данных тоже имеются похожие функ/ ции. В персональных базах геоданных, например, эти же функ/ ции выглядят как UCASE и LCASE.

Используйте оператор LIKE (вместо оператора =) в сочетании с групповыми символами, чтобы строить запросы к частям строк.

В этом примере из названий штатов США запрос выберет Мис/

сисипи и Миссури:

[STATE_NAME] LIKE 'Ìèññ*'

Знак “*” используется для представления любого символа или группы символов.

Следующий пример показывает выражение для выбора имен Catherine Smith и Katherine Smith:

[OWNER_NAME] LIKE '?atherine smith'

Знак “?” представляет любой одиночный символ.

В разных форматах баз данных используются разные группо/ вые символы. В этом разделе в качестве примеров приведены групповые символы, используемые только для персональных баз геоданных. Более подробно о групповых символах см. разделы по SQL интерактивной справки ArcGIS Desktop.

Эти знаки групповых символов появляются в виде кнопок в ди/ алоговом окне, и вы можете нажать на эти кнопки, или же вве/ сти соответствующие знаки с клавиатуры в нужном месте ваше/ го выражения. При этом отображаются только те групповые символы, которые можно использовать применительно к запра/ шиваемым источникам данных.

Если вы используете знак группового символа в строке вместе с оператором =, знак воспринимается как часть строки, а не как групповой символ.

Вы можете также использовать операторы больше (>), меньше (<), больше или равно (>=) и меньше или равно (<=), чтобы выбирать строковые значения на основании их сортировки.

Например, этот запрос выберет все города в покрытии, назва/ ния которых начинаются с букв от M до Z:

"CITY_NAME" >= 'M'

Сложные запросы с большим количеством параметров, группо/ выми символами и операторами сортировки могут пригодиться при работе с большими наборами данных ArcSDE.

Оператор не равно (<>) также может использоваться в запро/ сах к строкам.

ЗАПРОСЫ К КАРТАМ

401

Ключевое слово NULL

Вы можете использовать ключевое слово NULL, чтобы отбирать объекты и записи, содержащие пустые поля.

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

[POPULATION96] IS NULL

или

[POPULATION] IS NOT NULL

Перед ключевым словом NULL всегда стоит IS или IS NOT.

Поиск цифровых значений

Вы можете запрашивать цифровые значения, используя опера/ торы равно (=), не равно (<>), больше (>), меньше (<), больше

или равно (>=) и меньше или равно (<=).

Например:

[POPULATION96] >= 5000

Цифровые значения всегда отображаются с точкой после деся/ тичных разрядов, независимо от ваших региональных настро/ ек. Для отделения десятичных знаков нельзя использовать за/ пятую.

Вычисления

Вычисления включаются в запросы с помощью математических

операторов: “+”, “ /”, “*”, “ /”.

Можно использовать вычисление между полем и числом.

Например:

"AREA" >= "PERIMETER" * 100

Так же можно использовать в выражении вычисление с несколь/ кими полями.

Например, чтобы найти районы с плотностью населения мень/ шим или равным 25 человек на 1 квадратный километр можно использовать вот такой запрос:

[POP1990] / [AREA] <= 25

Вычисления между полями не поддерживаются в покрытиях и шейп/файлах (а так же таблицах INFO и dBASE). Но для этих форматов можно включить вычисления между полем и числом.

Приоритет выражения в скобках

Обычно запросы выполняются слева направо, но выражения, заключенные в круглые скобки, выполняются первыми. Можно щелчком мышки добавить в выражение круглые скобки, а по/ том ввести внутри выражение, либо выделить существующее выражение и щелкнуть кнопку Круглые скобки, чтобы заклю/

чить его в них.

Например:

[HOUSEHOLDS] > [MALES] * [POP90_SQMI] + [AREA]

будет вычисляться не так, как:

[HOUSEHOLDS] > [MALES] * ([POP90_SQMI] + [AREA])

Комбинированные выражения

Комплексные запросы могут комбинироваться путем соедине/ ния выражений операторами AND (и) и OR (или).

Вот пример запроса для выборки всех домов с общей площадью более 500 квадратных метров и гаражом более чем на три ма/ шины:

[AREA] > 500 AND [GARAGE] > 3

402

ARCMAP. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Когда вы используете оператор OR, по крайней мере одно из двух разделенных оператором OR выражений, должно быть вер/ но для выбираемой записи.

Например:

[RAINFALL] < 20 OR [SLOPE] > 35

Используйте оператор NOT (не) в начале выражения, чтобы найти объекты или записи, не соответствующие условию выра/ жения.

Например:

NOT "STATE_NAME" = 'Colorado'

Оператор NOT можно комбинировать с AND и OR.

Вот пример запроса, где будут выбраны все штаты Новой Анг/ лии за исключением штата Мэн:

[SUB_REGION] = 'New England' AND NOT [STATE_NAME] = 'Maine'

Запрос к датам

Запрос к полям дат с помощью Конструктора запросов или диалогового окна Выбор по атрибуту

В ArcGIS 9 внесены некоторые изменения, касающиеся запро/ сов к полям, содержащим даты.

Чтобы осуществлять запросы к полям с датами, формат поля/ источника с датой автоматически показывается в списке уни/ кальных значений, или создается Мастером запросов.

Как правило, достаточно щелкнуть один раз по полю, один раз по оператору и затем по значению, чтобы сгенерировать запрос с правильным синтаксисом.

ЗАПРОСЫ К КАРТАМ

403

Способы поиска объектов по их расположению

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

Пересекаются контуром объектов

Этот метод выбирает объекты, на которые накладываются объ/ екты другого слоя. Например, при выборе зон обитания диких животных, пересекаемых контурами дорог, будут выбраны все зоны обитания диких животных, внутри границ которых име/ ются дороги.

Пересекают объекты

Этот метод аналогичен предыдущему, однако он также выбира/

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

Находятся в пределах расстояния от объектов

Этот метод выбирает объекты, находящиеся рядом с объектами в том же или другом слое. Например, если у вас есть слой с чис/ тыми и загрязненными колодцами, вы можете найти все чистые

колодцы в пределах 500 метров от загрязненных. Или же вы можете найти водные резервуары и фермы в других слоях, на/ ходящиеся в пределах заданного расстояния от загрязненных колодцев. Вы можете использовать этот вариант также для по/ иска объектов, смежных с другими объектами. Например, пред/ положим, что вы уже выбрали участки, которые собирается ку/

пить ваша компания, и теперь хотите получить информацию о

соседних участках. В этом случае вам нужно выбрать участки на нулевом расстоянии от участков, которые вы уже выбрали.

Имеют центр внутри объектов

Этот метод выбирает полигональные объекты слоя, центроиды которых находятся внутри полигональных объектов другого слоя.

Находятся полностью внутри объектов

Этот метод выбирает объекты одного слоя, целиком попадаю/ щие внутрь полигонов другого слоя. Например, вы можете вы/ брать озера, полностью находящиеся в пределах лесной зоны. Чтобы выбрать объекты, находящиеся на определенном рассто/ янии от границы полигонов, внутри которых они находятся, задайте буферное расстояние. Например, вы можете выбрать лесные озера, находящиеся как минимум на 500 метров вглубь леса.

Содержат полностью объекты

Вы можете выбирать объекты одного слоя, полностью содержа/ щие объекты другого слоя. Например, вы можете выбрать лес/ ные зоны, внутри которых есть озера, целиком расположенные в этих зонах. Чтобы выбрать полигоны, содержащие заданные объекты на определенном расстоянии от их границы, задайте буферное расстояние. Например, вы можете выбрать лесные зоны, внутри которых как минимум на 500 метров вглубь леса находятся озера.

Делят сегмент линии объектов

Этот метод выбирает объекты, имеющие общие сегменты ли/ ний, или вершины, или узлы, с заданными объектами.

404

ARCMAP. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Идентичны объектам

Этот метод выбирает объекты, имеющие такую же геометрию, что и объект другого слоя. Тип объектов должен быть один и тот же. Например, вы используете полигоны, чтобы выбрать полиго/ ны, линии, чтобы выбрать линии, и точки, чтобы выбрать точки.

Содержат объекты

Данный метод выбирает объекты в одном слое, которые содер/ жат объекты другого слоя. Этот метод отличается от метода Пол! ностью содержат тем, что границы объектов могут соприка/ саться. Например, используя метод Содержат, можно выбрать такой лес, содержащий озеро, граница которого частично про/ ходит по границе озера. Если бы вы использовали метод Полно! стью содержат, данный участок леса не был бы выбран.

Содержатся в объектах

Этот метод выбирает объекты слоя, которые содержатся внутри объектов другого слоя. Например, вы можете выбрать города, которые находятся в определенной стране. Данный метод отли/ чается от метода Полностью содержатся тем, что ребра объ/ ектов могут соприкасаться.

Касаются границы объектов

Если вы выбираете объекты из слоя, содержащего линии, этот метод выбирает линии и полигоны, имеющие общие сегменты, вершины и конечные точки с линиями слоя. Линии и полигоны,

пересекающие линии слоя, выбраны не будут.

Если вы выбираете объекты из слоя, содержащего полигоны, этот метод выбирает линии и полигоны, имеющие общие сег/ менты и вершины с границами полигонов. Линии и полигоны, пересекающие границы полигона, выбраны не будут.

Этот метод нельзя использовать для выбора точечных объектов.

ЗАПРОСЫ К КАРТАМ

405

Выбор объектов по их расположению

Предположим, вы хотите уз/ нать, сколько домов были затро/ нуты последним наводнением. Ответ на этот и другие вопро/ сы, можно получить через про/

странственный запрос. Вы хо/

тите найти пространственные объекты на основании того, как

они расположены по отноше/

нию к другим пространствен/ ным объектам. Например, если у вас есть границы зоны затоп/ ления, вы можете найти все дома, которые находятся в пре/ делах этой территории.

Путем комбинирования запро/ сов вы можете вести более слож/ ный поиск. Например, предпо/

ложим, что вы хотите найти всех покупателей, которые жи/

вут на расстоянии до 20 миль от вашего магазина и, кто недавно

делал покупки, чтобы вы могли

разослать им рекламные мате/ риалы. Сперва вы найдете по/

купателей, которые живут в

пределах заданного расстояния (выбор по расположению), а

затем уточните выборку, найдя тех покупателей, которые сде/

лали покупки в течение послед/

них шести месяцев, в соответ/ ствии со значением атрибута «дата последней покупки» (вы/ бор по атрибуту).

1.Щелкните Выборка, и затем " Выбрать по расположению.

2.Нажмите на стрелку вниз и выберите операцию.

3.Поставьте отметку возле слоя(ев), из которых вы соби" раетесь выбирать объекты.

4.Щелкните стрелку вниз и вы" берите метод выбора.

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

6.Включите опцию Использо" вать выбранные объекты.

7.Включите опцию Применить буфер к объектам в слое <Имя слоя> и введите расстояние, в пределах которого нужно ис" кать объекты.

8.Нажмите Применить.

9.Если вы закончили выбирать объекты, щелкните Закрыть.

1

2

3

4

5

6

7

8 9

406

ARCMAP. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Как выделять выбранные объекты

Вы можете отображать вы/ бранные объекты любым цве/ том или знаком. Вы можете оп/ ределять этот параметр для всех слоев сразу или только для одного слоя.

Настройка цвета выбранных объектов для всех слоев

1.В меню Выборка щелкните Опции.

2.Щелкните в окне Цвет выбор" ки и выберите цвет, который вы хотите использовать.

Для полигонов это цвет, кото"

рым выделяется контур. Для 2 линий и точек это цвет, кото"

рым выделяется весь объект.

3. Щелкните ОК.

Настройка цвета выбранных объектов 2 для одного слоя

1.Дважды щелкните на слое в таблице содержания, чтобы открыть диалог Свойства слоя.

2. Откройте закладку Выборка.

3

3.Чтобы отобразить выбранные объекты определенным цве" том, включите третью опцию и выберите цвет.

4.Щелкните ОК.

Эта установка перекрывает любые установки, которые вы делаете в диалоговом окне Опции выборки.

ЗАПРОСЫ К КАРТАМ

407

Отображение информации о выбранных объектах

После того, как вы выбрали объекты, вы можете увеличи/ вать изображение для просмо/ тра выбранных объектов, про/ сматривать их атрибуты и ста/ тистические данные. Вы може/ те также построить по ним от/ чет или диаграмму. Информа/ цию о том, как создавать отче/

ты и диаграммы, вы найдете в

Главе 11, “Представление дан/ ных с помощью диаграмм” и в

Главе 12, “Создание отчетов”.

Масштабирование для отображения выбранных объектов

1. Нажмите правой кнопкой мыши на слой с выбранными 1 объектами в таблице содержа"

ния.

2.В меню Выборка щелкните Приблизить к выбранным объ" ектам.

ArcMap меняет размеры изоб" ражения так, чтобы стали вид" ны все выбранные объекты.

2

Отображение атрибутов выбранных объектов

1.Нажмите правой кнопкой мыши на слой с выбранными объектами в таблице содержа" ния и щелкните Открыть таб" лицу атрибутов.

1

2. Щелкните Показать Выбран" ные.

Отображаются записи, соот" ветствующие выбранным объ" ектам.

2

408

ARCMAP. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]