GDAL(OGR)库与GEOS库的协作

GDAL(OGR)库与GEOS库的协作


发布日期: 2016-10-27 更新日期: 2016-10-27 编辑:黄馨宁 浏览次数: 5644

标签:

摘要: GDAL&OGR库支持了大多数地理数据格式的读写,为GISer们使用最广泛的工具库。 OGR并没有对特征之间的空间关系计算提供原生支持。 可以看到,在早期的版本中,OGRGeometry类中的函数Intersect,Touch这些和几何相关的函数都被设计为虚的...

GDAL&OGR库支持了大多数地理数据格式的读写,为GISer们使用最广泛的工具库。

OGR并没有对特征之间的空间关系计算提供原生支持。

可以看到,在早期的版本中,OGRGeometry类中的函数Intersect,Touch这些和几何相关的函数都被设计为虚的。

Geos库扩展了OGR库的几何计算功能,为空间计算提供了接口。通常,OGRGeometry和geos::geom::Geometry的交互可以由wkb格式来完成,即它们以wkb为中间数据格式交换特征的几何数据。因为wkb是二进制的,解析速度很快,可以认为这种解析所耗费的时间为0(和空间计算的消耗相比)。

现在的GDAL版本,为GEOS的协作提供了原生支持。这依赖于GEOS库的API接口。位于GEOS库的目录capi/geos_c.h,提供了交互的接口原型。当然,编译geos库的时候,需要将geos_c.c源文件加入到工程中进行编译。

对于GEOS库来说,它只是一个Server,它不知道ogr库的存在。

OGR库要添加GEOS库的支持,需要添加geos库的部分头文件的路径,主要是两个文件,一个是capi/geos_c.h,一个是source/herders/geom/version.h。因此添加两个路径capi/和source/headers/就可以了。此外,还需要注意的一点就是,需要在编译OGR库的时候,预定义宏HAVE_GEOS,可以直接添加宏预定义到工程的属性中。这样这些几何函数会被实作,而不是返回一个0或是一个错误。

将GDAL,GEOS库分开编译为静态库,应用程序是另一个工程。解决方案中有三个以上的工程,它们可以良好运行。但是,GEOS对数据要求很严,要求Geometry符合ogc的SFS规范,不得自相交等,否则将会报出错误。

关注公众号
获取免费资源

随机推荐
  • 中国重要湿地名录
  • 长江海岸线概况
  • 遥感软件ER Mapper介绍
  • 地球信息科学基本概念
  • 空间坐标转换概念


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org