Spec-Zone.ru › Django 1.9

Установка геопространственных библиотек

GeoDjango использует и/или предоставляет интерфейсы для следующих открытых геопространственных библиотек:

Программа Описание Требуется Поддерживаемые версии
GEOS Geometry Engine Open Source Да 3.4, 3.3, 3.2
PROJ.4 Библиотека картографических проекций Да (только PostgreSQL и SQLite) 4.9, 4.8, 4.7, 4.6, 4.5, 4.4
GDAL Библиотека абстракции геопространственных данных Да (только SQLite) 2.0, 1.11, 1.10, 1.9, 1.8, 1.7
GeoIP Библиотека геолокации на основе IP-адресов Нет 1.4
PostGIS Расширения пространственных данных для PostgreSQL Да (только PostgreSQL) 2.1, 2.0
SpatiaLite Расширения пространственных данных для SQLite Да (только SQLite) 4.3, 4.2, 4.1, 4.0, 3.0, 2.4

Обратите внимание, что более старые или более новые версии этих библиотек также могут работать с GeoDjango без проблем. Результаты могут отличаться.

Установка GDAL

Хотя GDAL технически не требуется, он рекомендуется. Важные функции GeoDjango (включая утилиту импорта данных LayerMapping, перепроектирование геометрии и географическую администрацию) зависят от его функциональности.

Примечание

Интерфейсы GeoDjango к GEOS, GDAL и GeoIP могут использоваться независимо от Django. Другими словами, база данных или файл настроек не требуются — просто импортируйте их как обычно из django.contrib.gis.

В Debian/Ubuntu рекомендуется установить следующие пакеты, которые установят необходимые геопространственные библиотеки напрямую или в зависимости:

$ sudo apt-get install binutils libproj-dev gdal-bin

Дополнительные пакеты для рассмотрения:

  • libgeoip1: для поддержки GeoIP
  • gdal-bin: для командной строки GDAL, таких как ogr2ogr
  • python-gdal для собственных Python-связей GDAL — включает интерфейсы для обработки растровых данных

Обратитесь также к инструкциям для конкретной платформы, если вы используете Mac OS X или Windows.

Компиляция из исходного кода

При установке из исходного кода на системах UNIX и GNU/Linux, пожалуйста, внимательно следуйте инструкциям по установке и устанавливайте библиотеки в указанном порядке. При использовании MySQL или Oracle в качестве пространственной базы данных требуется только GEOS.

Примечание

В Linux может потребоваться выполнить команду ldconfig после установки каждой библиотеки. Например:

$ sudo make install
$ sudo ldconfig

Примечание

Пользователям OS X необходимо установить Apple Developer Tools для компиляции программного обеспечения из исходного кода. Обычно он включен на дисках вашей установки OS X.

GEOS

GEOS — это библиотека C++ для выполнения геометрических операций и является стандартным внутренним представлением геометрии, используемым GeoDjango (он стоит за «ленивыми» геометриями). В частности, библиотека C API вызывается (например, libgeos_c.so) напрямую из Python с помощью ctypes.

Сначала скачайте GEOS 3.4.2 с сайта GEOS и разархивируйте исходный архив:

$ wget http://download.osgeo.org/geos/geos-3.4.2.tar.bz2
$ tar xjf geos-3.4.2.tar.bz2

Затем перейдите в каталог, куда был распакован GEOS, запустите скрипт конфигурации, скомпилируйте и установите:

$ cd geos-3.4.2
$ ./configure
$ make
$ sudo make install
$ cd ..

Отладка

Не удается найти библиотеку GEOS

Когда GeoDjango не может найти GEOS, возникает эта ошибка:

ImportError: Could not find the GEOS library (tried "geos_c"). Try setting GEOS_LIBRARY_PATH in your settings.

Самое распространенное решение — правильно настроить ваши настройки настроек среды библиотек или задать GEOS_LIBRARY_PATH в ваших настройках.

