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

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

Программа Описание Обязательный Поддерживаемые версии
GEOS Geometry Engine с открытым исходным кодом да 3,9, 3,8, 3,7, 3,6, 3,5
ПРОЕКТ Библиотека картографических проекций Да (только PostgreSQL и SQLite) 7.x. 6.x, 5.x, 4.x
ГДАЛ Библиотека абстракции геопространственных данных да 3,2, 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
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 (за «ленивыми» геометриями). В частности, библиотека 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

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

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

$ wget https://download.osgeo.org/proj/proj-X.Y.Z.tar.gz

… И файлы смещения датума (загрузить proj-datumgrid-X.Y.tar.gzдля PROJ <7.x) [1] :

$ wget https://download.osgeo.org/proj/proj-data-X.Y.tar.gz

Затем распакуйте архив исходного кода и извлеките файлы сдвига датума в dataподкаталог (используйте nadподкаталог для PROJ <6.x). Это необходимо сделать перед настройкой:

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

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

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

ГДАЛ

GDAL - отличная геопространственная библиотека с открытым исходным кодом, которая поддерживает чтение большинства векторных и растровых форматов пространственных данных. В настоящее время GeoDjango поддерживает только возможности векторных данных GDAL [2] . GEOS и PROJ должны быть установлены до построения 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 в 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 для проекции Google (900913 или 3857) требует, чтобы nullфайл сетки был включен только в дополнительные файлы смещения датума. Сейчас проще установить файлы смещения, чем потом решать проблему, вызванную их отсутствием.
[2]В частности, GeoDjango обеспечивает поддержку библиотеки OGR , компонента GDAL.

Copyright ©2021 All rights reserved