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目录下。

  • 相关阅读:
    ssh 私匙登录, 文件rswrst权限
    从内存使用的角度来理解.Net底层架构
    (转)C#为什么要使用Invoke,它和BeginInvoke有什么区别
    如何通过微信自定义菜单跳转到自己的网站
    (转)HubbleDotNet+Mongodb 构建高性能搜索引擎--概述
    (转)HubbleDotNet 和 Lucene.net 性能对比测试
    C#异步提示和技巧
    关于System.Windows.Forms.DateTimePicker的一个Bug
    关于frameset中指定区域回退的实现
    java.lang.NoClassDefFoundError Adding a jar to an RCP application
  • 原文地址:https://www.cnblogs.com/denny402/p/4966558.html
Copyright © 2011-2022 走看看