zoukankan      html  css  js  c++  java
  • GEOS库的学习之一:介绍和编译

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

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

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

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

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

         下载网站:http://trac.osgeo.org/geos/

    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 <iostream>
    #include "geos.h"
    using namespace std;
    int main()
    {
       cout<<"GEOS库版本为:"<<GEOS_VERSION<<endl;
    }
    

    注意要引入geos.h头文件。复杂点的测试,可参考我的另一篇文章http://www.cnblogs.com/denny402/p/4965213.html

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

  • 相关阅读:
    Python 编码转换与中文处理
    odoo 基本知识
    odoo xml 时间搜索条件
    在Ubuntu Kylin 16.04 LTS 上源码方式安装odoo
    安装hive
    linux中不同颜色的文件代表什么不同的类型
    PDF神器
    网盘搜索网站
    搭建Hadoop的全分布模式
    虚拟机中操作系统的克隆方法及ip修改及硬件地址修改
  • 原文地址:https://www.cnblogs.com/denny402/p/4966558.html
Copyright © 2011-2022 走看看