pgRouting新增扩展

 环境依赖:postgresql cgal boost perl 

boost安装包下载路径:https://dl.bintray.com/boostorg/release/1.68.0/binaries/

环境变量:

boost环境变量

CGAL环境变量

postgresql环境变量

 

pgRouting源码编译,参考如下

https://blog.csdn.net/zsc201825/article/details/88701611 

 

1.新建C++ 空项目

 

2,添加common引用,更改配置信息

包含目录

E:\PostgreSQL\10\include
E:\PostgreSQL\10\include\server
E:\PostgreSQL\10\include\server\port\win32
E:\PostgreSQL\10\include\server\port\win32_msvc
C:\local\boost_1_68_0
C:\dev\CGAL-4.13\include
F:\Code\pgrouting\include

 

 

连接器附加依赖项

$(POSTGRESQL_ROOT)\10\lib\postgres.lib
$(CGAL_DIR)\lib\Debug\CGAL-vc140-mt-gd-4.13.lib
$(CGAL_DIR)\auxiliary\gmp\lib\libgmp-10.lib
$(BOOST_LIBRARYDIR)\boost_thread-vc141-mt-gd-x64-1_68.lib
$(BOOST_LIBRARYDIR)\boost_system-vc141-mt-gd-x64-1_68.lib
$(BOOST_LIBRARYDIR)\boost_chrono-vc141-mt-gd-x64-1_68.lib
$(BOOST_LIBRARYDIR)\boost_date_time-vc141-mt-gd-x64-1_68.lib
$(BOOST_LIBRARYDIR)\boost_atomic-vc141-mt-gd-x64-1_68.lib

 

 

 

3.新建.c .h .cpp  文件

 

 代码如下

很简单一个加法的例子 生成dll拷贝到postgis/10/bin/lib文件夹下

还需要准备2个文件一个.sql 文件和.control文件

.sql文件命名最好是保持和函数名一样  需要在以--1.0  结尾 

例如本次我的名字为: city_extion_nettopo--1.0.sql

内容如下:

CREATE FUNCTION city_extion_nettopo(integer,integer)
returns integer
as '$libdir/CityNetTopoExtend', 'city_extion_nettopo'
language C immutable strict;

 

control文件 命名如下 city_extion_nettopo.control

内容 

将.sql文件和control 拷贝到E:\PostgreSQL\10\share\extension

 

5.在数据库中添加扩展 会有一个名为 city_extion_nettopo 的扩展

添加成功后可以执行sql语句 效果如下

 

posted @ 2019-03-21 19:07  City疯子  阅读(589)  评论(0编辑  收藏  举报