GeoTools,JTS和GeoAPI — (学习GIS【3】)
在前面的两篇学习日志解决了如何利用GeoTools读取Shapefile格式的文件。
目前通过一个星期的学习,主要解决了如下问题: 1 解决投影下的多边形面积计算,多边形周长计算问题。 2 解决投影相互转换的问题。 |
在整个熟悉GeoTools(已经学习了大概一个星期左右了)的过程中,造成的最大困扰就是在查找API文档学习的时候,好多接口和类都不在GeoTools的javadoc中,好多在JTS和GeoAPI的javadoc中。
这里就带来一个问题:GeoTools和JTS还有GeoAPI到底是什么关系?
回答这个问题的前提首先是它们分别是什么😛
JTS JTS是加拿大的 Vivid Solutions 做的一套开放源码的 Java API。它提供了一套空间数据操作的核心算法,为在兼容OGC标准的空间对象模型中进行基础的几何操作提供2D空间谓词API。
GeoAPI GeoAPI为OpenGIS规范提供一组Java接口.
Geotools Geotools是一个开源的Java GIS工具包,可利用它来开发符合标准的地理信息系统。Geotools提供了OGC(Open Geospatial Consortium)规范的一个实现来作为他们的开发。
简单而言:GeoTools的目标是致力于开发一个符合规范的Gis工具包,既然是工具包,那么就要有很多工具用来对付构建一个完整的地理信息系统时会碰到的问题,常见的问题比如:投影的转换,基准面的设定,空间数据对象的渲染和样式,各种数据源的支持,各种GIS文件格式支持,空间数据过滤与搜索。。。。等等的问题。 在开发这些工具的时候,恰好在处理空间数据图形关系的时候,有一个非常好的解决方案,那就是JTS,JTS解决了对象与对象之间拓扑关系的判定和计算,并提供很多有用的算法来解决对象的面积,长度。。。等等等的问题。这样而言,JTS就相当于GeoTools中的一个子模块。但因为这个模块本身不是GeoTools工程的,所以在javadoc中找不到JTS的API,需要到JTS官网上面另外下载。至于GeoAPI则是GeoTools符合标准的模板。它制定了地理信息系统中所有的数据类型应该是什么,投影转换的方式有哪几种诸如此类的规范。这样兼容GeoAPI接口的GeoTools才是一个符合规范的地理信息系统工具包。 |
GeoTools到底能做什么?这也是经常围绕在我脑海中的一个问题,下面这张图对这个问题的回答应该是有所帮助。
|
转载自:https://blog.csdn.net/snailjava/article/details/4270698