版本: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. 提高Objective-C代码质量心机一:简化写法

    提高OC代码质量的小心机 一.OC特性 OC 为 C 语言添加了面向对象特性,是其超集; OC 使用动态绑定的消息结构,也就是,在运行时才会检查对象类型; 接收一条消息后,究竟应执行何种代码,由运行期 ...

  2. LeetCode 4 Median of Two Sorted Arrays (两个数组的mid值)

    题目来源:https://leetcode.com/problems/median-of-two-sorted-arrays/ There are two sorted arrays nums1 an ...

  3. 转 Java多线程中Sleep与Wait的区别

    Java中的多线程是一种抢占式的机制,而不是分时机制.抢占式的机制是有多个线程处于可运行状态,但是只有一个线程在运行. 共同点: 1. 他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数, ...

  4. Struts2-tomcat报错:There is no Action mapped for namespace / and action

    HTTP Status 404 - There is no Action mapped for namespace / and action name first. type Status repor ...

  5. Nginx安装学习使用详细记录

    选择Nginx的优点:Nginx 可以在大多数 Unix like OS 上编译运行,并有 Windows 移植版. Nginx 的1.4.0稳定版已经于2013年4月24日发布,一般情况下,对于新建 ...

  6. sudo简单命令语法及配置

    参考:http://yangrong.blog.51cto.com/6945369/1289452, https://wiki.archlinux.org/index.php/Sudo_(%E7%AE ...

  7. 系统调用wait、waitpid和exec函数

    本文介绍了Linux下的进程的一些概念,并着重讲解了与Linux进程管理相关的重要系统调用wait,waitpid和exec函数族,辅助一些例程说明了它们的特点和使用方法. 1.7 背景 在前面的文章 ...

  8. mini2440的SDRAM分析

    首先是2440的存储控制器: 暂时不管是从nand启动还是nor启动,因为我现在只关注内存,从上图可以看到由2440的Memory Controller可以寻址的范围是0x0000,0000---0x ...

  9. WordCount Analysis

    1.Create a new java project, then copy examples folder from /home/hadoop/hadoop-1.0.4/src; Create a ...

  10. [转]jquery Fancybox丰富的弹出层效果

    本文转自:http://www.helloweba.com/view-blog-65.html Fancybox是一款优秀的jquery插件,它能够展示丰富的弹出层效果.前面我们有文章介绍了facyb ...