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

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

программа Описание необходимые Поддерживаемые версии
GEOS Geometry Engine с открытым исходным кодом да 3.8, 3.7, 3.6, 3.5
proj.4 Библиотека картографических проекций Да (только PostgreSQL и SQLite) 6.3, 6.2, 6.1, 6.0, 5.x, 4.x
GDAL Библиотека да 3.1, 3.0, 2.4, 2.3, 2.2, 2.1, 2.0
GeoIP Библиотека геолокации на основе IP нет 2
PostGIS Пространственные расширения для PostgreSQL Да (только PostgreSQL) 3.0, 2.5, 2.4, 2.3, 2.2
SpatiaLite Пространственные расширения для SQLite Да (только SQLite) 4,3

Обратите внимание, что более старые или новые версии этих библиотек также могут очень хорошо работать с 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 (за «отложенными» геометрическими объектами). В частности, API библиотеки C (например 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, и запустите сценарий «configure», скомпилируйте и установите:

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

Наконец, запустите «configure» и «make» и установите PROJ.4:

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

ГДАЛ

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

Сначала загрузите последнюю выпущенную версию 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" и "install":

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

Заметка

Поскольку GeoDjango имеет свои собственные интерфейсы Python, предыдущие инструкции не компилируют привязки Python, специфичные для GDAL. Привязки можно скомпилировать, добавив опцию --with-python при запуске configure . См. GDAL / OGR в 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.

Copyright ©2020 All rights reserved