Библиотека Geospatial Data Abstraction Library(GDAL) это библиотека для работы с растровыми географическими форматами файлов данных. GDAL распространяется Open Source Geospatial Foundation на условиях лицензии X/MIT, то есть является проектом с открытым исходным кодом. Как библиотека GDAL предоставляет вызывающему приложению единую обобщённую модель данных для всех поддерживаемых форматов файлов данных. Помимо этого в состав GDAL входит набор вспомогательных программ, вызываемых из командной строки, для преобразования и обработки данных. Описание выпуска GDAL/OGR 1.5.1 (март 2008) можно найти на странице новостей.
Начиная с версии 1.6 GDAL поддерживает не только векторный формат Oracle Spatial, но также и растровый, что делает ее еще более функциональной.
С точки зрения разработчика интересен сам API для работы с этой библиотекой. Для ГИС-специалиста и DBA может оказаться интересным ряд инструментов, поставляемых в этой библиотеке:
- ogr2ogr – утилита для преобразования ГИС данных из одного формата в другой
- gdaltransform – утилита для преобразования слоя в другую систему координат.
К сожалению ко всей уникальности этих утилит подлита ложка дегтя: многие вендоры (в том числе и Oracle) имеют очень странную политику по отношению к клиентским библиотекам для доступа к базе данных. Поэтому, чтобы долго не думать и не подставлять свою пятую точку под удары юристов, разработчики не включают в поставку такие библиотеки. Это можно видеть из вот такой таблички, поставляемой вместе с библиотекой GDAL
Format Name | Code | Creation | Georeferencing | Compiled by default |
---|---|---|---|---|
Arc/Info Binary Coverage | AVCBin | No | Yes | Yes |
Arc/Info .E00 (ASCII) Coverage | AVCE00 | No | Yes | Yes |
ESRI ArcSDE | SDE | No | Yes | No, needs ESRI SDE |
ESRI Shapefile | ESRI Shapefile | Yes | Yes | Yes |
FMEObjects Gateway | FMEObjects Gateway | No | Yes | No, needs FME |
KML | KML | Yes | No | Yes (read support needs libexpat) |
Mapinfo File | MapInfo File | Yes | Yes | Yes |
Oracle Spatial | OCI | Yes | Yes | No, needs OCI library |
X-Plane/Flighgear aeronautical data | XPLANE | No | Yes | Yes |
и т.д. |
Т.е. можно видеть, что наряду из-за различных проприетарных драйверов Oracle Spatial не скопилирован по-умолчанию. Что самое смешное – библиотеку эту вы можете легко и просто скачать с сайта, не заплатив ни копейки!
Что ж, будем исправлять сию беду.
Для этого нам понадобится
Все это качаем и инсталлируем. GDAL распаковываем в папку C:\GDAL (чтобы в папке C:\GDAL были файлы makegdal71.sln, makegdal80.sln и т.д.). Открываем файл nmake.opt и редактируем переменную MSVC_VER (указываем нужную нам версию Visual Studio) и GDAL_HOME – указываем путь. В данном случае C:\GDAL.
После того как все это проделано – давайте скомпилируем GDAL в настройках по-умолчанию. Для этого:
- Запустим CMD
- Перейдем в каталог GDAL: cd C:\GDAL
- Настроим переменные среды для Visual Studio
"C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat” - Настроим переменные среды для Microsoft Platform SDK
"C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\SetEnv.Cmd” - Запустите следующую команду set INCLUDE=%INCLUDE%;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\atl;
- В файле "C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\atl\atlbase.h” закомментируйте или удалите следующую строку #pragma comment(lib, "atlthunk.lib")
- Запустим компиляцию командой
nmake /f makefile.vc - Проинсталлируйте
nmake /f makefile.vc install - После инсталляции Вы должны получить рабочую версию GDAL. Можно проверить, запусти C:\gdal\bin\ogr2ogr.exe и получив на выходе
Давайте теперь приступим к настроке для использования Oracle Spatial в GDAL. Для этого Вам необходимо будет проинсталлировать клиента Oracle, который можно взять по адресу http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10203vista.html. Инсталлируем клиента в вариант “Administrator”.
Для настройки компиляции плагина для Oracle Spatial – будем редактировать файл C:\GDAL\nmake.opt. Нужно найти следующие строки
# Add ORACLE support.
# Uncomment the following line to enable OCI Oracle Spatial support.
#ORACLE_HOME = C:/Software/Oracle/Product/10.1.0/db_1
# Uncomment the following if you prefer to build OCI support as a plugin.
#OCI_PLUGIN = YES
Указываем путь к клиенту базы данных и раскоментируем строки. Как-то во так должно получиться
# Add ORACLE support.
# Uncomment the following line to enable OCI Oracle Spatial support.
ORACLE_HOME = C:\oracle/product/10.2.0/client_1
# Uncomment the following if you prefer to build OCI support as a plugin.
# OCI_PLUGIN = YES
Перезапускаем компиляцию и инсталляции в том же окне (или заново прогоняем настройки, указанные выше). На самом деле с make clean – немного перестраховка, но все же:
- nmake /f makefile.vc clean
- nmake /f makefile.vc
- nmake /f makefile.vc install
После того, как все пройдет замечательно и make не ругнется – можно потестить функционал следующей командой:
c:\gdal\bin\ogr2ogr -f OCI OCI:mvdemo/mvdemopass@orcl c:\1\rusrays.shp
где mvdemo/mvdemopass – имя и пароль пользоваетля
orcl – alias базы данных
c:\1\rusrays.shp – путь к файлу с данными, лежащими в shape
Комментариев нет:
Отправить комментарий