Настройка окружения для работы с геоданными
В моем проекте одной из основных функцию будет работа с географическими координатами и другими объектами. Для этого в django существует фреймворк GeoDjango который с помощью GIS библиотек обрабатывает геоданные.
Итак, нам необходимо установить:
или загрузим уже готовый тут https://docs.djangoproject.com/en/dev/ref/contrib/gis/install/#windows
Итак, нам необходимо установить:
- GEOS ( Geometry Engine Open Source ) http://trac.osgeo.org/osgeo4w/
- PostGIS гео модуль для PostgreSQL сервера.
Установка GEOS
Для windows GEOS является библиотекой, входящей в состав пакета OSGeo4W. В общем качаем тут http://trac.osgeo.org/osgeo4w/ и устанавливаем. Мне было лень разбираться и вычлинять из установщика конкретно нужную нам библиотеку, по-этому я поставил пакет полностью ))
Установка PostGIS
Брал тут. http://postgis.refractions.net/download/windows/#windbinaries Обнаружил, что в комплекте уже идет библиотека GEOS.
Настройка GeoDjango
Во первых нужно в settings.py указать настройки БД
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'travelpath',
'USER': 'djangoweb',
'PASSWORD': '12345678',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
Обратите внимание, что при использовании рекомендованного по умолчанию для PostgreSQL свойства 'ENGINE': 'django.db.backends.postgresql_psycopg2' джанго не сможет работать с геоданными и будет выдавать ошибку
AttributeError: 'DatabaseOperations' object has no attribute 'geo_db_type'. И добавить в INSTALLED_APPS строку 'django.contrib.gis'
Кроме этого необходимо прописать пути к библиотекам GEOS для того чтобы питон их мог находить. Для этого сделаем пакетный файл с таким содержанием
set OSGEO4W_ROOT=C:\OSGeo4W
set PYTHON_ROOT=C:\Python27
set GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
set PATH=%PATH%;%PYTHON_ROOT%;%OSGEO4W_ROOT%\bin
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /f /d "%PATH%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v GDAL_DATA /t REG_EXPAND_SZ /f /d "%GDAL_DATA%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROJ_LIB /t REG_EXPAND_SZ /f /d "%PROJ_LIB%"
Кроме этого необходимо прописать пути к библиотекам GEOS для того чтобы питон их мог находить. Для этого сделаем пакетный файл с таким содержанием
set OSGEO4W_ROOT=C:\OSGeo4W
set PYTHON_ROOT=C:\Python27
set GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
set PATH=%PATH%;%PYTHON_ROOT%;%OSGEO4W_ROOT%\bin
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /f /d "%PATH%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v GDAL_DATA /t REG_EXPAND_SZ /f /d "%GDAL_DATA%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROJ_LIB /t REG_EXPAND_SZ /f /d "%PROJ_LIB%"
или загрузим уже готовый тут https://docs.djangoproject.com/en/dev/ref/contrib/gis/install/#windows
UPD: Как оказалось django 1.4.2 не дружит с PostGIS 2.0.1 по этому нужно использовать такую связку:
- PostgreSQL 9.0
- PostGis 1.5
Комментариев нет:
Отправить комментарий