Установка геопространственных библиотек
GeoDjango использует и/или предоставляет интерфейсы для следующих открытых геопространственных библиотек:
| Программа | Описание | Требуется | Поддерживаемые версии |
|---|---|---|---|
| GEOS | Геометрический движок с открытым исходным кодом | Да | 3.4, 3.3 |
| PROJ.4 | Библиотека картографических проекций | Да (только PostgreSQL и SQLite) | 4.9, 4.8, 4.7, 4.6, 4.5, 4.4 |
| GDAL | Библиотека абстракции геопространственных данных | Да (только SQLite) | 2.1, 2.0, 1.11, 1.10, 1.9, 1.8, 1.7 |
| GeoIP | Библиотека геолокации на основе IP-адресов | Нет | 2 |
| PostGIS | Расширения пространственных данных для PostgreSQL | Да (только PostgreSQL) | 2.3, 2.2, 2.1, 2.0 |
| SpatiaLite | Расширения пространственных данных для SQLite | Да (только SQLite) | 4.3, 4.2, 4.1, 4.0, 3.0 |
Обратите внимание, что более старые или более новые версии этих библиотек также могут работать с GeoDjango. Результаты могут быть разными.
Установить GDAL
Хотя GDAL технически не требуется, его рекомендуется использовать. Важные функции GeoDjango (включая утилиту импорта данных LayerMapping, перепроецирование геометрии и географическое администрирование) зависят от его функциональности.
Примечание
Интерфейсы GeoDjango к GEOS, GDAL и GeoIP могут использоваться независимо от Django. Другими словами, база данных или файл настроек не требуются — просто импортируйте их как обычно из django.contrib.gis.
В Debian/Ubuntu рекомендуется установить следующие пакеты, которые установят необходимые геопространственные библиотеки напрямую или по зависимости:
%%%CODE_BLOCK_1%%>Дополнительные пакеты для рассмотрения:
libgeoip1: для поддержки GeoIPpython-gdalдля собственных Python-связей GDAL — включает интерфейсы для обработки растровых данных
Обратитесь также к платформенно-специфическим инструкциям, если вы используете Mac OS X или Windows.
Сборка из исходного кода
При установке из исходного кода на системах UNIX и GNU/Linux, пожалуйста, внимательно следуйте инструкциям по установке и установите библиотеки в указанном порядке. При использовании MySQL или Oracle в качестве пространственной базы данных, требуется только GEOS.
Примечание
На платформах Linux может потребоваться выполнить команду ldconfig после установки каждой библиотеки. Например:
$ sudo make install $ sudo ldconfig
Примечание
Пользователям OS X необходимо установить Apple Developer Tools для компиляции программного обеспечения из исходного кода. Обычно это включено на установочных DVD вашего OS X.
GEOS
GEOS — это C++ библиотека для выполнения геометрических операций и является стандартным внутренним представлением геометрии, используемым GeoDjango (это «ленивые» геометрии). В частности, библиотека C API вызывается (например, libgeos_c.so) напрямую из Python с использованием ctypes.
Сначала загрузите GEOS 3.4.2 с веб-сайта GEOS и распакуйте архив исходного кода:
%%%CODE_BLOCK_7%%>Затем перейдите в каталог, где GEOS был распакован, выполните скрипт конфигурации, скомпилируйте и установите:
%%%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.4
PROJ.4 — это библиотека для преобразования геопространственных данных в различные системы координат.
Сначала загрузите исходный код PROJ.4 и файлы смещения датумов [1]:
%%%CODE_BLOCK_15%%>Затем распакуйте архив исходного кода и извлеките файлы смещения датумов в подкаталоге nad. Это необходимо сделать до конфигурации:
Наконец, настройте, создайте и установите PROJ.4:
%%%CODE_BLOCK_18%%>GDAL
GDAL — отличная открытая геопространственная библиотека, которая поддерживает чтение большинства форматов пространственных данных векторных и растровых данных. В настоящее время GeoDjango поддерживает только возможности векторных данных GDAL [2]. GEOS и PROJ.4 должны быть установлены до сборки GDAL.
Сначала загрузите последнюю версию выпуска GDAL и распакуйте архив:
%%%CODE_BLOCK_19%%>Настройте, создайте и установите:
%%%CODE_BLOCK_20%%>Примечание
Поскольку GeoDjango имеет собственный Python-интерфейс, предыдущие инструкции не создают собственные Python-связи GDAL. Связи можно создать, добавив флаг --with-python при выполнении configure. См. GDAL/OGR в Python для получения дополнительной информации о связях GDAL.
Если у вас есть проблемы, см. раздел по устранению неполадок ниже для предложений и решений.
Отладка
Не могу найти библиотеку GDAL
Когда GeoDjango не может найти библиотеку GDAL, флаг HAS_GDAL будет ложным:
Решение состоит в том, чтобы правильно настроить ваше окружение библиотек или установить GDAL_LIBRARY_PATH в ваших настройках.
GDAL_LIBRARY_PATH
Если ваша библиотека GDAL находится в нестандартном расположении или вы не хотите изменять системный путь к библиотекам, то можно добавить настройку GDAL_LIBRARY_PATH в свой файл настроек Django с полным путем к библиотеке GDAL. Например:
Примечания
| [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/1.10/ref/contrib/gis/install/geolibs/