gis之geoTool使用
GeoTools是一个开放源码(LGPL)Java代码库,它为地理空间数据的操作(例如实现地理信息系统)提供符合标准的方法。GeoTools库数据结构基于开放地理空间联盟(OGC)规范。GeoTools被许多项目使用,包括web服务、命令行工具和桌面应用程序 docs.geotools.org/
Java拓扑套件(JTS)提供的集成几何支持。使用OGC过滤器编码规范的属性和空间过滤器
以多种文件格式和空间数据库访问GIS数据。坐标参考系及其转换支持。使用范围广泛的地图投影。根据空间和非空间属性过滤和分析数据
用复杂的样式组合和显示地图。 用于文本标签和颜色混合的精细控制的扩展
使用xmlschema绑定GML内容的强大模式辅助解析技术
解析/编码技术为许多OGC标准提供了绑定,包括GML、Filter、KML、SLD和SE。
GeoTools插件:开放的插件系统,允许额外库的格式
imageioext项目的插件,允许GeoTools从GDAL读取其他光栅格式
扩展提供了图形和网络支持(用于寻找最短路径)、验证、web地图服务器客户端、XML解析和编码的绑定以及color brewer
社区提供的一些亮点是swing支持,SWT、本地和web进程支持、附加符号、附加数据格式、网格生成和ISO几何的一些实现。
arcgrid
geotiff
grassraster
image ( JPEG TIFF GIF PNG ),
imageio-ext-gdal
imagemosaic
imagepyramid
matlab
数据库访问
geopackage
mysql
oracle
postgis
sqlserver
teradata
矢量格式及数据访问
app-schema
geojson
property
shapefile
XML绑定支持
xsd-core (xml simple types)
filter
gt-render: 实现java2D渲染引擎来绘制地图
gt-jdbc: 提供jdbc支持来访问数据库
gt-main:实现空间数据库访问的工具
gt-xml:实现常见的xml空间数据格式
gt-cql: 实现常见的过滤查询语言
gt-main:用于处理空间信息的接口。实现过滤器、功能等
jts:几何的定义和实现
gt-coverage:raster光栅信息的访问
gt-referencing: 实现坐标定位及转换
gt-metadata 元数据的识别及描述
gt-opengis:公共空间概念的接口定义
plugin插件支持
GeoTools提供插件,支持其他数据格式、不同的坐标参考系统权限等
gt-jdbc【基于jdbc的扩展插件】:gt-jdbc-mysql,gt-jdbc-db2,gt-jdbc-oracle,gt-jdbc-postgis等
gt-main: gt-main-shape,gt-wfs
gt-coverage:gt-geotiff,gt-arcgrid,gt-mif,gt-image
gt-referencing: epsg-access,epsg-hsql,epsg-wkt,epsg-wkt,epsg-oracle
extension扩展支持
gt-graph:使用图形和网络遍历
gt-validation:空间数据的质量保证
gt-wms: web map server客户端
gt-xsd:通用OGC模式的解析/编码
gt-brewer:使用彩色brewer生成样式
XML 格式支持
gt-xsd-core:XML schema基础类型定义
gt-xsd-fes:filter 2.0
gt-xsd-filter:filter (used by OGC CAT and WFS)
gt-xsd-kml:KML标记语言支持
gt-xsd-wfs:web feature service
gt-xsd-wps:web processing service
gt-xsd-gml3:geographic markup language 3
gt-xsd-gml2:geographic markup language 2
gt-xsd-ows:open web services
gt-xsd-wcs:web coverage service
gt-xsd-wms:web map service
gt-xsd-sld:图层样式描述文件
第三方支持
gt-swt:Standard widget toolkit interactive map
gt-swing:Swing interactive map
gt-oracle:获取Oracle支持
gt-postgis:postgis 支持
gt-db2:db2数据库支持
gt-wps:Web Processing Service client
gt-process:空间数据作业系统
geotools vs JTS
GeoTools是一个Java类库,它是构建在OGC标准之上的,提供了很多标准类和方法来处理空间数据,是开源空间数据处理的主要工具。
JTS是加拿大的 Vivid Solutions 做的一套开放源码的 Java API。它提供了一套空间数据操作的核心算法,为在兼容OGC标准的空间对象模型中进行基础的几何操作提供2D空间谓词API。JTS解决了空间对象之间拓扑关系的判定和计算,并提供很多有用的算法来解决对象的面积,长度等等的问题,是处理空间数据图形关系非常好的解决方案
geotools与jts
GeoTools的目标是致力于开发一个符合OpenGIS规范的GIS工具包,既然是工具包,那么就要有很多工具用来对付构建一个完整的地理信息系统时会碰到的问题,常见的问题比如:投影转换,基准面的设定,空间数据对象的渲染和样式,各种数据源的支持,各种GIS文件格式支持,空间数据过滤与搜索等的问题。
JTS就相当于GeoTools中的一个“子模块”。但因为这个模块本身不是GeoTools工程的,所以在javadoc中找不到JTS的API,需要到JTS官网上面另外下载。
简而言之: JTS 主要是做空间计算判断及计算相关业务,而geotool 是一一个工具包,包含gis处理的相关内容(geoserver基于geotools基础上进行扩展开发)
geotools 基本使用
JDK 版本要求
geoTools核心对象介绍
JTS 核心对象介绍
Geometry(几何模型对象)
Point and MultiPoint: 点相关
LineString and MultiLineString: 线相关
Polygon and MultiPolygon:多边形相关
heterogeneous GeometryCollection:非均匀几何集合
几何模型对象操作
1.拓扑有效性检查
2.面积和长度/周长
3.几何体与isWithinDistance预测之间的距离
4.基于Egenhofer DE-9IM模型的空间判断:
contains, within
covers, coveredBy
intersects, disjoint
crosses
overlaps
touches
equals
5.覆盖功能包括
intersection,
difference,
union,
symmetric difference
unary union
6.缓冲区计算
输入/输出流
WKT (Well-Known Text):基于文本读取
WKB (Well-Known Binary):基于二进制读取
GML(Geography Markup Language) Version 2:基于GML标记语言格式读取
Java Swing/AWT: 基于Java Swing操作
复制代码