由于需要计算GIS障碍物的缓冲区,所以研究了 一下GEOS库的使用,将使用的一些细节内容记录一下:

1、vs2010IDE无法编译较高版本的GEOS库,较高版本的库使用了更加高级的C++语法,如果想使用高版本的GEOS库可能仅仅使用geos_c,这种用c接口的相对比较稳定,可以用较低版本的编译器支持高版本的GEOS;

2、geos提供了GEOS的空间数据结构是参考OGC的Simple Features Specification for SQL(SFS),自己的开发类似的GIS系统时候,数据结构应该参考这样的结构,便于开发;

3、geos的中文文档很少,参考少数网上的代码,加上开发文档和GEOS的测试用例能够帮助快速了解GEOS的使用。

下面是从网上搜集的GEOS的相关库的细节(主要参考了博主https://blog.csdn.net/dongyesang/article/details/78979287)的内容:

1、GEOS的前身是JTS,JTS提供了全功能的,强大的空间操作和空间判断。 后来PostGIS缺少一套完整的空间查询操作,于是就将JTS移植成为C++版本,正式命名为GEOS。GEOS为开源库,它包括了完整的空间查询和一大部分空间操作,是从事图形操作和GIS行业开发人员经常接触的开发库。较为知名的使用GEOS的GIS软件就有QGIS,QGIS使用GEOS的c接口,c接口函数名称不会经常发生更改,具有更多的稳定性。 

2、geos的数据结构关系如下  

3、geos有三个库geos_c、geos-static、geos生成的动态库不一样,geos生成c++的动态库,geos_c生成c的接口,geos-static生成静态库,根据需要使用想要的库。

4、当我使用vs2010新建x64平台编译geos项目的时候,因为是复制win32平台得到x64,编译的时候有时候会出现 fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突 这样的错误,按照网上的解决办法,在连接器->命令行->其它选项里面有 %(AdditionalOptions) /machine:X86 ,删除这句话编译就成功了。

GEOS使用记录的更多相关文章

  1. GEOS 使用记录

    GEOS 使用记录 官网 https://trac.osgeo.org/geos/ https://libgeos.org/ 下载地址 https://libgeos.org/usage/downlo ...

  2. SpatiaLite 数据库使用记录

    SpatiaLite 数据库使用记录 官网 https://www.gaia-gis.it/fossil/libspatialite/index 下载地址 https://www.gaia-gis.i ...

  3. 使用VS2010编译64的Geos库

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

  4. GEOS库的学习之一:介绍和编译

    对GEOS库的学习,源于一个项目:要在c++中判断二维平面中两个多边形的关系(无论凹凸).也就是判断两个多边形是否相交.相容等.听起来很简单,可实现起来却比较难,而项目又催得紧.于是我去搜索了一下,看 ...

  5. Win64下编译集成GEOS和Proj4的GDAL

    目录 1.编译GEOS 2.编译Proj4 3.GDAL集成Proj4和GEOS 1) 修改安装的目录 2) 配置Proj4 3) 配置GEOS 4) 自定义动态库名称(可跳过) 5) 编译 1.编译 ...

  6. GEOS编译

    GEOS是开源的空间运算引擎,最近用到,在这里记录下. 目录 GEOS简介 GEOS编译 一.GEOS简介 GEOS(几何引擎 - 开源)是一个具有完整空间查询和分析功能的C++库.它包括所有Open ...

  7. GEOS/GDAL 交叉编译ARM64-linux版本

    目录 安装编译环境 编译PROJ.4 编译GEOS 编译GDAL 编译后程序运行注意事项 因为试用华为云ARM64服务器(CentOS 7 操作系统)的时候,在云服务器上编译GDAL很长时间也没有编译 ...

  8. GDAL集成GEOS

    因为要用到缓冲区分析,在使用Buffer的时候提示:ERROR 6: GEOS support not enabled,查了一下资料需要集成GEOS库.因为GDLA默认编译是没有集成GEOS库的. 现 ...

  9. geos编译问题

    gdal编译geos的时候会用到geos_c_i.lib这个文件,我用cmake编译的时候仅仅产生geos_c.lib这个文件,所以只能使用nmake的编译方式来编译geos库,nmake编译geos ...

随机推荐

  1. Java一般命名规范

    一.项目名称 最好用英文,所有单词全部用小写,如testjavaproject.studentmanagement等,当然也也可以用中文,如"学生管理系统"等. 二.Java pr ...

  2. [转]SpringBoot系列——花里胡哨的banner.txt

    Creating ASCII Text Banners from the Linux Command Line In Ubuntu, Debian, Linux Mint etc. $ sudo ap ...

  3. 洛谷P1308——单词统计

    https://www.luogu.org/problem/show?pid=1308 题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在 ...

  4. PHP中的输出:echo、print、printf、sprintf、print_r和var_dump

    大家在面试中,经常会被问到的问题: 请简要说明PHP的打印方式都有哪些? 或者直接点问: 请说明echo.print.print_r的区别 看着很简单,一般会出现在初中级的笔试题中.但是要真正说明白这 ...

  5. python的列表和java的数组有何异同

    今天面试被问到,自己学习一下. python的列表是可变长的,定义时不需要指定长度:pyhton是弱对象类型,python的列表存储的数据类型可以不相同:python的列表更加灵活,如可以通过''命令 ...

  6. jmeter旅程第一站:Jmeter抓包浏览器或者抓取手机app的包

    学习jmeter?从实际出发,我也是一个初学者,会优先考虑先用来做一些简单的抓包.接口测试,在实践的过程中学习jmeter用途.那么接下来,这篇文章我会以jmeter抓包开启我的jmeter旅程. 这 ...

  7. 虚拟机安装配置centos7

    安装 https://blog.csdn.net/babyxue/article/details/80970526 主机环境预设 更换国内yum源 epel源 https://www.cnblogs. ...

  8. P4884-多少个1?【BSGS】

    正题 题目链接:https://www.luogu.com.cn/problem/P4884 题目大意 求一个最小的\(n\)使得\(n\)个连续的\(1\)其在模\(m\)意义下等于\(k\). \ ...

  9. 最详细的搭建web自动化测试网站,别再说你没有实战项目(文未有福利)

    一步步教你搭建开源网站 环境准备: Tomcat shopping商城文件 jdk环境 Mysql环境 解压shopping.rar拷贝至tomcat/webapps 在navicat导入数据库db_ ...

  10. centos7.5离线安装Docker及容器运行报OCI runtime create failed 问题定位与解决

    前言 接上篇 <记一次centos挂载ceph存储的坑> 服务器重做了centos7.5版本的操作系统,剩下就是安装docker,考虑yum安装耗时较长,我一般都是直接安装二进制版本doc ...