Spec-Zone.ru › Django 1.11

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

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

Программа Описание Необходимо Поддерживаемые версии
GEOS Геометрический движок с открытым исходным кодом Да 3.6, 3.5, 3.4, 3.3
PROJ.4 Библиотека картографических проекций Да (только PostgreSQL и SQLite) 4.9, 4.8, 4.7, 4.6, 4.5, 4.4
GDAL Библиотека абстракции геопространственных данных Да 2.1, 2.0, 1.11, 1.10, 1.9
GeoIP Библиотека геолокации на основе IP Нет 2
PostGIS Расширения пространственных данных для PostgreSQL Да (только PostgreSQL) 2.3, 2.2, 2.1
SpatiaLite Расширения пространственных данных для SQLite Да (только SQLite) 4.3, 4.2, 4.1, 4.0

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

Изменено в Django 1.11:

В более ранних версиях GDAL требовался только для SQLite. Теперь он необходим для всех баз данных.

Примечание

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

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

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

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

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

Также обратитесь к платформенно-специфическим инструкциям, если вы используете macOS или Windows.

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

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

Примечание

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

$ sudo make install
$ sudo ldconfig

Примечание

Пользователям macOS необходимо установить Xcode для компиляции программного обеспечения из исходного кода.

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 с полным путем к библиотеке C GEOS. Например:

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 ..

Наконец, настройте, выполните make и установите 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

Настройте, выполните make и установите:

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

Примечание

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

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

Отладка

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

Когда GeoDjango не может найти библиотеку GDAL, настройте ваши Настройки среды библиотек или установите 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.11/ref/contrib/gis/install/geolibs/

Spec-Zone.ru

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