pgRouting新增扩展
环境依赖:postgresql cgal boost perl
环境变量:
boost环境变量

CGAL环境变量

postgresql环境变量

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语句 效果如下

pgRouting新增扩展的更多相关文章
- 新增扩展程序功能打包提交新版 WARNING ITMS-90473 警告问题
1.问题描述 自从在主应用中加入SiriShortCut功能之后,打包程序上传至 iTunes Connect 就会出现警告,看其原因描述是CFBundleVersion主应用与子应用的不一致导致的 ...
- iOS开发系列--App扩展开发
概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...
- C#扩展方法知多少
前言:上篇 序列化效率比拼——谁是最后的赢家Newtonsoft.Json 介绍了下序列化方面的知识.看过Demo的朋友可能注意到了里面就用到过泛型的扩展方法,本篇打算总结下C#扩展方法的用法.博主打 ...
- C#中扩展方法
什么是扩展方法? 扩展方法顾名思义,就是允许向现有的“类型”添加方法,而无需创建派生类.重新编译或以其他方式修改原来类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用. 扩 ...
- 资金平台交易明细扩展开发-DEP
前言 支持农垦项目中,需要增加抓取银行接口传输数据,需求有两点:一是银企平台前置机需要增加扩展中行.农行数据字段.(代理账号.代理账户名称.代理银行) 二是EAS资金模块中的交易明细查询列表界面能够显 ...
- .NET手记-定义类和接口的扩展方法
对于iOS开发者来说,使用扩展方法是家常便饭.因为有很多的类是有系统框架的定义的,我们不能修改或者不想修改他们的源码,但是我们又想要给他添加一些扩展方法来使用.这时定义扩展方法就是很有用的方式了,正如 ...
- Windows 10 开发人员预览版中的新增功能(转自 IT之家)
Windows 10 开发人员预览版中的新增功能 在Win10预览版中安装工具与SDK后,即可着手创建Windows通用应用或先浏览目前的环境与此前相比都发生了什么变化. 应用建模 文件资源管理器: ...
- 【03】Chrome提示印象笔记剪藏插件"已停用不支持的扩展程序"怎么办?
[03] Chrome提示印象笔记剪藏插件"已停用不支持的扩展程序"怎么办? 刚好也遇上了这个问题,百度了一下,以下是解决方法,亲测可行: 1.首先把需要安装的第三方插件,后缀.c ...
- MEF学习
一. 什么是MEF MEF(Managed Extensibility Framework)是一个用于创建可扩展的轻型应用程序的库. 应用程序开发人员可利用该库发现并使用扩展,而无需进行配置. 扩 ...
随机推荐
- mysql千万级大数据SQL查询优化30条经验
转自http://blog.163.com/zhangjie_0303/blog/static/9908270620146951355834/ 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 w ...
- spring IOC 分析及实现
什么是IOC Inversion of Control,控制反转,也成依赖倒置. 反转: 依赖对象的创建被反转,使用IOC之前,对象由自己创建,反转后,由IOC容器获取 IOC容器的工作: 负责创建, ...
- FB面经Prepare: Merge K sorted Array
Merge K sorted Array 跟Merge K sorted lists不同在于,从PQ里poll出来以后不知道下一个需要被加入PQ的是哪一个 所以需要写一个wrapper class p ...
- linux ——shell 脚本
linux—shell 脚本 精简基础 2018/10/30 13 ...
- if语句&switch&Scanner
if流程控制语句: if 语句的用语法如下: if(boolean表达式){ //如果条件为true那么执行 } 只有条件为true时才会执行,否则执行if语句后面的代码. 实例代码: public ...
- Vue系列之 => webpack的url loader
安装: npm i url-loader file-loader -D //url-loader内部依赖file-loader webpack.config.js const path = requ ...
- 从Redis到Codis移植实践
一. 背景 随着业务的发展,线上Redis的数据越来越多,所以必须考虑扩容的事情了.对于redis的扩容,目前可选的方案有三种:1.client自己做sharding,一般是按key的hash值 ...
- python3 短网址和数字的相互转换的代码
下面内容是关于python3 短网址和数字的相互转换的内容. import mathimport decimal def convert_to_code(num): """ ...
- yum仓库源搭建
本地yum源搭建 cd源 mount /dev/sr0 /mnt vim /etc/yum.repos.d/base.repo [centos-base]name=centos7#baseurl=f ...
- ogg同步DDL时,源和目标端表空间名称不同的解决思路
在OGG同步过程中,经常会碰上有创建表或表空间的同步,往往因为源和目标的平台不同,如aix->linux or linux->windows,这两个平台的表空间也经常不同,在目标端执行DD ...