pgRouting新增扩展

环境依赖:postgresql cgal boost perl

环境变量:

boost环境变量

pgRouting新增扩展

CGAL环境变量

pgRouting新增扩展

postgresql环境变量

pgRouting新增扩展

1.新建C++ 空项目

pgRouting新增扩展

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

pgRouting新增扩展

pgRouting新增扩展

连接器附加依赖项

$(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

pgRouting新增扩展

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

pgRouting新增扩展

代码如下

pgRouting新增扩展

很简单一个加法的例子 生成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

内容 pgRouting新增扩展

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

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

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

pgRouting新增扩展

上一篇:Django中的admin


下一篇:PHP联系人表格,一直有效直到迁移.警告:mail()[function.mail]:mail()函数的参数错误,未发送邮件