原文作者:我辈理想
版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。
系列文章目录
【GeoDjango框架解析】配置geodjango开发环境
【GeoDjango框架解析】GDAL、GEOS、PORJ等配置的报错处理
文章目录
前言
Django是python的web框架,GeoDjango 是一个包含在 Django 中的 contrib 模块,它将 Django 变成一个世界级的地理网络框架。geodjango的基本使用和django区别不大,需要注意的是需要配置空间地理框架的相关环境,包括postgresql数据库、postgis空间扩展管理、gdal空间数据抽象库、geos几何引擎开源库、proj地图投影库、GeoIP基于IP的地理位置库。
GEOS是一个用于执行几何操作的C++库,是GeoDjango所使用的默认内部几何表示(它位于“懒”几何体的后面)。
PROJ 是用于将地理空间数据转换为不同坐标参考系统的库。
GDAL _是一个优秀的开源地理空间库,支持读取大多数矢量和栅格空间数据格式。
这里整理了查看版本的相关命令,安装环境前后用于确认版本信息。
- postgresql版本:psql --version
- postgis版本:进入psql数据库, =# SELECT PostGIS_full_version();
- gdal版本:gdalinfo --version,gdal-config --version
- geos版本: geos-config --version
- proj版本:proj -v 或 pkg-config --modversion proj
一、安装postgresql数据库
(一)Linux系统
具体安装可参考我的另一篇博客:Ubuntu安装postgresql并连接navicat
(二)windows系统
参考链接:https://www.cnblogs.com/haolb123/p/16553099.html
二、安装postgis扩展
步骤一的链接上包含postgis的安装
三、安装gdal、geos、proj环境
(一)Linux系统
命令安装
sudo apt update && sudo apt upgrade -y
sudo apt-get install build-essential
# sudo apt-get install python3-dev python3-pip python3-setuptools
sudo apt install python-dev libpq-dev # 用于解决python库报错
sudo apt install libgeos-dev libgdal-dev # geos
sudo apt install proj-bin python3-pyproj # proj
sudo apt install binutils libproj-dev gdal-bin # gdal
export LD_LIBRARY_PATH=/usr/local/lib
编译安装
1.安装geos
# xyz 是版本信息
wget https://download.osgeo.org/geos/geos-X.Y.Z.tar.bz2
tar xjf geos-X.Y.Z.tar.bz2
cd geos-X.Y.Z
./configure
make
sudo make install
cd ..
2.安装proj
sudo apt-get install proj-bin python3-pyproj
3.安装gdal
# xyz 是版本信息
wget https://download.osgeo.org/gdal/X.Y.Z/gdal-X.Y.Z.tar.gz
tar xzf gdal-X.Y.Z.tar.gz
cd gdal-X.Y.Z
./configure
make # Go get some coffee, this takes a while.
sudo make install
cd ..
(二)windows系统
可通过安装OSGeo4W,完成gdal、geos、proj的安装。
四、设置settings配置文件
1.INSTALLED_APPS参数
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.gis', # 新增部分
'users', # 用户
]
2.GEOS_LIBRARY_PATH参数
GEOS_LIBRARY_PATH = '/usr/lib/x86_64-linux-gnu/libgeos_c.so'
# windows
GEOS_LIBRARY_PATH = r'C:\OSGeo4W\bin\geos_c.dll'
3.GDAL_LIBRARY_PATH参数
GDAL_LIBRARY_PATH = '/usr/lib/libgdal.so'
# windwos
GDAL_LIBRARY_PATH = r'C:\OSGeo4W\bin\gdal305.dll'
4.Postgis数据库配置
一定要确保django默认数据库是postgis,注释sqlite3数据库。
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'postgis_db',
'USER': 'postgis_test',
'PASSWORD': '1234',
'HOST': '127.0.0.1',
'PORT': '5432',
},
}
五、安装psycopy2库
psycopy2是python用于链接postgresql数据库的库。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ psycopg2-binary psycopy2
报错参考:python 安装 psycopg2 报错问题处理