Spec-Zone.ru › Django 5.1

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

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

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

%%%CODE_BLOCK_19%%>

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

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

%%%CODE_BLOCK_23%%>

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

%%%CODE_BLOCK_24%%>

GDAL

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

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

%%%CODE_BLOCK_25%%>

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

%%%CODE_BLOCK_29%%>

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

%%%CODE_BLOCK_30%%>

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

Устранение неполадок

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

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

GDAL_LIBRARY_PATH

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

%%%CODE_BLOCK_33%%>

Примечания

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

Spec-Zone.ru

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