从零开始搭建WebGIS网站(四)-PostGIS与PgRouting安装

# 写在前面

本文衔接上一篇文章: 

从零开始搭建WebGIS网站(三)-PG数据库准备-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_50917429/article/details/138450428

        本文主要介绍在阿里云 Ubuntu 服务器上的 Postgresql 数据库中安装空间数据管理的插件 PostGIS 和 PgRouting,同时介绍一下空间数据在 PG 数据库中的导入导出过程。这一步相较于先前几步十分繁琐,主要参考的几篇文章有很多细节问题,这里列一下参考的几篇博客/文章:

  •  PostGIS 安装:文章很多关键库并非最新版本,参考安装最新版本未能成功。
  •  PgRouting 安装:官网安装教程,安装需注意增加小细节否则安装失败。
  •  数据导入导出:数据顺利导出,但导出存储过程函数需要参考另一篇博文

1 PostGIS 安装

        首先赋予 postgres 用户超级用户的权限,便于后续安装软件到指定目录:

# 在root用户下修改postgres用户密码
passwd postgres
# 将postgres加入超级用户组
grep '^sudo:' /etc/group && adduser postgres sudo
# 切换到postgres用户,同时验证是否具有sudo权限
su postgres && sudo ll /root

        随后安装一系列依赖库,首先是一些用 apt 可以快速便捷自动安装的,这样的安装方式不能保证安装库是最新的,但是是最省时省力的,否则参考博文一个个手动安装会让你怀疑人生:

sudo apt-get update && sudo apt-get install libxml2 && sudo apt-get install libxml2-dev && sudo apt-get install libgdal-dev

        然后是手动安装最新版的 protobuf 和 protobuf-c,参考如下:

# 下载安装包同时解压
wget https://github.com/protocolbuffers/protobuf/releases/download/v26.1/protobuf-26.1.tar.gz
tar -zxvf protobuf-26.1.tar.gz
# 编译安装包,如果编译环境没准备好请参考连载第三篇文章,时间可能较长
cd protobuf-3.20.3 && ./configure && make
# 安装到默认路径下,同时更新各种链接库
sudo make install && sudo ldconfig
# 查看protoc版本,查看成功即安装成功
protoc --version
# protobuf-c是额外的几个链接库,安装过程同上
wget https://github.com/protobuf-c/protobuf-c/releases/download/v1.5.0/protobuf-c-1.5.0.tar.gz
tar -zxvf protobuf-c-1.5.0.tar.gz
cd protobuf-c-1.5.0 && ./configure && make
sudo make install && sudo ldconfig

         正式安装 PostGIS 插件,参考如下:

# 下载安装包同时解压
wget https://download.osgeo.org/postgis/source/postgis-3.4.2.tar.gz
tar -zxvf postgis-3.4.2.tar.gz
# 编译安装包,需要指定PG数据库位置,同时更改安装路径到/pgsql/postgis/
./configure --prefix=/pgsql/postgis/ --with-pgconfig=/pgsql/postgresql/bin/pg_config && make
# 使用root权限进行安装,安装成功后会产生/pgsql/postgis/文件夹
sudo make install

        如果你没有报任何错误,那么恭喜你已经成功了一大半了,这个时候进入数据库安装 postgis 插件,参考如下:

# 登入PG数据库,为了方便可以通过在~/.bashrc中声明alias psql='psql -p 6543'
psql -p 6543
# 安装两个插件,如果不报错则说明postgis安装成功!!!
create extension postgis;
create extension postgis_raster;

2 PgRouting 安装

         参考官网安装教程,需要注意在编译的时候加入参数指定PG数据库的位置,参考如下:

# 下载安装包同时编译安装包
wget -O pgrouting-3.6.2.tar.gz    https://github.com/pgRouting/pgrouting/archive/v3.6.2.tar.gz
cd pgrouting-3.6.2
mkdir build && cd build
# 没有安装cmake使用apt-get install安装,需要指定PG数据库位置,同时指定安装路径
cmake -DCMAKE_INSTALL_PREFIX=/pgsql/pgrouting -DPOSTGRESQL_PG_CONFIG=/pgsql/postgresql/bin/pg_config .. && make
sudo make install 
# psql -p 6543 登录PG数据库,添加插件
CREATE EXTENSION pgRouting;

 3 导出表以及存储过程

        切换到 postgres 用户下,使用 pg_dump 导出数据,示例入下(在不指定数据库名称时默认是用户同名的数据库):

