Spec-Zone.ru › Django 4.1

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

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

Программа Описание Необходимо Поддерживаемые версии
GEOS Геометрический движок с открытым исходным кодом Да 3.10, 3.9, 3.8, 3.7, 3.6
PROJ Библиотека картографических проекций Да (только PostgreSQL и SQLite) 9.x, 8.x, 7.x, 6.x, 5.x, 4.x
GDAL Библиотека абстракции геопространственных данных Да 3.4, 3.3, 3.2, 3.1, 3.0, 2.4, 2.3, 2.2
GeoIP Библиотека геолокации на основе IP-адресов Нет 2
PostGIS Пространственные расширения для PostgreSQL Да (только PostgreSQL) 3.2, 3.1, 3.0, 2.5
SpatiaLite Пространственные расширения для SQLite Да (только SQLite) 5.0, 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, создайте папку build и перейдите в неё:

$ cd geos-X.Y.Z
$ mkdir build
$ cd build

Затем скомпилируйте и установите пакет:

$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ cmake --build .
$ sudo cmake --build . --target install

Отладка

Не могу найти библиотеку 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 (для PROJ < 6.x используйте подкаталог nad). Это необходимо сделать до конфигурации:

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

Для PROJ 9.x и выше выпуски поддерживают сборку только с использованием CMake (см. PROJ RFC-7).

Чтобы собрать с CMake, убедитесь, что ваша система соответствует требованиям требованиям к сборке. Затем создайте папку build в каталоге PROJ и перейдите в неё:

$ cd proj-X.Y.Z
$ mkdir build
$ cd build

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

$ cmake ..
$ cmake --build .
$ sudo cmake --build . --target install

GDAL

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.

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/4.1/ref/contrib/gis/install/geolibs/

Spec-Zone.ru

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