Spec-Zone.ru › Django 3.0

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

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

Программа Описание Необходимо Поддерживаемые версии
GEOS Геометрический движок с открытым исходным кодом Да 3.7, 3.6, 3.5
PROJ.4 Библиотека картографических проекций Да (только PostgreSQL и SQLite) 5.2, 5.1, 5.0, 4.x
GDAL Библиотека абстракции геопространственных данных Да 2.4, 2.3, 2.2, 2.1, 2.0
GeoIP Библиотека геолокации на основе IP-адресов Нет 2
PostGIS Расширения пространственных данных для PostgreSQL Да (только PostgreSQL) 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 (стоит за «ленивыми» геометриями). В частности, библиотека 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/3.0/ref/contrib/gis/install/geolibs/

Spec-Zone.ru

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