Если вы используете бинарный пакет GEOS (например, в Ubuntu), вам может потребоваться установить binutils.

GEOS_LIBRARY_PATH

Если ваша библиотека GEOS находится в нестандартном расположении или вы не хотите изменять системный путь к библиотекам, то можно добавить настройку GEOS_LIBRARY_PATH в ваш файл настроек Django с полным путем к библиотеке GEOS C. Например:

GEOS_LIBRARY_PATH = '/home/bob/local/lib/libgeos_c.so'

Примечание

Настройка должна быть полным путем к C динамической библиотеке; другими словами, вы хотите использовать libgeos_c.so, а не libgeos.so.

См. также Мои журналы заполнены ошибками, связанными с GEOS.

PROJ.4

PROJ.4 — это библиотека для преобразования геопространственных данных в различные системы координат.

Сначала скачайте исходный код PROJ.4 и файлы сдвигов датумов [1]:

$ wget http://download.osgeo.org/proj/proj-4.9.1.tar.gz
$ wget http://download.osgeo.org/proj/proj-datumgrid-1.5.tar.gz

Затем разархивируйте исходный код и извлеките файлы сдвигов датумов в подкаталог nad. Это необходимо сделать до конфигурации:

$ tar xzf proj-4.9.1.tar.gz
$ cd proj-4.9.1/nad
$ tar xzf ../../proj-datumgrid-1.5.tar.gz
$ cd ..

Наконец, сконфигурируйте, создайте и установите PROJ.4:

$ ./configure
$ make
$ sudo make install
$ cd ..

GDAL

GDAL — отличная открытая геопространственная библиотека, поддерживающая чтение большинства векторных и растровых форматов пространственных данных. В настоящее время GeoDjango поддерживает только возможности векторных данных GDAL [2]. GEOS и PROJ.4 должны быть установлены до компиляции GDAL.

Сначала скачайте последнюю версию выпуска GDAL и разархивируйте архив:

$ wget http://download.osgeo.org/gdal/1.11.2/gdal-1.11.2.tar.gz
$ tar xzf gdal-1.11.2.tar.gz
$ cd gdal-1.11.2

Сконфигурируйте, создайте и установите:

$ ./configure
$ make # Go get some coffee, this takes a while.
$ sudo make install
$ cd ..

Примечание

Поскольку у GeoDjango есть свой собственный Python-интерфейс, указанные выше инструкции не компилируют собственные Python-связи GDAL. Связи можно скомпилировать, добавив флаг --with-python при выполнении configure. Более подробную информацию о связях GDAL см. в GDAL/OGR In Python.

Если у вас возникли проблемы, см. раздел отладки ниже для предложений и решений.

Отладка

Не удается найти библиотеку GDAL

Когда GeoDjango не может найти библиотеку GDAL, флаг HAS_GDAL будет ложным:

>>> from django.contrib.gis import gdal
>>> gdal.HAS_GDAL
False

Решение — правильно настроить ваши настройки настроек среды библиотек или задать GDAL_LIBRARY_PATH в ваших настройках.

GDAL_LIBRARY_PATH

Если ваша библиотека GDAL находится в нестандартном расположении или вы не хотите изменять системный путь к библиотекам, то можно добавить настройку GDAL_LIBRARY_PATH в ваш файл настроек Django с полным путем к библиотеке GDAL. Например:

GDAL_LIBRARY_PATH = '/home/sue/local/lib/libgdal.so'

Примечания

[1] Файлы сдвигов датумов необходимы для преобразования данных в определенные проекции. Например, строка PROJ.4 для проекции Google (900913 или 3857) требует файл сетки null, который включен только в дополнительных файлах сдвигов датумов. Легче установить файлы сдвигов датумов сейчас, чем потом исправлять проблему, вызванную их отсутствием.
[2] В частности, GeoDjango предоставляет поддержку библиотеки OGR, компонента GDAL.

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.9/ref/contrib/gis/install/geolibs/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API