Spec-Zone.ru › Django 2.2

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

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

Программа Описание Требуется Поддерживаемые версии
GEOS Geometry Engine Open Source Да 3.7, 3.6, 3.5, 3.4
PROJ.4 Библиотека картографических проекций Да (только PostgreSQL и SQLite) 5.2, 5.1, 5.0, 4.x
GDAL Geospatial Data Abstraction Library Да 2.3, 2.2, 2.1, 2.0, 1.11
GeoIP Библиотека геолокации по IP-адресам Нет 2
PostGIS Пространственные расширения для PostgreSQL Да (только PostgreSQL) 2.5, 2.4, 2.3, 2.2, 2.1
SpatiaLite Пространственные расширения для SQLite Да (только SQLite) 4.3, 4.2, 4.1

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

Примечание

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

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

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

Также обратитесь к инструкциям, специфичным для платформы, если вы используете 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 с сайта GEOS и распакуйте архив с исходным кодом:

$ wget https://download.osgeo.org/geos/geos-X.Y.Z.tar.bz2
$ tar xjf geos-X.Y.Z.tar.bz2

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

$ cd geos-X.Y.Z
$ ./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 https://download.osgeo.org/proj/proj-X.Y.Z.tar.gz
$ wget https://download.osgeo.org/proj/proj-datumgrid-X.Y.tar.gz

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

$ tar xzf proj-X.Y.Z.tar.gz
$ cd proj-X.Y.Z/nad
$ tar xzf ../../proj-datumgrid-X.Y.tar.gz
$ cd ..

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

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

GDAL

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

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

$ wget https://download.osgeo.org/gdal/X.Y.Z/gdal-X.Y.Z.tar.gz
$ tar xzf gdal-X.Y.Z.tar.gz
$ cd gdal-X.Y.Z

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

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

Примечание

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

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

Отладка

Не удаётся найти библиотеку 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/2.2/ref/contrib/gis/install/geolibs/

Spec-Zone.ru

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