Spec-Zone.ru › Django 1.8

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

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

Программа Описание Требуется Поддерживаемые версии
GEOS Геометрический движок с открытым исходным кодом Да 3.4, 3.3, 3.2
PROJ.4 Библиотека картографических проекций Да (только PostgreSQL и SQLite) 4.8, 4.7, 4.6, 4.5, 4.4
GDAL Библиотека абстракции геопространственных данных Да (только SQLite) 1.10, 1.9, 1.8, 1.7
GeoIP Библиотека геолокации на основе IP Нет 1.4
PostGIS Расширения пространственных данных для PostgreSQL Да (только PostgreSQL) 2.1, 2.0, 1.5
SpatiaLite Расширения пространственных данных для SQLite Да (только SQLite) 4.1, 4.0, 3.0, 2.4

Обратите внимание, что более старые или более новые версии этих библиотек могут также работать с GeoDjango без проблем. Результаты могут различаться.

Установить GDAL

Хотя GDAL технически не требуется, это рекомендуется. Важные функции GeoDjango (включая утилиту импорта данных LayerMapping, перепроектирование геометрии и географическое администрирование) зависят от его функциональности.

Примечание

Интерфейсы GeoDjango к GEOS, GDAL и GeoIP могут быть использованы независимо от Django. Другими словами, база данных или файл настроек не требуются — просто импортируйте их как обычно из django.contrib.gis.

В Debian/Ubuntu рекомендуется установить следующие пакеты, которые будут устанавливать, напрямую или по зависимостям, необходимые геопространственные библиотеки:

$ sudo apt-get install binutils libproj-dev gdal-bin

Дополнительные пакеты для рассмотрения:

  • libgeoip1: для поддержки GeoIP
  • gdal-bin: для программ командной строки GDAL, таких как ogr2ogr
  • 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 (она находится за «ленивыми» геометриями). В частности, библиотека API C вызывается (например, libgeos_c.so) напрямую из Python с помощью ctypes.

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

$ wget http://download.osgeo.org/geos/geos-3.3.8.tar.bz2
$ tar xjf geos-3.3.8.tar.bz2

Далее перейдите в каталог, где был распакован GEOS, выполните скрипт конфигурации, скомпилируйте и установите:

$ cd geos-3.3.8
$ ./configure
$ make
$ sudo make install
$ cd ..

Отладка

Не могу найти библиотеку GEOS

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

ImportError: Could not find the GEOS library (tried "geos_c"). Try setting GEOS_LIBRARY_PATH in your settings.

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

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

GEOS_LIBRARY_PATH

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

GEOS_LIBRARY_PATH = '/home/bob/local/lib/libgeos_c.so'

Примечание

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

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

PROJ.4

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

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

$ wget http://download.osgeo.org/proj/proj-4.8.0.tar.gz
$ wget http://download.osgeo.org/proj/proj-datumgrid-1.5.tar.gz

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

$ tar xzf proj-4.8.0.tar.gz
$ cd proj-4.8.0/nad
$ tar xzf ../../proj-datumgrid-1.5.tar.gz
$ cd ..

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

$ ./configure
$ make
$ sudo make install
$ cd ..

GDAL

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

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

$ wget http://download.osgeo.org/gdal/gdal-1.9.2.tar.gz
$ tar xzf gdal-1.9.2.tar.gz
$ cd gdal-1.9.2

Выполните конфигурацию, создание и установку:

$ ./configure
$ make # Go get some coffee, this takes a while.
$ sudo make install
$ cd ..

Примечание

Поскольку GeoDjango имеет свой собственный Python-интерфейс, указанные выше инструкции не компилируют собственные Python-связи GDAL. Связи могут быть скомпилированы путем добавления флага --with-python при выполнении configure. Более подробную информацию о связях GDAL можно найти в GDAL/OGR In Python.

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

Отладка

Не могу найти библиотеку GDAL

Когда GeoDjango не может найти библиотеку GDAL, флаг HAS_GDAL будет ложным:

>>> from django.contrib.gis import gdal
>>> gdal.HAS_GDAL
False

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

GDAL_LIBRARY_PATH

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

GDAL_LIBRARY_PATH = '/home/sue/local/lib/libgdal.so'

Примечания

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

Spec-Zone.ru

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