当前位置: 首页 > 工具软件 > GeoDjango > 使用案例 >

【GeoDjango框架解析】如何正确配置geodjango开发环境

羊舌承颜
2023-12-01

原文作者:我辈理想
版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。

系列文章目录

【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

一、安装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 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 报错问题处理


总结

 类似资料: