Spec-Zone.ru › Django 1.10

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

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: для поддержки GeoIP
  • python-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. Например:

%%%CODE_BLOCK_12%%>

Примечание

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

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

PROJ.4

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

Сначала загрузите исходный код PROJ.4 и файлы смещения датумов [1]:

%%%CODE_BLOCK_15%%>

Затем распакуйте архив исходного кода и извлеките файлы смещения датумов в подкаталоге nad. Это необходимо сделать до конфигурации:

%%%CODE_BLOCK_17%%>

Наконец, настройте, создайте и установите 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 будет ложным:

%%%CODE_BLOCK_24%%>

Решение состоит в том, чтобы правильно настроить ваше окружение библиотек или установить GDAL_LIBRARY_PATH в ваших настройках.

GDAL_LIBRARY_PATH

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

%%%CODE_BLOCK_27%%>

Примечания

[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/

Spec-Zone.ru

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