添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

gis之geoTool使用

GeoTools是一个开放源码(LGPL)Java代码库,它为地理空间数据的操作(例如实现地理信息系统)提供符合标准的方法。GeoTools库数据结构基于开放地理空间联盟(OGC)规范。GeoTools被许多项目使用,包括web服务、命令行工具和桌面应用程序 docs.geotools.org/

  • 关键空间概念和数据结构的接口定义
  • Java拓扑套件(JTS)提供的集成几何支持。使用OGC过滤器编码规范的属性和空间过滤器

  • 一个无侵入式的数据访问API,支持特性访问、事务支持和线程间锁定
  • 以多种文件格式和空间数据库访问GIS数据。坐标参考系及其转换支持。使用范围广泛的地图投影。根据空间和非空间属性过滤和分析数据

  • 一种无状态、低内存的渲染器,在服务器端环境中特别有用
  • 用复杂的样式组合和显示地图。 用于文本标签和颜色混合的精细控制的扩展

    使用xmlschema绑定GML内容的强大模式辅助解析技术

    解析/编码技术为许多OGC标准提供了绑定,包括GML、Filter、KML、SLD和SE。

    GeoTools插件:开放的插件系统,允许额外库的格式

    imageioext项目的插件,允许GeoTools从GDAL读取其他光栅格式

  • GeoTools扩展:提供使用核心库的空间设施构建的附加功能。
  • 扩展提供了图形和网络支持(用于寻找最短路径)、验证、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 基本使用

    JTS API
    GeoTools API

    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操作
    复制代码
    分类:
    后端
    标签: