Рабочий процесс: создание поля растра в ArcObjects
Некоторые приложения воспроизводят изображения, такие как дорожные знаки, реки или здания, чтобы проиллюстрировать точку, линию или полигональный пространственный объект. Эти изображения могут не иметь пространственной привязки. Для создания таблицы со столбцом непространственного растра можно использовать SQL.
Далее приведен рабочий процесс, описывающий создание и заполнение столбца растра, а также его подготовку для работы с ArcGIS.
Создание и заполнение таблицы со столбцом растра
-
Подключитесь к базе геоданных из редактора SQL.
Например, подключитесь к Oracle с помощью SQL*Plus, к PostgreSQL с помощью pgAdminIII или команды psql из командной строки или к Microsoft SQL Server с помощью Management Studio.
- Создайте таблицу со столбцом ST_Raster.
Oracle
CREATE TABLE real_estate (address nvarchar2(255), sde.st_raster picture);
PostgreSQL
CREATE TABLE real_estate (address varchar(255), sde.st_raster picture);
SQL Server
CREATE TABLE real_estate (address varchar(255), dbo.st_raster picture);
Если ваша база геоданных хранится на SQL Server в пользовательской схеме sde, перед функцией введите sde.
- Используйте метод ST_Raster_Util_Initialize для инициализации столбца растра.
В этих примерах значение аргумента projectID — NULL, так как данные не имеют пространственной привязки.
Oracle
BEGIN SDE.ST_RASTER_UTIL.INITALIZE ('real_estate','picture',NULL,'defaults'); END; /
PostgreSQL
SELECT st_raster_util_initialize ('real_estate','address',4326,'DEFAULTS');
SQL Server
EXEC dbo.st_raster_util_initialize 'sde','bobby','real_estate','address',4326,NULL,'DEFAULTS'
После выполнения этого метода растровый столбец регистрируется в ArcSDE и с ним можно работать.
- Конвертируйте изображение в формате TIFF с помощью конструктора ST_Raster.
В этих примерах изображение дома на 30551 Independence Ave добавляется в таблицу real_estate путем конвертирования TIFF-файла 30551_independence при помощи конструктора ST_Raster.
Oracle
INSERT INTO REAL_ESTATE (address, sde.st_raster) VAULES ('30551 Independence Ave', SDE.ST_RASTER('C:\30551_independence.tif','compression=lz77'));
PostgreSQL
INSERT INTO real_estate (address, sde.st_raster) VAULES ('30551 Independence Ave', sde.st_raster('C:\30551_independence.tif'));
SQL Server
INSERT INTO real_estate (address, dbo.st_raster) VALUES ('30551 Independence Ave', ST_Raster::construct('C:\30551_independence.tif'));
Подсказка:
Убедитесь, что путь к изображению доступен для сервера.
Регистрация таблицы в базе геоданных
Для регистрации таблицы в базе геоданных используйте ArcGIS for Desktop.
- Запустите ArcMap и откройте окно Каталога или запустите ArcCatalog.
-
Подключитесь к многопользовательской базе геоданных, содержащей таблицу, которую необходимо зарегистрировать.
Подключение осуществляется через папку Подключения баз данных (Database Connections) в дереве Каталога. Убедитесь, что вы подключились как владелец таблицы.
- Щелкните правой кнопкой таблицу real_estate и выберите Зарегистрировать в базе геоданных (Register with Geodatabase).
В таблицу real_estate добавляется поле ObjectID. Поле ObjectID позволяет ArcGIS перемещаться по строкам таблицы.