# 导出postgres数据库中的一系列表
pg_dump -U postgres -p 6543 -t public.cities_4326 > ~/dump_cities_4326.sql
pg_dump -U postgres -p 6543 -t public.footprints > ~/dump_footprints.sql
pg_dump -U postgres -p 6543 -t public.province_4326 > ~/dump_province.sql
pg_dump -U postgres -p 6543 -t public.wuhan_roads_3857 > ~/dump_wuhan_roads_3857.sql
pg_dump -U postgres -p 6543 -t public.wuhan_roads_3857_vertices_pgr > ~/dump_wuhan_roads_3857_vertices_pgr.sql
pg_dump -U postgres -p 6543 -t public.logins > ~/dump_logins.sql
# 导出wuhan_reviews整个数据库
pg_dump -U postgres -p 6543 wuhan_reviews > wuchan_reviews.sql

        导出存储过程相对比较麻烦,需要三个步骤:

# 首先导出整个名为postgres的数据库到~/postgres.dmp
pg_dump -U postgres -p 6543 postgres -Fc -v -s -f ~/postgres.dmp
# 使用关键字FUNCTION过滤出存储过程函数列表
pg_restore -l ~/postgres.dmp | grep FUNCTION > ~/funcion_list
# 导出相关函数创建的sql语句
pg_restore -L ~/funcion_list ~/postgres.dmp > ~/function_list.sql

        因为我自己写了部分存储过程,可以直接查看~/function_list.sql把相关存储过程的创建语句提取出来,然后手动在新的数据库中创建。

4 导入数据到新数据库

        存储过程需要手动创建,这里仅展示整个数据库wuhan_reviews和一些表的导入过程:

# 导入表到postgres用户的postgres数据库中
psql -U postgres -p 6543 < dump_cities_4326.sql 
psql -U postgres -p 6543 < dump_footprints.sql 
psql -U postgres -p 6543 < dump_province.sql 
psql -U postgres -p 6543 < dump_wuhan_roads_3857.sql 
psql -U postgres -p 6543 < dump_wuhan_roads_3857_vertices_pgr.sql 
psql -U postgres -p 6543 < dump_logins.sql
# 导入整个数据库给postgres用户 
psql -U postgres -p 6543 wuhan_reviews < wuhan_reviews.sql
  • 27
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
开发一个从零开始WebGIS三维项目需要经历以下几个步骤: 1.需求分析:首先,我们需要仔细分析项目的需求,包括功能、数据和用户要求。通过对项目需求的深入了解,我们能够确保项目的开发能够满足用户的期望。 2.数据准备:在项目开始之前,我们需要收集和准备所需的地理空间数据。这可能涉及到数据的采集、清理和处理,以及与其他数据源的集成。 3.技术选型:根据需求和数据准备情况,我们需要选择合适的技术来实现项目。通常,WebGIS三维项目会使用一些常见的开发框架和技术,如JavaScript、HTML5和CSS3。同时,还需要选择适合的三维地理信息系统工具和库,如CesiumJS或Three.js。 4.系统设计:在进行项目开发之前,我们需要进行系统设计。这包括定义系统的架构、模块和组件,并确定它们之间的关系和交互方式。同时,还需要设计用户界面和用户体验,以确保用户能够方便地浏览和操作三维地理空间数据。 5.开发和测试:在系统设计完成后,我们可以开始项目的开发和测试。开发过程中,我们按照设计规范和要求,逐步实现系统的各个模块和功能。同时,我们需要进行测试来确保系统的正确性、稳定性和性能。 6.部署和上线:当项目开发和测试完成后,我们可以将系统部署到服务器上,并进行上线。通过将系统部署到互联网上,用户可以通过浏览器访问和使用WebGIS三维项目。 7.维护和优化:一旦项目上线,我们还需要进行系统的维护和优化。这包括持续性地收集用户反馈和需求,并及时修复系统中的bug和问题。同时,我们还需要不断改进系统的性能和用户体验,以提高用户满意度。 总之,从零开始开发WebGIS三维项目需要经历需求分析、数据准备、技术选型、系统设计、开发和测试、部署和上线,以及维护和优化等多个步骤。通过合理的计划和实施,我们可以成功地开发出满足用户需求的WebGIS三维项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值