Установка геопространственных библиотек
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/