版本: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)的更多相关文章

  1. 判断OpenCV是否为共享库,Windows基于CMake编译Caffe需要opencv共享库

    判断OpenCV是否为共享库,Windows基于CMake编译Caffe需要opencv共享库 TLDR 只考虑windows下opencv预编译包的情况. 对于opencv2.4.x系列,cmake ...

  2. boost库在windows下的编译和使用

    因为跨平台的原因,现在要使用到boost库,boost库非常大,现在处于摸索阶段. 首先来说boost库在window下的安装和使用. 一.下载 首先从boost官方主页http://www.boos ...

  3. Ubuntu中安装编译并测试HTK语音识别库

    1.在网上看到首先必须确保电脑上安装了g++和libx11 g++ --version //检测g++版本 sudo apt-get install libx11-dev:i386 2.然后可从HTK ...

  4. QT库在Windows上的编译

    1.从http://www.qtcentre.org/下载QT源代码,注意是源代码.我下载到的是QT4.5.1版,文件名为qt-win-opensource-src-4.5.1.zip: 2.解压,注 ...

  5. LevelDB windows vs2013 c++编译和测试

    引用: (src1) :http://download.csdn.net/detail/flyfish1986/8881263(这里有下载地址) (src2) :http://blog.csdn.ne ...

  6. appache 在windows 中无法启动的测试

    使用phpstudy刚启动就自动停止,排除端口被占用后,总感觉找不到好的调试方法 网上找了一些资料,这个方法不错,所以就记录了下来.最好的办法是找appache的bin目录,打开运行,输入httpd. ...

  7. 使用VS2010编译64的Geos库

    Geos库在cmake中总是报错,所以我决定试试nmake编译64位的库.现将编译过程记录如下: 1.下载Geos,我下的是最新版3.5.0,地址在 http://trac.osgeo.org/geo ...

  8. Windows中的库编程

    Windows操作系统中,库分为动态链接库(dll)和静态链接库(lib) 动态库是Windows中实现代码共享的一种方式.它是一个二进制式文件,不可单独运行,需要调用方调用才能运行.在Windows ...

  9. Windows下PythonQt编译(vs2015+Qt5.11.2+PythonQt 3.2)探索

    时间:2018年10月20日 笔者最近在做Qt方面的开发工作,需用到脚本程序对程序内部进行扩展,就很自然的想到了PythonQt,下面介绍PythonQt在Windows下的的安装编译心得,水平有限, ...

随机推荐

  1. iOS开发过程中,触控板的使用技巧

    1.在Storyboard鼠标右键可以直接拖线的,如果你用的是外接的第三方鼠标,没必要按着 control 键再用鼠标左键拖线 如果是触控板的话,双指按下去就可以直接拖线,带3Dtouch功能的触控板 ...

  2. java Hello 出现以下结果:Bad command or the file name 可能是什么原因

    没有这个命令或文件名 原因可能是没有成功安装jdk或者没有配置好jdk 的环境变量,或者没有编译相应的文件. 2. 出现以下结果:Exception in thread “main” java.lan ...

  3. C/S架构程序多种类服务器之间实现单点登录(转)

    (一) 在项目开发的过程中,经常会出现这样的情况:我们的产品包括很多,以QQ举例,如登陆.好友下载.群下载.网络硬盘.QQ游戏.QQ音乐等,总不能要求用户每次输入用户名.密码吧,为解决这个问题,高手提 ...

  4. java使用httpcomponents发送get请求

    一.适用场景 在ESTful webservice中,get方法一般都是用来获取数据.我们可以使用httpcomponents组件来完成调用. 如我们需要发起get请求,携带的参数都是附加到请求的ur ...

  5. hibernate基本类型映射

    model包: Book.java: package model; import java.sql.Blob;import java.util.Date; public class Book {   ...

  6. VS2010 调试窗口一闪而过解决方法

    若此时进行的操作是编译(F5),可先运行程序(Ctrl+F5),若仍然一闪而过,用下面方法解决. 方法一: 1.要有头文件cstdlib,在程序最后写一句(return之前)添加:system(&qu ...

  7. zip文件jQuery工作地点选择城市代码

    效果 地址下载:http://download.csdn.net/detail/xiaoliu123586/9201925 2.效果 源码:http://download.csdn.net/detai ...

  8. IOS版本被拒的经历

    IOS版本被拒的经历: 1,登陆方式依赖外部平台 因为我们的APP是只用微博登陆,想做成类似meerkat类型的,也能各种消息都同步微博. 结果当然行不通,这个确实是不听好人言,网上多个人都说过这个问 ...

  9. Can't initialize metastore for hive

    there maybe many reason to cause this,today our issue is that, if you execute hive –database dbname ...

  10. Storm 基础知识

    分布式的实时计算框架,storm对于实时计算的意义类似于hadoop对于批处理的意义. Storm的适用场景: 1.流数据处理:storm可以用来处理流式数据,处理之后将结果写到某个存入中去. 2.持 ...