Oracle опубликовал новую версию Mapviewer. Кто пользуется более ранними версиями, а также версиями 11g рекомендуется обновить до версии 10.1.3.3. По функциональности и уровню пропатченности это самая лучшая на данный момент версия.
Читать далее...
Oracle опубликовал новую версию Mapviewer. Кто пользуется более ранними версиями, а также версиями 11g рекомендуется обновить до версии 10.1.3.3. По функциональности и уровню пропатченности это самая лучшая на данный момент версия.
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. К сожалению, в поставке он не идет.
Итак, давайте приступим к установке.
Основная инсталляция достаточно простая. Сложностей не возникает. Только под линуксом возникает небольшая сложность. При инсталляции 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
Запускается файликом /opt/gvSIG_1.0.2/bin/gvSIG.sh (для линукса) и из меню в Windows.
После запуска нужно настроить соединения с базой данных Oracle. Для этого заходим в меню Show->Geographic database connections wizard. В меню жмем Add и попадаем в диалог настройки соединения.
Настраиваем соединение.
gvSIG готов к работе с СУБД Oracle.
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
г) Даем название, указываем проекцию базы данных. В нашем случае это будет WGS 84, Geodesica. Это обязательно сделать.
д) Соглашаемся и закрываем. Далее выбираем наше View. Жмем Open.
е) В панели инструментов выбираем Add Layer. В диалоге нам нужна закладка GeoBD. Выбираем соединение. Выбираем слой, который необходимо подключить.
ж) В результате откроется выбранный слой, с которым можно работать
з) Этот слой можно редактировать. Для этого слева щелкаем на названии слоя правой кнопкой и выбираем Start edition
и) В панели инструментов выбираем инструмент Point. Щелкаем, делаем точки :) Для завершения редактирования и сохранения щелкаем правой кнопкой на слой и говорим “Finish edition”. Соглашаемся, что хотим сохранить слой.