地理国情普查数字档案馆系统从零搭建实操指南(零门槛)
前置环境准备
1. 操作系统:CentOS 7.9 x86_64,执行系统依赖安装命令:
```bash yum install centos-release-scl gcc make postgresql-server postgresql-contrib postgis postgis-utils java-11-openjdk -y ```2. 硬件要求:CPU≥4核,内存≥8G,硬盘≥500G(预留数据存储空间)
第一步:空间数据库(PostGIS)部署
1. 初始化PostgreSQL服务
执行以下命令完成服务初始化与启动:
```bash postgresql-setup --initdb --unit postgresql systemctl enable postgresql systemctl start postgresql ```2. 创建国情普查专属数据库
切换到postgres用户,创建数据库并启用PostGIS空间扩展:
```bash su - postgres createdb geo_census psql -d geo_census -c "CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology;" ```必须修改配置文件:pg_hba.conf最后添加「local all all trust」,postgresql.conf中「listen_addresses = ''」,否则连接失败
第二步:GeoServer地理数据服务部署
1. 下载并启动GeoServer
直接下载稳定版GeoServer 2.20.5并启动:
```bash wget https://sourceforge.net/projects/geoserver/files/GeoServer/2.20.5/geoserver-2.20.5-bin.zip/download -O geoserver.zip unzip geoserver.zip -d /opt/ /opt/geoserver-2.20.5/bin/startup.sh ```2. 配置PostGIS数据源
浏览器访问「http://你的服务器IP:8080/geoserver」,默认账号admin/geoserver,操作:
1. 点击「Stores→Add a new Store→PostGIS」
2. 填写参数:Name填geo_census,Database填geo_census,User填postgres,密码留空
3. 点击「Test」按钮,显示「Connection successful」后再点击「Save」
第三步:数字档案馆Web端搭建(Django框架)
1. 安装依赖包

执行命令安装Web框架及地理数据插件:
```bash pip3 install Django psycopg2-binary django-leaflet ```2. 创建项目并配置数据库
创建项目并修改配置文件:
```bash django-admin startproject geo_archive cd geo_archive ```编辑settings.py,替换DATABASES部分:
```python DATABASES = { 'default': { 'ENGINE': 'django.contrib.gis.db.backends.postgis', 'NAME': 'geo_census', 'USER': 'postgres', 'PASSWORD': '', 'HOST': 'localhost', 'PORT': '5432', } } ```在INSTALLED_APPS中添加「'leaflet'」,再执行数据迁移:
```bash python3 manage.py startapp archive python3 manage.py makemigrations python3 manage.py migrate ```第四步:国情普查数据导入
准备好EPSG:4326坐标系的SHP格式国情普查边界数据,执行导入命令:
```bash shp2pgsql -s 4326 -I ./census_boundary.shp public.census_boundary | psql -d geo_census ```若SHP坐标系非EPSG:4326,需先转换:ogr2ogr -f "ESRI Shapefile" -t_srs EPSG:4326 ./new_boundary.shp ./old_boundary.shp
第五步:系统可用性验证
1. 重启所有服务:
```bash /opt/geoserver-2.20.5/bin/shutdown.sh; /opt/geoserver-2.20.5/bin/startup.sh python3 manage.py runserver 0.0.0.0:8000 ```2. 图层验证:
- GeoServer端:访问「http://服务器IP:8080/geoserver」→「Layer Preview」→选择geo_census:census_boundary→OpenLayers,确认边界正常渲染
- Web端:访问「http://服务器IP:8000」,添加Leaflet地图组件加载该图层,确认页面显示正常