Доступно с лицензией Standard или Advanced.
- Создайте пустой класс пространственных объектов в ArcCatalog
- Определите SRID для класса пространственных объектов
- Определите REGISTRATION_ID для класса пространственных объектов.
- Вставьте объекты с помощью SQL
- Примените определяющий запрос
- Сравнение результатов определяющего запроса с результатами выборок Выбрать по атрибуту и Выбрать по расположению
Одним из ключевых моментов при использовании пространственных типов в ArcGIS является возможность добавления и редактирования геометрии с помощью SQL. Примеры, приведенные в данном разделе, покажут вам, как создавать класс объектов, используя ArcGIS Desktop, и затем редактировать его с помощью SQL. Пространственная выборка также выполняется для класса объектов, используя SQL и ArcGIS Desktop, чтобы показать, что результаты будут одинаковыми.
Создайте пустой класс пространственных объектов в ArcCatalog
Данный пример продемонстрирует вам, как создать пустой класс объектов в ArcCatalog
- Запустите ArcCatalog и разверните папку Подключения к базам данных в дереве Каталога.
- Подключитесь к базе геоданных, в которой вы будете создавать пустой класс объектов, содержащий столбец ST_Geometry.
Убедитесь, что вы подключились, как пользователь, который может создавать данные в базе данных.
- Щелкните правой кнопкой мыши на базе геоданных, выберите пункт Новый, затем нажмите Класс пространственных объектов.
- Введите buildings в текстовое поле Имя.
- В данном случае типом класса объектов является полигон, поэтому убедитесь, что выбран пункт Полигональные объекты для опции Тип и нажмите Далее.
- Выберите NAD_1983_UTM_Zone_13N в качестве системы координат. Чтобы сделать это, разверните папку Системы координат проекций, разверните папку UTM, затем разверните папку NAD 1983 и щелкните на NAD 1983 UTM Zone 13N.
- Щелкните Далее (Next).
- Нажмите Далее, чтобы принять допуск x,y по умолчанию.
- Ключевое слово конфигурации, которое вы будете использовать, зависит от того, какое значение вы установили для параметра GEOMETRY_STORAGE ключевого слова DEFAULTS в таблице DBTUNE.
- Если вы создаете класс объектов в базе геоданных в IBM Db2 или Informix, или если вы создаете класс объектов в базе геоданных в Oracle или PostgreSQL, которые используют ST_Geometry для хранения геометрии по умолчанию, вы можете принять ключевое слово конфигурации по умолчанию и нажать Далее.
- Если вы создаете класс объектов в базе геоданных в Oracle или PostgreSQL, которая использует другой тип хранения геометрии по умолчанию, отличный от ST_Geometry, выберите Использовать ключевое слово конфигурации, выберите ключевое слово конфигурации, которое хранит тип GEOMETRY_STORAGE для ST_GEOMETRY, из ниспадающего списка, и затем нажмите Далее.
- Добавьте следующие поля атрибутов с данными определениями, вводя имя поля в текстовое поле Имя поля, выбирая тип данных из ниспадающего списка Тип данных и затем вводя длину, где необходимо.
Имя поля Тип данных Свойства поля FID
Long Integer
Разрешить значения NULL
TYPE
Text
Длина = 3
Разрешить значения NULL
SUBTYPE
Text
Длина = 6
Разрешить значения NULL
- Щелкните Готово (Finish).
У вас теперь есть класс объектов с названием buildings. Далее используйте SQL, чтобы определить идентификатор пространственной привязки (SRID) и добавить объекты в класс объектов.
Определите SRID для класса пространственных объектов
Перед тем как вы сможете добавлять объекты в класс пространственных объектов, необходимо определить значение SRID для класса объектов. SRID присваивается при создании класса объектов в базе геоданных, и хранится в различных системных таблицах базы геоданных.
Чтобы определить идентификатор SRID для ST_Geometry у того класса объектов, который вы создали, используйте SQL-выражение SELECT, чтобы выбрать значение SRID из таблицы ST_GEOMETRY_COLUMNS в Oracle, таблицы geometry_columns в Informix и Db2 или таблицы sde_geometry_columns в PostgreSQL.
- Откройте редактор SQL, например, SQL*Plus для Oracle или psql для PostgreSQL.
Убедитесь, что вы вошли под тем же пользователем, под которым вы создавали класс объектов buildings в ArcGIS Desktop.
- Выполните следующие SQL-выражения, чтобы определить SRID для класса объектов.
-
Oracle
SELECT table_name, srid FROM sde.st_geometry_columns WHERE table_name = 'BUILDINGS';
-
PostgreSQL
SELECT f_table_name, srid FROM sde.sde_geometry_columns WHERE f_table_name = 'buildings';
- Db2
SELECT layer_table, srid FROM db2gse.geometry_columns WHERE layer_table = 'BUILDINGS';
-
Informix
SELECT f_table_name, srid FROM sde.geometry_columns WHERE f_table_name = 'buildings';
-
Oracle
Идентификатор SRID, полученный в результате этих запросов, используется при добавлении записей в класс объектов.
Определите REGISTRATION_ID для класса пространственных объектов.
Перед добавлением записей в ваш класс объектов, используя SQL, вы должны выполнить запрос к таблице TABLE_REGISTRY, чтобы получить значение REGISTRATION_ID класса объектов.
Oracle
SELECT registration_id
FROM sde.table_registry
WHERE table_name = 'BUILDINGS'
AND owner = 'NEYES';
REGISTRATION_ID
40
PostgreSQL
SELECT registration_id FROM sde.sde_table_registry WHERE table_name = 'buildings' AND owner = 'neyes';
REGISTRATION_ID
40
Db2
SELECT registration_id FROM sde.table_registry WHERE table_name = 'BUILDINGS' AND owner = 'NEYES';
REGISTRATION_ID
40
Informix
SELECT registration_id FROM sde.table_registry WHERE table_name = 'buildings' AND owner = 'neyes';
REGISTRATION_ID
40
Вы будете использовать число, полученное в результате этого запроса, чтобы получить значение objectID.
Все классы объектов содержат столбец objectID. Значения в этом столбце генерируются базой геоданных. Поэтому, когда вы добавляете записи в существующий класс объектов, используя SQL, вы должны запускать утилиту, как часть команды SQL, чтобы получить и добавить следующее доступное значение objectID в столбец objectID.
Вставьте объекты с помощью SQL
Используйте редактор SQL, чтобы добавить записи в бизнес-таблицу класса объектов, затем просмотрите объекты в ArcCatalog.
Используйте полученные ранее значения SRID и REGISTRATION_ID при добавлении записей в класс объектов.
Для получения значения object ID используйте утилиту, предназначенную для вашей СУБД. В Oracle и PostgreSQL вы можете использовать утилиту в подзапросе, чтобы получить значение object ID. В Db2 и Informix вы выполняете утилиту, чтобы получить значение object ID; затем вы используете это значение в выражении INSERT.
- Выполните следующие команды, чтобы добавить объекты в класс пространственных объектов.
Убедитесь, что вы используете собственное значение SRID для вашего класса объектов вместо значения 26913 в конце выражения INSERT, для имени пользователя – имя владельца класса объектов вместо tbl_owner, и ваш идентификатор REGISTRATION_ID для вашего класса объектов вместо значения 40 в запросе утилиты.
- Oracle
INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 18907, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219520.56768649 387051.66985716, 2219525.34823696 387079.52399077, 2219536.03133855 387077.71905252, 2219539.05578917 387095.47546386, 2219528.17754562 387097.32910505, 2219528.61661291 387099.81695550, 2219489.00622816 387106.54876471, 2219480.81097279 387058.40167483, 2219520.56768649 387051.66985716))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 19053, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219612.86639158 386903.72709265, 2219612.86832175 386907.20474822, 2219619.82528792 386906.03131444, 2219624.05814397 386930.50637511, 2219602.30717225 386934.19443199, 2219602.68435556 386936.33176596, 2219595.81121637 386937.54715132, 2219595.51783041 386935.61930861, 2219582.14872687 386937.88243384, 2219577.95779702 386913.07208642, 2219595.22446985 386910.09649113, 2219593.59000886 386900.45735373, 2219612.86269632 386897.06148069, 2219612.86639158 386903.72709265))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 19136, 'BLD', 'BLD', sde.st_geoometry ('polygon (( 2219733.93687411 386826.88586815, 2219735.30274506 386834.88599003, 2219725.20502702 386836.59337847, 2219723.83915606 386828.59325658, 2219733.93687411 386826.88586815))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 18822, 'BLD', 'BLD', sde.st_geometry ('polygon (( 2219318.56450844 387185.37926723, 2219320.27185454 387197.62335210, 2219311.29614139 387198.94049048, 2219309.58880798 387186.69635058, 2219318.56450844 387185.37926723))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES sde.version_user_ddl.next_row_id('tbl_owner', 40), 19095, 'BLD', 'BLD', sde.st_geometry ('polygon (( 2219357.88220142 386887.66730143, 2219360.46761861 386898.54553227, 2219350.56500020 386900.98462474, 2219347.97961264 386890.10638120, 2219357.88220142 386887.66730143))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES sde.version_user_ddl.next_row_id('tbl_owner', 40), 18863, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219640.86224883 387097.71935934, 2219658.37473060 387147.67138324, 2219620.66681275 387160.89111018, 2219609.69104055 387129.67108043, 2219619.00825848 387126.35393804, 2219612.47155737 387107.67078229, 2219640.86224883 387097.71935934))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES sde.version_user_ddl.next_row_id('tbl_owner', 40), 19038, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219498.86004627 386911.32623002, 2219505.93331369 386953.22930633, 2219453.63980640 386962.05871170, 2219448.56655992 386931.86309469, 2219465.10339963 386929.08257787, 2219463.15216206 386917.37511856, 2219498.86004627 386911.32623002))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 18859, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219537.93380545 387110.93908628, 2219546.81201112 387161.33014361, 2219498.76248799 387169.86682333, 2219493.68920765 387140.93957403, 2219516.07980240 387136.98828165, 2219512.32366468 387115.52454135, 2219537.93380545 387110.93908628))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 18921, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219630.32549736 387032.49884228, 2219638.42319022 387080.93859854, 2219602.27627682 387087.03625775, 2219599.44695969 387070.06042272, 2219594.95910946 387070.84088050, 2219589.69069987 387039.32824786, 2219630.32549736 387032.49884228))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 18000, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219428.55884565 386927.35910468, 2219434.90911597 386965.59318031, 2219412.50672431 386969.25340210, 2219412.90361568 386971.59064420, 2219405.49494299 386972.82544978, 2219405.18625535 386970.70870430, 2219391.47137188 386973.00185724, 2219387.14966448 386946.93921840, 2219404.70113486 386944.07272009, 2219402.67258040 386931.63676100, 2219428.55884565 386927.35910468))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 19116, 'BLD', 'BLD', sde.st_geometry ('polygon (( 2219672.66761980 386847.66674281, 2219676.37499955 386866.54504475, 2219663.35040187 386869.13042807, 2219659.64303058 386850.25207534, 2219672.66761980 386847.66674281))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 18962, 'BLD', 'BLD', sde.st_geometry ('polygon (( 2219556.03164537 387046.25513130, 2219557.49509154 387055.03576599, 2219547.05591105 387056.74309940, 2219545.59246912 387047.96251973, 2219556.03164537 387046.25513130))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 18833, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219383.93139678 387137.86633157, 2219389.05343086 387190.74523511, 2219359.00421054 387193.57452260, 2219353.93090903 387140.69568256, 2219383.93139678 387137.86633157))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 18884, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219373.44344985 387075.37756489, 2219382.32162166 387124.54907598, 2219362.80911894 387128.11010561, 2219359.44323973 387109.62200293, 2219339.54046156 387113.28058238, 2219333.97942791 387082.54840752, 2219373.44344985 387075.37756489))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 19071, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219682.28129249 386891.68291590, 2219686.92111827 386918.49082923, 2219640.56580254 386926.48163888, 2219635.92597252 386899.67372556, 2219682.28129249 386891.68291590))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 19044, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219553.98285375 386902.15533258, 2219555.78774544 386913.03356343, 2219560.95856289 386912.15551350, 2219565.78790520 386940.83886287, 2219517.98226930 386948.93658960, 2219513.15292276 386920.20440606, 2219516.17736068 386919.66779319, 2219514.37246900 386908.88714178, 2219553.98285375 386902.15533258))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 19027, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219363.11822986 386945.42381000, 2219367.93141545 386973.32232908, 2219320.06718025 386981.52254956, 2219315.29857060 386953.62397969, 2219363.11822986 386945.42381000))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 19082, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219744.18548833 386871.29585958, 2219746.55761318 386884.95597445, 2219743.44931865 386885.52860025, 2219747.49828784 386908.59539393, 2219704.96369012 386916.03897901, 2219700.42393269 386890.23190579, 2219729.62557524 386885.11957759, 2219727.74423440 386874.19963643, 2219744.18548833 386871.29585958))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 19105, 'BLD', 'BLD', sde.st_geometry ('polygon (( 2219424.32229434 386872.05730772, 2219426.12719873 386882.05749711, 2219416.56607240 386883.81360119, 2219414.76116801 386873.81342026, 2219424.32229434 386872.05730772))', 26913) ); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('tbl_owner', 40), 19120, 'BLD', 'BLD', sde.st_geometry ('polygon (( 2219553.73895382 386851.52038802, 2219555.25115373 386859.91077266, 2219545.25100667 386861.81323532, 2219543.69000222 386853.42285069, 2219553.73895382 386851.52038802))', 26913) ); COMMIT;
- PostgreSQL
Замените gis в имени функции на имя пользователя, под которым вы создавали класс объектов buildings. Также, убедитесь, что вы используете собственное значение SRID для вашего класса объектов вместо значения 26913 в конце выражения INSERT и идентификатор REGISTRATION_ID для вашего класса объектов вместо значения 40 в имени функции get_ids.
INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 18907, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219520.56768649 387051.66985716, 2219525.34823696 387079.52399077, 2219536.03133855 387077.71905252, 2219539.05578917 387095.47546386, 2219528.17754562 387097.32910505, 2219528.61661291 387099.81695550, 2219489.00622816 387106.54876471, 2219480.81097279 387058.40167483, 2219520.56768649 387051.66985716))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 19053, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219612.86639158 386903.72709265, 2219612.86832175 386907.20474822, 2219619.82528792 386906.03131444, 2219624.05814397 386930.50637511, 2219602.30717225 386934.19443199, 2219602.68435556 386936.33176596, 2219595.81121637 386937.54715132, 2219595.51783041 386935.61930861, 2219582.14872687 386937.88243384, 2219577.95779702 386913.07208642, 2219595.22446985 386910.09649113, 2219593.59000886 386900.45735373, 2219612.86269632 386897.06148069, 2219612.86639158 386903.72709265))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 19136, 'BLD', 'BLD', sde.st_geoometry ('polygon (( 2219733.93687411 386826.88586815, 2219735.30274506 386834.88599003, 2219725.20502702 386836.59337847, 2219723.83915606 386828.59325658, 2219733.93687411 386826.88586815))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 18822, 'BLD', 'BLD', sde.st_geometry ('polygon (( 2219318.56450844 387185.37926723, 2219320.27185454 387197.62335210, 2219311.29614139 387198.94049048, 2219309.58880798 387186.69635058, 2219318.56450844 387185.37926723))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 19095, 'BLD', 'BLD', sde.st_geometry ('polygon (( 2219357.88220142 386887.66730143, 2219360.46761861 386898.54553227, 2219350.56500020 386900.98462474, 2219347.97961264 386890.10638120, 2219357.88220142 386887.66730143))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 18863, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219640.86224883 387097.71935934, 2219658.37473060 387147.67138324, 2219620.66681275 387160.89111018, 2219609.69104055 387129.67108043, 2219619.00825848 387126.35393804, 2219612.47155737 387107.67078229, 2219640.86224883 387097.71935934))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 19038, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219498.86004627 386911.32623002, 2219505.93331369 386953.22930633, 2219453.63980640 386962.05871170, 2219448.56655992 386931.86309469, 2219465.10339963 386929.08257787, 2219463.15216206 386917.37511856, 2219498.86004627 386911.32623002))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 18859, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219537.93380545 387110.93908628, 2219546.81201112 387161.33014361, 2219498.76248799 387169.86682333, 2219493.68920765 387140.93957403, 2219516.07980240 387136.98828165, 2219512.32366468 387115.52454135, 2219537.93380545 387110.93908628))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 18921, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219630.32549736 387032.49884228, 2219638.42319022 387080.93859854, 2219602.27627682 387087.03625775, 2219599.44695969 387070.06042272, 2219594.95910946 387070.84088050, 2219589.69069987 387039.32824786, 2219630.32549736 387032.49884228))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 18000, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219428.55884565 386927.35910468, 2219434.90911597 386965.59318031, 2219412.50672431 386969.25340210, 2219412.90361568 386971.59064420, 2219405.49494299 386972.82544978, 2219405.18625535 386970.70870430, 2219391.47137188 386973.00185724, 2219387.14966448 386946.93921840, 2219404.70113486 386944.07272009, 2219402.67258040 386931.63676100, 2219428.55884565 386927.35910468))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 19116, 'BLD', 'BLD', sde.st_geometry ('polygon (( 2219672.66761980 386847.66674281, 2219676.37499955 386866.54504475, 2219663.35040187 386869.13042807, 2219659.64303058 386850.25207534, 2219672.66761980 386847.66674281))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 18962, 'BLD', 'BLD', sde.st_geometry ('polygon (( 2219556.03164537 387046.25513130, 2219557.49509154 387055.03576599, 2219547.05591105 387056.74309940, 2219545.59246912 387047.96251973, 2219556.03164537 387046.25513130))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 18833, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219383.93139678 387137.86633157, 2219389.05343086 387190.74523511, 2219359.00421054 387193.57452260, 2219353.93090903 387140.69568256, 2219383.93139678 387137.86633157))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 18884, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219373.44344985 387075.37756489, 2219382.32162166 387124.54907598, 2219362.80911894 387128.11010561, 2219359.44323973 387109.62200293, 2219339.54046156 387113.28058238, 2219333.97942791 387082.54840752, 2219373.44344985 387075.37756489))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 19071, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219682.28129249 386891.68291590, 2219686.92111827 386918.49082923, 2219640.56580254 386926.48163888, 2219635.92597252 386899.67372556, 2219682.28129249 386891.68291590))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 19044, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219553.98285375 386902.15533258, 2219555.78774544 386913.03356343, 2219560.95856289 386912.15551350, 2219565.78790520 386940.83886287, 2219517.98226930 386948.93658960, 2219513.15292276 386920.20440606, 2219516.17736068 386919.66779319, 2219514.37246900 386908.88714178, 2219553.98285375 386902.15533258))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 19027, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219363.11822986 386945.42381000, 2219367.93141545 386973.32232908, 2219320.06718025 386981.52254956, 2219315.29857060 386953.62397969, 2219363.11822986 386945.42381000))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 19082, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219744.18548833 386871.29585958, 2219746.55761318 386884.95597445, 2219743.44931865 386885.52860025, 2219747.49828784 386908.59539393, 2219704.96369012 386916.03897901, 2219700.42393269 386890.23190579, 2219729.62557524 386885.11957759, 2219727.74423440 386874.19963643, 2219744.18548833 386871.29585958))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 19105, 'BLD', 'BLD', sde.st_geometry ('polygon (( 2219424.32229434 386872.05730772, 2219426.12719873 386882.05749711, 2219416.56607240 386883.81360119, 2219414.76116801 386873.81342026, 2219424.32229434 386872.05730772))', 26913) ); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES ((SELECT o_base_id FROM gis.i40_get_ids(2,1)), 19120, 'BLD', 'BLD', sde.st_geometry ('polygon (( 2219553.73895382 386851.52038802, 2219555.25115373 386859.91077266, 2219545.25100667 386861.81323532, 2219543.69000222 386853.42285069, 2219553.73895382 386851.52038802))', 26913) );
- Db2
Для каждой добавляемой записи вам необходимо значение идентификатора объекта object ID. Вызовите процедуру next_row_id, чтобы получить это значение.
CALL SDE.next_row_id('tbl_owner',40,?,?,?) Value of output parameters Parameter Name : O_ROWID Parameter Value : 43 Parameter Name : O_MSGCODE Parameter Value : 0 Parameter Name : O_MESSAGE Parameter value : Procedure successfully completed. Return status = 1
Повторите это для каждого выражения INSERT. Так как вы добавляете 20 записей, вам понадобится 20 значений.
Убедитесь, что вы используете собственное значение SRID для вашего класса объектов вместо значения 26913 в конце каждого из выражений INSERT.
INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (43, 18907, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219520.56768649 387051.66985716, 2219525.34823696 387079.52399077, 2219536.03133855 387077.71905252, 2219539.05578917 387095.47546386, 2219528.17754562 387097.32910505, 2219528.61661291 387099.81695550, 2219489.00622816 387106.54876471, 2219480.81097279 387058.40167483, 2219520.56768649 387051.66985716))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (44, 19053, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219612.86639158 386903.72709265, 2219612.86832175 386907.20474822, 2219619.82528792 386906.03131444, 2219624.05814397 386930.50637511, 2219602.30717225 386934.19443199, 2219602.68435556 386936.33176596, 2219595.81121637 386937.54715132, 2219595.51783041 386935.61930861, 2219582.14872687 386937.88243384, 2219577.95779702 386913.07208642, 2219595.22446985 386910.09649113, 2219593.59000886 386900.45735373, 2219612.86269632 386897.06148069, 2219612.86639158 386903.72709265))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (45, 19136, 'BLD', 'BLD', db2gse.st_geometry ('polygon (( 2219733.93687411 386826.88586815, 2219735.30274506 386834.88599003, 2219725.20502702 386836.59337847, 2219723.83915606 386828.59325658, 2219733.93687411 386826.88586815))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (46, 18822, 'BLD', 'BLD', db2gse.st_geometry ('polygon (( 2219318.56450844 387185.37926723, 2219320.27185454 387197.62335210, 2219311.29614139 387198.94049048, 2219309.58880798 387186.69635058, 2219318.56450844 387185.37926723))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (47, 19095, 'BLD', 'BLD', db2gse.st_geometry ('polygon (( 2219357.88220142 386887.66730143, 2219360.46761861 386898.54553227, 2219350.56500020 386900.98462474, 2219347.97961264 386890.10638120, 2219357.88220142 386887.66730143))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (48, 18863, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219640.86224883 387097.71935934, 2219658.37473060 387147.67138324, 2219620.66681275 387160.89111018, 2219609.69104055 387129.67108043, 2219619.00825848 387126.35393804, 2219612.47155737 387107.67078229, 2219640.86224883 387097.71935934))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (49, 19038, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219498.86004627 386911.32623002, 2219505.93331369 386953.22930633, 2219453.63980640 386962.05871170, 2219448.56655992 386931.86309469, 2219465.10339963 386929.08257787, 2219463.15216206 386917.37511856, 2219498.86004627 386911.32623002))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (50, 18859, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219537.93380545 387110.93908628, 2219546.81201112 387161.33014361, 2219498.76248799 387169.86682333, 2219493.68920765 387140.93957403, 2219516.07980240 387136.98828165, 2219512.32366468 387115.52454135, 2219537.93380545 387110.93908628))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (51, 18921, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219630.32549736 387032.49884228, 2219638.42319022 387080.93859854, 2219602.27627682 387087.03625775, 2219599.44695969 387070.06042272, 2219594.95910946 387070.84088050, 2219589.69069987 387039.32824786, 2219630.32549736 387032.49884228))', 26913)); INSERT INTO BUILDINGS (objectid, fid, subtype, shape) VALUES (52, 18000, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219428.55884565 386927.35910468, 2219434.90911597 386965.59318031, 2219412.50672431 386969.25340210, 2219412.90361568 386971.59064420, 2219405.49494299 386972.82544978, 2219405.18625535 386970.70870430, 2219391.47137188 386973.00185724, 2219387.14966448 386946.93921840, 2219404.70113486 386944.07272009, 2219402.67258040 386931.63676100, 2219428.55884565 386927.35910468))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (53, 19116, 'BLD', 'BLD', db2gse.st_geometry ('polygon (( 2219672.66761980 386847.66674281, 2219676.37499955 386866.54504475, 2219663.35040187 386869.13042807, 2219659.64303058 386850.25207534, 2219672.66761980 386847.66674281))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (54, 18962, 'BLD', 'BLD', db2gse.st_geometry ('polygon (( 2219556.03164537 387046.25513130, 2219557.49509154 387055.03576599, 2219547.05591105 387056.74309940, 2219545.59246912 387047.96251973, 2219556.03164537 387046.25513130))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (55, 18833, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219383.93139678 387137.86633157, 2219389.05343086 387190.74523511, 2219359.00421054 387193.57452260, 2219353.93090903 387140.69568256, 2219383.93139678 387137.86633157))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (56, 18884, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219373.44344985 387075.37756489, 2219382.32162166 387124.54907598, 2219362.80911894 387128.11010561, 2219359.44323973 387109.62200293, 2219339.54046156 387113.28058238, 2219333.97942791 387082.54840752, 2219373.44344985 387075.37756489))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (57, 19071, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219682.28129249 386891.68291590, 2219686.92111827 386918.49082923, 2219640.56580254 386926.48163888, 2219635.92597252 386899.67372556, 2219682.28129249 386891.68291590))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (58, 19044, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219553.98285375 386902.15533258, 2219555.78774544 386913.03356343, 2219560.95856289 386912.15551350, 2219565.78790520 386940.83886287, 2219517.98226930 386948.93658960, 2219513.15292276 386920.20440606, 2219516.17736068 386919.66779319, 2219514.37246900 386908.88714178, 2219553.98285375 386902.15533258))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (59, 19027, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219363.11822986 386945.42381000, 2219367.93141545 386973.32232908, 2219320.06718025 386981.52254956, 2219315.29857060 386953.62397969, 2219363.11822986 386945.42381000))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (60, 19082, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219744.18548833 386871.29585958, 2219746.55761318 386884.95597445, 2219743.44931865 386885.52860025, 2219747.49828784 386908.59539393, 2219704.96369012 386916.03897901, 2219700.42393269 386890.23190579, 2219729.62557524 386885.11957759, 2219727.74423440 386874.19963643, 2219744.18548833 386871.29585958))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (61, 19105, 'BLD', 'BLD', db2gse.st_geometry ('polygon (( 2219424.32229434 386872.05730772, 2219426.12719873 386882.05749711, 2219416.56607240 386883.81360119, 2219414.76116801 386873.81342026, 2219424.32229434 386872.05730772))', 26913)); INSERT INTO BUILDINGS (objectid, fid, type, subtype, shape) VALUES (62, 19120, 'BLD', 'BLD', db2gse.st_geometry ('polygon (( 2219553.73895382 386851.52038802, 2219555.25115373 386859.91077266, 2219545.25100667 386861.81323532, 2219543.69000222 386853.42285069, 2219553.73895382 386851.52038802))', 26913)); COMMIT;
- Informix
Для каждой добавляемой записи вам необходимо значение идентификатора объекта object ID. Выполните функцию next_row_id, чтобы получить это значение.
EXECUTE FUNCTION "sde".next_row_id('tbl_owner',40); ret_code 0 err_msg rowid 31 1 row(s) retrieved.
Повторите это для каждого выражения INSERT. Так как вы добавляете 20 записей, вам понадобится 20 значений.
Убедитесь, что вы используете собственное значение SRID для вашего класса объектов вместо значения 26913 в конце каждого из выражений INSERT.
INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (31, 18907, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219520.56768649 387051.66985716, 2219525.34823696 387079.52399077, 2219536.03133855 387077.71905252, 2219539.05578917 387095.47546386, 2219528.17754562 387097.32910505, 2219528.61661291 387099.81695550, 2219489.00622816 387106.54876471, 2219480.81097279 387058.40167483, 2219520.56768649 387051.66985716))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (32, 19053, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219612.86639158 386903.72709265, 2219612.86832175 386907.20474822, 2219619.82528792 386906.03131444, 2219624.05814397 386930.50637511, 2219602.30717225 386934.19443199, 2219602.68435556 386936.33176596, 2219595.81121637 386937.54715132, 2219595.51783041 386935.61930861, 2219582.14872687 386937.88243384, 2219577.95779702 386913.07208642, 2219595.22446985 386910.09649113, 2219593.59000886 386900.45735373, 2219612.86269632 386897.06148069, 2219612.86639158 386903.72709265))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (33, 19136, 'BLD', 'BLD', db2gse.st_geoometry ('polygon (( 2219733.93687411 386826.88586815, 2219735.30274506 386834.88599003, 2219725.20502702 386836.59337847, 2219723.83915606 386828.59325658, 2219733.93687411 386826.88586815))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (34, 18822, 'BLD', 'BLD', db2gse.st_geometry ('polygon (( 2219318.56450844 387185.37926723, 2219320.27185454 387197.62335210, 2219311.29614139 387198.94049048, 2219309.58880798 387186.69635058, 2219318.56450844 387185.37926723))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (35, 19095, 'BLD', 'BLD', db2gse.st_geometry ('polygon (( 2219357.88220142 386887.66730143, 2219360.46761861 386898.54553227, 2219350.56500020 386900.98462474, 2219347.97961264 386890.10638120, 2219357.88220142 386887.66730143))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (36, 18863, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219640.86224883 387097.71935934, 2219658.37473060 387147.67138324, 2219620.66681275 387160.89111018, 2219609.69104055 387129.67108043, 2219619.00825848 387126.35393804, 2219612.47155737 387107.67078229, 2219640.86224883 387097.71935934))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (37, 19038, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219498.86004627 386911.32623002, 2219505.93331369 386953.22930633, 2219453.63980640 386962.05871170, 2219448.56655992 386931.86309469, 2219465.10339963 386929.08257787, 2219463.15216206 386917.37511856, 2219498.86004627 386911.32623002))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (38, 18859, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219537.93380545 387110.93908628, 2219546.81201112 387161.33014361, 2219498.76248799 387169.86682333, 2219493.68920765 387140.93957403, 2219516.07980240 387136.98828165, 2219512.32366468 387115.52454135, 2219537.93380545 387110.93908628))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (39, 18921, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219630.32549736 387032.49884228, 2219638.42319022 387080.93859854, 2219602.27627682 387087.03625775, 2219599.44695969 387070.06042272, 2219594.95910946 387070.84088050, 2219589.69069987 387039.32824786, 2219630.32549736 387032.49884228))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (40, 18000, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219428.55884565 386927.35910468, 2219434.90911597 386965.59318031, 2219412.50672431 386969.25340210, 2219412.90361568 386971.59064420, 2219405.49494299 386972.82544978, 2219405.18625535 386970.70870430, 2219391.47137188 386973.00185724, 2219387.14966448 386946.93921840, 2219404.70113486 386944.07272009, 2219402.67258040 386931.63676100, 2219428.55884565 386927.35910468))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (41, 19116, 'BLD', 'BLD', db2gse.st_geometry ('polygon (( 2219672.66761980 386847.66674281, 2219676.37499955 386866.54504475, 2219663.35040187 386869.13042807, 2219659.64303058 386850.25207534, 2219672.66761980 386847.66674281))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (42, 18962, 'BLD', 'BLD', db2gse.st_geometry ('polygon (( 2219556.03164537 387046.25513130, 2219557.49509154 387055.03576599, 2219547.05591105 387056.74309940, 2219545.59246912 387047.96251973, 2219556.03164537 387046.25513130))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (43, 18833, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219383.93139678 387137.86633157, 2219389.05343086 387190.74523511, 2219359.00421054 387193.57452260, 2219353.93090903 387140.69568256, 2219383.93139678 387137.86633157))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (44, 18884, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219373.44344985 387075.37756489, 2219382.32162166 387124.54907598, 2219362.80911894 387128.11010561, 2219359.44323973 387109.62200293, 2219339.54046156 387113.28058238, 2219333.97942791 387082.54840752, 2219373.44344985 387075.37756489))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (45, 19071, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219682.28129249 386891.68291590, 2219686.92111827 386918.49082923, 2219640.56580254 386926.48163888, 2219635.92597252 386899.67372556, 2219682.28129249 386891.68291590))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (46, 19044, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219553.98285375 386902.15533258, 2219555.78774544 386913.03356343, 2219560.95856289 386912.15551350, 2219565.78790520 386940.83886287, 2219517.98226930 386948.93658960, 2219513.15292276 386920.20440606, 2219516.17736068 386919.66779319, 2219514.37246900 386908.88714178, 2219553.98285375 386902.15533258))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (47, 19027, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219363.11822986 386945.42381000, 2219367.93141545 386973.32232908, 2219320.06718025 386981.52254956, 2219315.29857060 386953.62397969, 2219363.11822986 386945.42381000))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (48, 19082, 'BLD', 'RES', db2gse.st_geometry ('polygon (( 2219744.18548833 386871.29585958, 2219746.55761318 386884.95597445, 2219743.44931865 386885.52860025, 2219747.49828784 386908.59539393, 2219704.96369012 386916.03897901, 2219700.42393269 386890.23190579, 2219729.62557524 386885.11957759, 2219727.74423440 386874.19963643, 2219744.18548833 386871.29585958))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (49, 19105, 'BLD', 'BLD', db2gse.st_geometry ('polygon (( 2219424.32229434 386872.05730772, 2219426.12719873 386882.05749711, 2219416.56607240 386883.81360119, 2219414.76116801 386873.81342026, 2219424.32229434 386872.05730772))', 26913)); INSERT INTO buildings (objectid, fid, type, subtype, shape) VALUES (50, 19120, 'BLD', 'BLD', db2gse.st_geometry ('polygon (( 2219553.73895382 386851.52038802, 2219555.25115373 386859.91077266, 2219545.25100667 386861.81323532, 2219543.69000222 386853.42285069, 2219553.73895382 386851.52038802))', 26913)); COMMIT;
- Oracle
- Запустите ArcMap.
- Щелкните кнопку окна Каталог, чтобы открыть окно Каталога.
- Подключитесь к базе геоданных, в которой вы создали класс объектов buildings.
- Перетащите класс объектов buildings в таблицу содержания ArcMap.
Вы можете видеть объекты, которые вы добавили в класс объектов с помощью SQL.
Примените определяющий запрос
Вы можете применить определяющий запрос к слою, чтобы отобразить пространственные объекты с нужными атрибутами. Например, вам может потребоваться отобразить только те города, население в которых превышает определенный порог. Вы можете ввести собственное выражение или использовать Конструктор запросов, который поможет вам построить выражение запроса. Чтобы вернуть отображение всех пространственных объектов, удалите запрос.
При работе с пространственными типами, выполняемый в ArcMap определяющий запрос может иметь пространственный компонент. Запросы могут включать вызовы встроенных процедур, которые также могут содержать пространственный компонент. Эта возможность разгружает обработку данных от клиента на сервере, давая вам возможность управлять системными ресурсами.
Пространственные запросы обычно сравнивают объекты из одного набора данных, связанные с объектами из другого набора данных. Поэтому вам необходимо добавить другой класс объектов к вашей базе геоданных, чтобы сравнить его с классом объектов buildings.
Далее приведена последовательность шагов, которая поможет вам импортировать второй класс объектов и затем использовать определяющий запрос для отображения поднабора объектов зданий, которые находятся в пределах 50 метров от водопроводов.
Вы должны установить базу геоданных, содержащую класс объектов water_lines, запустив установку учебных данных ArcGIS Tutorial.
- Установите учебные данные ArcGIS Tutorial data.
- Вы можете выбрать полную установку или выбрать пользовательскую установку и установить только учебные данные SQL Example из списка Приложения в диалоговом окне Выбрать объекты мастера установки учебных данных ArcGIS Tutorial Data.
База геоданных с именем sql_examples устанавливается в ArcGIS > ArcTutor > SQL Examples.
- Запустите ArcMap.
- Щелкните кнопку окна Каталог.
- Добавьте подключение к папке с базой геоданных sql_examples в ArcGIS > ArcTutor > SQL Examples.
- Щелкните кнопку Подключиться к папке.
- Перейдите к ArcGIS > ArcTutor > SQL Examples.
- Щелкните OK.
Теперь, когда вы подключились к базе геоданных, импортируйте класс объектов water_lines в вашу многопользовательскую базу геоданных.
- В окне Каталога щелкните правой кнопкой на многопользовательской базе геоданных, в которой вы создали класс объектов buildings.
- Выберите Импорт и щелкните Класс объектов (единич.).
Откроется инструмент геообработки Класс объектов в класс объектов.
- Нажмите на кнопку обзора рядом с текстовым полем Входные объекты.
Откроется диалоговое окно Входные объекты.
- Перейдите к базе геоданных sql_example.
- Щелкните на классе объектов water_lines и нажмите Добавить.
- Введите water в текстовое поле Выходной класс объектов.
- Укажите ключевое слово конфигурации, которое будет использовано для определения типа хранения класса объектов.
- Если ваш тип хранения геометрии по умолчанию - ST_Geometry, вам не нужно изменять настройки базы геоданных; будет использовано значение для ключевого слова DEFAULTS.
- Если ваша база геоданных создана в Oracle или PostgreSQL, и тип хранения геометрии по умолчанию отличается от ST_Geometry, выберите Параметры базы геоданных (дополнительно), щелкните в ниспадающем списке рядом с полем Ключевое слово конфигурации (дополнительно) Configuration Keyword (optional), а затем выберите ST_GEOMETRY (или то пользовательское ключевое слово конфигурации, которое вы создали для хранения ST_GEOMETRY).
- Нажмите OK, чтобы импортировать данные.
Предварительное условие:
Добавьте классы объектов buildings и water в ArcMap и определите запрос для отображения поднабора объектов зданий, которые находятся в пределах 25 метров от водопроводов.
- Добавьте классы объектов buildings и water на карту, выбрав их из подключения базы геоданных и перетащив их в таблицу содержания.
- Щелкните правой кнопкой мыши на слое buildings в таблице содержания и выберите Свойства.
- Перейдите на вкладку Определяющий запрос.
- Создайте выражение для идентификации определенных пространственных объектов слоя, которые вы хотите отобразить. Следующие запросы произведут поиск всех зданий, находящиеся в пределах 25 метров от водопровода. Введите выражение, подходящее для вашей СУБД, в окне поле Свойства слояОпределяющий запрос.
- Для Oracle:
objectid IN (SELECT b.objectid FROM BUILDINGS b, WATER w WHERE w.watertype = 'MAIN' AND sde.st_intersects (b.shape, sde.st_buffer (w.shape, 25)) = 1)
- Для PostgreSQL:
objectid IN (SELECT b.objectid FROM buildings b, water w WHERE w.watertype = 'MAIN' AND sde.st_intersects (b.shape, sde.st_buffer (w.shape, 25)) = 't')
- Для Db2:
objectid IN (SELECT b.objectid FROM BUILDINGS b, WATER w WHERE w.watertype = 'MAIN' AND db2gse.st_intersects (b.shape, db2gse.st_buffer (w.shape, 25)) = 1)
- Для Informix:
objectid IN (SELECT b.objectid FROM buildings b, water w WHERE w.watertype = 'MAIN' AND st_intersects (b.shape, st_buffer (w.shape, 25)))
- Для Oracle:
- Нажмите ОК.
Сравнение результатов определяющего запроса с результатами выборок Выбрать по атрибуту и Выбрать по расположению
Вы можете увидеть, что будут получены те же результаты, если вы будете использовать инструмент ArcMap Выбрать по атрибуту, чтобы найти все линии водопроводов, и затем используете инструмент Выбрать по расположению для нахождения зданий в пределах 25 метров от линии водопровода. Это то же самое, что вы сделали с помощью заданного SQL в определяющем запросе.
- Если вы закрыли ArcMap, откройте его снова.
- Удалите определяющий запрос, который вы создали ранее.
- Щелкните правой кнопкой мыши на слое buildings в таблице содержания и выберите Свойства.
- Перейдите на вкладку Определяющий запрос.
- Выделите запрос в текстовом поле Определяющий запрос и нажмите Удалить.
- Нажмите на кнопку ОК, чтобы закрыть диалоговое окно Свойства слоя.
- Щелкните в ниспадающем списке Выборка.
- Щелкните Выбрать по атрибуту.
- Выберите класс объектов water в списке Слой.
- Убедитесь, что задан метод Создать новую выборку.
- Введите WATERTYPE = 'MAIN' в поле запроса.
- Щелкните Проверить, чтобы убедиться, что выражение SQL является корректным.
- Нажмите ОК.
- Нажмите OK, чтобы закрыть диалоговое окно Выбрать по атрибуту.
- Щелкните в ниспадающем списке Выборка.
- Щелкните Выбрать по расположению.
- В поле Целевые слои отметьте класс объектов buildings.
- Выберите класс объектов water в ниспадающем списке Исходный слой.
- Отметьте пункт Использовать выбранные объекты, чтобы использовать только объекты водопроводов.
- Выберите Объекты целевых слоев пересекают объект исходного слоя из ниспадающего списка Метод пространственной выборки.
- Выберите опцию Применить расстояние поиска.
- Введите 25 и выберите метры из ниспадающего списка.
- Нажмите ОК.
В выборке будут отображены те же объекты из класса объектов buildings, что и объекты, полученные в результате определяющего запроса.