Spec-Zone.ru › Django 4.2

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

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

ПрограммаОписаниеТребуетсяПоддерживаемые версии
GEOSGeometry Engine Open SourceДа3.11, 3.10, 3.9, 3.8, 3.7, 3.6
PROJБиблиотека картографических проекцийДа (только PostgreSQL и SQLite)9.x, 8.x, 7.x, 6.x, 5.x
GDALGeospatial Data Abstraction LibraryДа3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 3.0, 2.4, 2.3, 2.2
GeoIPБиблиотека геолокации на основе IP-адресовНет2
PostGISРасширения пространственных данных для PostgreSQLДа (только PostgreSQL)3.3, 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 рекомендуется установить следующие пакеты, которые установят, напрямую или по зависимостям, необходимые геопространственные библиотеки:

%%%CODE_BLOCK_1%%>

Также обратитесь к инструкциям для вашей платформы, если вы используете macOS или Windows.

Компиляция из исходного кода

При установке из исходного кода на системах UNIX и GNU/Linux, пожалуйста, следуйте инструкциям по установке и установите библиотеки в указанном порядке. Если используется MySQL или Oracle в качестве пространственной базы данных, требуется только GEOS.

Примечание

В Linux может потребоваться выполнить команду ldconfig после установки каждой библиотеки. Например:

%%%CODE_BLOCK_3%%>

Примечание

Пользователи macOS должны установить Xcode для компиляции программного обеспечения из исходного кода.

GEOS

GEOS — это C++ библиотека для выполнения геометрических операций и является стандартным внутренним представлением геометрии, используемым GeoDjango (она находится за «ленивыми» геометриями). В частности, библиотека C API вызывается (например, libgeos_c.so) напрямую из Python с использованием ctypes.

Сначала загрузите GEOS с веб-сайта GEOS и распакуйте архив исходного кода:

%%%CODE_BLOCK_5%%>

Затем перейдите в директорию GEOS, создайте папку build и перейдите в неё:

%%%CODE_BLOCK_7%%>

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

%%%CODE_BLOCK_8%%>

Отладка

Не удаётся найти библиотеку GEOS

Когда GeoDjango не может найти GEOS, возникает эта ошибка:

%%%CODE_BLOCK_9%%>

Наиболее распространённое решение — правильно настроить ваши настройки среды Настройки среды библиотеки или установить GEOS_LIBRARY_PATH в ваших настройках.

Если используется двоичный пакет GEOS (например, в Ubuntu), возможно, потребуется Установить binutils.

GEOS_LIBRARY_PATH

Если ваша библиотека GEOS находится в нестандартном месте или вы не хотите изменять системный путь к библиотеке, тогда можно добавить настройку GEOS_LIBRARY_PATH в ваш файл настроек Django с полным путём к библиотеке GEOS C. Например:

%%%CODE_BLOCK_12%%>

Примечание

Настройка должна содержать полный путь к C-библиотеке общего пользования; другими словами, вам нужно использовать libgeos_c.so, а не libgeos.so.

См. также Мои логи заполнены ошибками, связанными с GEOS.

PROJ

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

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

%%%CODE_BLOCK_15%%>

… и файлы сдвигов данных (скачайте proj-datumgrid-X.Y.tar.gz для PROJ < 7.x) [1]:

%%%CODE_BLOCK_17%%>

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

%%%CODE_BLOCK_20%%>

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

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

%%%CODE_BLOCK_24%%>

Наконец, выполните конфигурацию, make и установку PROJ:

%%%CODE_BLOCK_25%%>

GDAL

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

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

%%%CODE_BLOCK_26%%>

Для GDAL 3.6.x и выше, релизы поддерживают только сборки с использованием CMake. Для компиляции с CMake создайте папку build в каталоге GDAL и перейдите в неё:

%%%CODE_BLOCK_30%%>

Наконец, выполните конфигурацию, make и установку GDAL:

%%%CODE_BLOCK_31%%>

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

Отладка

Не удаётся найти библиотеку GDAL

Если GeoDjango не может найти библиотеку GDAL, настройте Настройки среды библиотеки или установите GDAL_LIBRARY_PATH в ваших настройках.

GDAL_LIBRARY_PATH

Если ваша библиотека GDAL находится в нестандартном месте, или вы не хотите изменять системный путь к библиотеке, тогда можно добавить настройку GDAL_LIBRARY_PATH в ваш файл настроек Django с полным путём к библиотеке GDAL. Например:

%%%CODE_BLOCK_34%%>

Примечания

[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.2/ref/contrib/gis/install/geolibs/

Spec-Zone.ru

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