博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GEOS库的学习之一:介绍和编译
阅读量:6231 次
发布时间:2019-06-21

本文共 1119 字,大约阅读时间需要 3 分钟。

对GEOS库的学习,源于一个项目:要在c++中判断二维平面中两个多边形的关系(无论凹凸)。也就是判断两个多边形是否相交、相容等。听起来很简单,可实现起来却比较难,而项目又催得紧。于是我去搜索了一下,看是否有相关的开源库,用于判断空间关系的。没想到还真有,比如:基于JAVA语言的JTS库,基于Javascript的openlayers库,以及基于c++的geos库等。

搜索了一下关于geos库的使用教程,以及官方示例文档,几乎为0。官方只有提供API文档,没有提供tutorial之类的东西,其它网友的教程更是没有,想学就得自己去学,去摸索。这要了亲命了!!只有自己慢慢去啃吧,好在不是太难。把自己所摸索的记录下来,便成了这些文字。自己摸索学习,难免会有很多错误,希望看见了的给予指正。

关于geos库的编译,其实很简单

我使用的是vs2012+geos3.50版本。

1. 下载geos-3.5.0,放在d:\geos350中

     下载网站:

2. 进入Visual Studio Tools下的VS2012 开发人员命令提示,本例为

  C:\Program Files (x86)\Microsoft Visual Studio 11.0>

3、依次执行如下命令

 

>VCVARS32.BAT>cd d:\geos350>atuogen.bat>nmake /f makefile.vc>

编译成功后,会在d:\geos350/src目录下生成geos.lib, geos_i.lib, geos_c_i.lib, geos.dll, geos_c.dll等五个文件

接下来,在VS中新建项目后,需要进行配置,只需要三处地方:

第一处:属性--配置属性---c/c++---常规,添加附加包含目录d:/geos350/include

第二处:属性--配置属性---链接器---常规,附加库目录d:/geos350/src

第三处:属性--配置属性---链接器--输入,附加依赖项:geos_c_i.lib  (依赖geos.lib会有“检测到RuntimeLibrary不匹配项”的错误,没找到原因)

配置完好,就可以写代码进行测试:

最简单的测试代码:

#include 
#include "geos.h"using namespace std;int main(){ cout<<"GEOS库版本为:"<
<

注意要引入geos.h头文件。复杂点的测试,可参考我的另一篇文章

最后,运行完你的测试代码后,还需要将geos_c.dll复制到项目下的DEBUG目录下。

 

转载地址:http://wptna.baihongyu.com/

你可能感兴趣的文章
[MicroPython]TurniBit开发板DIY自动窗帘模拟系统
查看>>
Python3.4 12306 2015年3月验证码识别
查看>>
从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
查看>>
windows查看端口占用
查看>>
Yii用ajax实现无刷新检索更新CListView数据
查看>>
JDBC的事务
查看>>
Io流的概述
查看>>
App 卸载记录
查看>>
JavaScript变量和作用域
查看>>
开源SIP服务器加密软件NethidPro升级
查看>>
作业:实现简单的shell sed替换功能和修改haproxy配置文件
查看>>
Altium 拼板方法以及 注意的 地方
查看>>
Apache Pulsar中的地域复制,第1篇:概念和功能
查看>>
python pip install 出现 OSError: [Errno 1] Operation not permitted
查看>>
oracle12C 重做日志
查看>>
zookeeper与kafka安装部署及java环境搭建(发布订阅模式)
查看>>
从源码分析scrollTo、scrollBy、Scroller方法的区别和作用
查看>>
ObjectOutputStream和ObjectInputStream
查看>>
创建使用 framework和 a静态库
查看>>
Codeigniter 4.0-dev 版源码学习笔记之五——相对于 3.x 的变化
查看>>