GEOS库在windows中的编译和测试(vs2012)
版本:vs2012, geos3.5
一、下载和编译
这类的文章比较,不再具体细说,可以参考 http://blog.csdn.net/wangqinghao/article/details/8201319
我的软件保存目录是d:/geos350/,编译成功后,会在d:/geos350/src目录下生成一个geos_c_i.lib库。
在VS中新建项目后,需要进行配置,只需要三处地方:
第一处:属性--配置属性---c/c++---常规,添加附加包含目录d:/geos350/include
第二处:属性--配置属性---链接器---常规,附加库目录d:/geos350/src
第三处:属性--配置属性---链接器--输入,附加依赖项:geos_c_i.lib
二、测试
先添加头文件: #include "geos.h"
void test();
string str(bool flag);
int main(int argc,char *argv[])
{
test();
system("pause");
return ;
} void test()
{
cout<<"GEOS库版本为:"<<GEOS_VERSION<<endl; typedef Coordinate PT;
GeometryFactory factory;
CoordinateArraySequenceFactory csf; //构建第一个矩形p1
CoordinateSequence* cs1 = csf.create(,);//五个2维点,第三维度z始终为0
cs1->setAt(PT(,),);
cs1->setAt(PT(,),);
cs1->setAt(PT(,),);
cs1->setAt(PT(,),);
cs1->setAt(PT(,),); //与第一个点相等,构成闭合
LinearRing* ring1 = factory.createLinearRing(cs1); //点构成线
Geometry* p1 = factory.createPolygon(ring1,NULL); //线构成面 CoordinateSequence* cs2 = csf.create(,); //构建一个四边形p2
cs2->setAt(PT(,),);
cs2->setAt(PT(,),);
cs2->setAt(PT(,),);
cs2->setAt(PT(,),);
cs2->setAt(PT(,),);
LinearRing * ring2 = factory.createLinearRing(cs2);
Geometry* p2 = (factory.createPolygon(ring2,NULL)); CoordinateSequence *cs3 = new CoordinateArraySequence(); //构建一个三角形p3
int xoffset=,yoffset=,side=;
cs3->add(PT(xoffset, yoffset));
cs3->add(PT(xoffset, yoffset+side));
cs3->add(PT(xoffset+side, yoffset+side));
cs3->add(PT(xoffset, yoffset));
LinearRing * ring3 = factory.createLinearRing(cs3);
Geometry* p3 = (factory.createPolygon(ring3,NULL));
bool flag12=p1->intersects(p2);
bool flag13=p1->intersects(p3);
bool flag23=p2->intersects(p3);
cout<<"图1与图2:"<<str(flag12)<<endl;
cout<<"图1与图3:"<<str(flag13)<<endl;
cout<<"图2与图3:"<<str(flag23)<<endl;
}
string str(bool flag)
{
string result=(flag==true)?"相交":"不相交";
return result;
}
结果:

GEOS库在windows中的编译和测试(vs2012)的更多相关文章
- 判断OpenCV是否为共享库,Windows基于CMake编译Caffe需要opencv共享库
判断OpenCV是否为共享库,Windows基于CMake编译Caffe需要opencv共享库 TLDR 只考虑windows下opencv预编译包的情况. 对于opencv2.4.x系列,cmake ...
- boost库在windows下的编译和使用
因为跨平台的原因,现在要使用到boost库,boost库非常大,现在处于摸索阶段. 首先来说boost库在window下的安装和使用. 一.下载 首先从boost官方主页http://www.boos ...
- Ubuntu中安装编译并测试HTK语音识别库
1.在网上看到首先必须确保电脑上安装了g++和libx11 g++ --version //检测g++版本 sudo apt-get install libx11-dev:i386 2.然后可从HTK ...
- QT库在Windows上的编译
1.从http://www.qtcentre.org/下载QT源代码,注意是源代码.我下载到的是QT4.5.1版,文件名为qt-win-opensource-src-4.5.1.zip: 2.解压,注 ...
- LevelDB windows vs2013 c++编译和测试
引用: (src1) :http://download.csdn.net/detail/flyfish1986/8881263(这里有下载地址) (src2) :http://blog.csdn.ne ...
- appache 在windows 中无法启动的测试
使用phpstudy刚启动就自动停止,排除端口被占用后,总感觉找不到好的调试方法 网上找了一些资料,这个方法不错,所以就记录了下来.最好的办法是找appache的bin目录,打开运行,输入httpd. ...
- 使用VS2010编译64的Geos库
Geos库在cmake中总是报错,所以我决定试试nmake编译64位的库.现将编译过程记录如下: 1.下载Geos,我下的是最新版3.5.0,地址在 http://trac.osgeo.org/geo ...
- Windows中的库编程
Windows操作系统中,库分为动态链接库(dll)和静态链接库(lib) 动态库是Windows中实现代码共享的一种方式.它是一个二进制式文件,不可单独运行,需要调用方调用才能运行.在Windows ...
- Windows下PythonQt编译(vs2015+Qt5.11.2+PythonQt 3.2)探索
时间:2018年10月20日 笔者最近在做Qt方面的开发工作,需用到脚本程序对程序内部进行扩展,就很自然的想到了PythonQt,下面介绍PythonQt在Windows下的的安装编译心得,水平有限, ...
随机推荐
- Android线程管理(二)——ActivityThread
线程通信.ActivityThread及Thread类是理解Android线程管理的关键. 线程,作为CPU调度资源的基本单位,在Android等针对嵌入式设备的操作系统中,有着非常重要和基础的作用. ...
- Silverlight项目笔记2:.svc处理程序映射缺失导致的WCF RIA Services异常
在确定代码.编译结果和数据库都正常的情况下,无法从数据库取到数据.错误提示:Sysyem.Net.WebException:远程服务器返回了错误:NotFound,监听发现请求数据库的服务异常,访问相 ...
- MJExtension简介
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- Sqlserver创建连接MySql的链接服务器
第一步:在MySql服务器上安装与系统对应的 MySql-Connector-ODBC 官方下载地址 安装过程中可能会报 缺失 msvcr100.dll 的错误,这需要你根据系统到网上下载对应的这个 ...
- mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
本人开发项目时,在从一个服务器导出数据库到另一服务器时,存储过程中,报Incorrect DECIMAL value: '0' for column '' at row -1错误. 原因: 存储过程中 ...
- Swing应用开发实战系列之一:自定义JdbcTemplate
笔者本人真正意义上接触编程开发是在2004年,最早用的就是VB,然后是Delphi等,后来转到.Net,中间断断续续还用过PowerBuilder等,无一例外,所研发设计的项目或系统都是WinForm ...
- uname
uname uname用于打印操作系统和硬件架构相关的信息,对于可能在多个系统或架构上运行的Shell脚本程序很有用, 缺省选项相当于 -s 或--system $uname [-amnrsvpio] ...
- [分享]一个String工具类,也许你的项目中会用得到
每次做项目都会遇到字符串的处理,每次都会去写一个StringUtil,完成一些功能. 但其实每次要的功能都差不多: 1.判断类(包括NULL和空串.是否是空白字符串等) 2.默认值 3.去空白(tri ...
- Same Tree
Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...
- SQL Server 2012 AlwaysOn集群配置指南
1. AlwaysOn介绍 AlwaysOn是SQL Server 2012提供的全新综合.灵活.高效经济的高可用性和灾难恢复解决方案.它整合了镜像和群集的功能,基于OS 故障转移群集(Windows ...