Установка геопространственных библиотек
GeoDjango использует и/или предоставляет интерфейсы для следующих открытых геопространственных библиотек:
| Программа | Описание | Требуется | Поддерживаемые версии |
|---|---|---|---|
| GEOS | Geometry 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 |
| GDAL | Geospatial 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 после установки каждой библиотеки. Например:
Примечание
Пользователи macOS должны установить Xcode для компиляции программного обеспечения из исходного кода.
GEOS
GEOS — это C++ библиотека для выполнения геометрических операций и является стандартным внутренним представлением геометрии, используемым GeoDjango (она находится за «ленивыми» геометриями). В частности, библиотека C API вызывается (например, libgeos_c.so) напрямую из Python с использованием ctypes.
Сначала загрузите GEOS с веб-сайта GEOS и распакуйте архив исходного кода:
%%%CODE_BLOCK_5%%>Затем перейдите в директорию GEOS, создайте папку build и перейдите в неё:
Затем скомпилируйте и установите пакет:
%%%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. Например:
Примечание
Настройка должна содержать полный путь к C-библиотеке общего пользования; другими словами, вам нужно использовать libgeos_c.so, а не libgeos.so.
См. также Мои логи заполнены ошибками, связанными с GEOS.
PROJ
PROJ — это библиотека для преобразования геопространственных данных в различные системы координат.
Сначала загрузите исходный код PROJ:
%%%CODE_BLOCK_15%%>… и файлы сдвигов данных (скачайте proj-datumgrid-X.Y.tar.gz для PROJ < 7.x) [1]:
Далее, распакуйте архив исходного кода и извлеките файлы сдвигов данных в поддиректорию data (используйте поддиректорию nad для PROJ < 6.x). Это должно быть сделано до конфигурации:
Для PROJ 9.x и выше, релизы поддерживают только сборки с использованием CMake (см. PROJ RFC-7).
Для компиляции с CMake убедитесь, что ваша система удовлетворяет требованиям к сборке. Затем создайте папку build в каталоге PROJ и перейдите в неё:
Наконец, выполните конфигурацию, 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 и перейдите в неё:
Наконец, выполните конфигурацию, make и установку GDAL:
%%%CODE_BLOCK_31%%>Если у вас возникнут проблемы, см. раздел отладки для предложений и решений.
Отладка
Не удаётся найти библиотеку GDAL
Если GeoDjango не может найти библиотеку GDAL, настройте Настройки среды библиотеки или установите GDAL_LIBRARY_PATH в ваших настройках.
GDAL_LIBRARY_PATH
Если ваша библиотека GDAL находится в нестандартном месте, или вы не хотите изменять системный путь к библиотеке, тогда можно добавить настройку GDAL_LIBRARY_PATH в ваш файл настроек Django с полным путём к библиотеке GDAL. Например:
Примечания
| [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/