Сервер переехал на новый сайт http://www.oraclegis.com/blog. Здесь идет ретрансляция

пятница, 26 сентября 2008 г.

gvSIG

UPDATE1: Начиная с версии 1.1.2 gvSIG для использование Oracle Spatial не требуется инсталлировать geoDB extension. Тем не менее все равно требуется скачать библиотеке ojdbc14.jar и положить ее в нужное место (см. ниже).

В мире в настоящее время используется большое количество open source GIS и в большинстве своем эти ГИС поддерживают Oracle Spatial, т.к. очевидно, что это один из самых распространенных форматов хранения пространственных данных.
Кроме того большинство из этих проектов зарождаются, либо спонсируются государственными и мунициальными организациями.
Сегодня мы рассмотрим одну из таких систем - gvSIG.
gvSIG — свободная геоинформационная система с открытым исходным кодом. Первая рабочая версия появилась в конце 2006 года и распространялась через интернет.

Системные требования
Pentium III 800 МГц
256 Мбайт RAM
Предлагаются исходный код, и готовые сборки для:

Microsoft Windows и Windows NT
GNU/Linux i586
Mac OS X Intel.
Программа поддерживает все необходимые функции ГИС:

Pабота со слоями, благодаря которой можно отображать лишь необходимые в данный момент объекты;
Функции масштабирования карты;
Поддержка сохранения необходимых ракурсов карты;
Автоматические расчёты расстояния между объектами и площадей областей;
Размещение активных объектов на карту;
Создание профессиональных географических карт с необходимыми элементами, которые можно впоследствии печатать.
Собственно, к системе есть небольшая документация, которую можно взять здесь.
Есть также драйвер для Oracle. К сожалению, в поставке он не идет.

Итак, давайте приступим к установке.

1. Скачать

Для инсталляция необходимо скачать
а) сам gvsig: http://www.gvsig.gva.es/index.php?id=1306&L=2&K=1
Отсюда берем версию 1.0.2. К сожалению, версия 1.1 не имеет готового драйвера к СУБД Oracle.
б) geoDB расширение (оно отвечает за поддержку Oracle): http://www.gvsig.gva.es/index.php?id=1656&L=2&K=1 
Берем само собой для версии 1.0.2.
в) драйвер ojdbc14.jar. Разработчики рекомендуют брать версию 1.4. Взять можно с сайта Oracle: http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc_10201.html link. Забираем версию 10.2.0.4. Файлик ojdbc14.jar.

2. Инсталляция

Основная инсталляция достаточно простая. Сложностей не возникает. Только под линуксом возникает небольшая сложность. При инсталляции gvSIG свою версию java (1.4.2) кидает в папку /root/gvSIG/jre. Это не позволяет в дальнейшем запускать gvSIG под обычным пользователем. Для решения проблемы нужно проинсталлировать в режиме по умолчанию. Скопировать jre в общедоступную папку. Проинсталлировать повторно, но при инсталляции указать наш jre в соответствующей папке.

После этого нужно проинсталлировать geoDB расширение, а файлик ojdbc14.jar положить в папку /opt/gvSIG_1.0.2/bin/gvSIG/extensiones/com.iver.cit.gvsig/lib/ (я инсталлировал в папку /opt/gvSIG_1.02

3. Запуск

Запускается файликом /opt/gvSIG_1.0.2/bin/gvSIG.sh (для линукса) и из меню в Windows.

1 

После запуска нужно настроить соединения с базой данных Oracle. Для этого заходим в меню Show->Geographic database connections wizard. В меню жмем Add и попадаем в диалог настройки соединения.

image

Настраиваем соединение.

gvSIG готов к работе с СУБД Oracle.

4. Работа

gvSIG умеет работать с Oracle Spatial, но он налагает ряд требований на таблицы, содержащие данные. Одно из них – это наличие первичного ключа (Primary Key). Кроме того, для редактирования необходимо также иметь триггер, заполняющий соответствующее поле.

Давайте, создадим таблицу, удовлетворяющую требованиям. Эта таблица будет содержать информацию о ресторанах в городе:

Также создаем индекс. Без индекса ничего работать не будет.

CREATE TABLE restaurants

  ( id   NUMBER PRIMARY KEY,  name VARCHAR2(30),  geom mdsys.sdo_geometry);

CREATE INDEX restaurants_spat_idx ON restaurants  (geom)  indextype IS mdsys.spatial_index;

Создаем также последовательность для генерации первичного ключа

CREATE SEQUENCE restaurants_pk_seq;

Создаем триггер для заполнения первичного ключа:

CREATE OR REPLACE TRIGGER RESTAURANTS_PK_TRIG BEFORE

   INSERT ON RESTAURANTS FOR EACH ROW BEGIN :new.id:=restaurants_pk_seq.nextval;

END;

Теперь необходимо зарегистрировать таблицу как слой

 INSERT INTO user_sdo_geom_metadata VALUES  ('restaurants','geom',

    MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('X',-180,180,0.005),MDSYS.SDO_DIM_ELEMENT('Y',-90,90,0.005)) ,8307);

Теперь необходимо настроить отображение информации в gvSIG:

а) Запускаем gvSIG
б) Выбираем в Document Types – View, затем New
в) Появится новый View с именем Untitles – 0. Выбираем его и жмем Properties

image

г) Даем название, указываем проекцию базы данных. В нашем случае это будет WGS 84, Geodesica. Это обязательно сделать.

image

д) Соглашаемся и закрываем. Далее выбираем наше View. Жмем Open.

image

е) В панели инструментов выбираем Add Layer. В диалоге нам нужна закладка GeoBD. Выбираем соединение. Выбираем слой, который необходимо подключить.

image

ж) В результате откроется выбранный слой, с которым можно работать

image

з) Этот слой можно редактировать. Для этого слева щелкаем на названии слоя правой кнопкой и выбираем Start edition

image 
и) В панели инструментов выбираем инструмент Point. Щелкаем, делаем точки :) Для завершения редактирования и сохранения щелкаем правой кнопкой на слой и говорим “Finish edition”. Соглашаемся, что хотим сохранить слой.

Комментариев нет: