Java Topology Suite (JTS)与空间数据模型
JTS是Java的处理地理数据的API,它提供以下功能:
- 实现了OGC关于简单要素SQL查询规范定义的空间数据模型
- 一个完整的、一致的、基本的二维空间算法的实现,包括二元运算(例如touch和overlap)和空间分析方法(例如intersection和buffer)
- 一个显示的精确模型,用算法优雅的解决导致dimensional collapse(尺度坍塌--专业名词不知道对不对,暂时这样译)的情况。
- 健壮的实现了关键计算几何操作
- 提供著名文本格式的I/O接口
JTS是完全100%由Java写的(1.2版本及更高版本)
空间数据模型
JTS提供了以下空间数据类型:

顺便提一句,多数的空间数据模型都是遵从这个的。
就像在简单要素规范中一样,JTS中的几何图形有内部,边界和外部。
二元谓词
JTS支持一套完整的二元谓词操作。二元谓词方法将两个几何图形作为参数,返回一个布尔值来表示几何图形是否有指定的空间关系。它支持的空间关系有:相等(equals)、分离(disjoint)、相交(intersect)、相接(touches)、交叉(crosses)、包含于(within)、包含(contains)、覆盖/覆盖于(overlaps)。同时,也支持一般的关系(relate)操作符。relate可以被用来确定维度扩展的九交模型(DE-9IM),它可以完全的描述两个几何图形的关系。
例如:

空间分析方法:
JTS支持基本的空间分析方法。空间分析方法使用一个或两个几何图形作为参数,返回一个新构造的几何图形。
空间分析方法有:

所有的二元方法支持不仅支持同种几何图形,也支持不同的几何图形:

精度模型
to be continued...
英文参考:http://www.vividsolutions.com/jts/discussion.htm#spatialDataModel
2015-11-24 21:51:52
Java Topology Suite (JTS)与空间数据模型的更多相关文章
- Java JTS & 空间数据模型
空间数据模型 判断两个几何图形是否存在指定的空间关系.包括: 相等(equals).分离(disjoint).相交(intersect).相接(touches).交叉(crosses).包含于(wit ...
- 如何计算Java对象占用了多少空间?
在Java中没有sizeof运算符,所以没办法知道一个对象到底占用了多大的空间,但是在分配对象的时候会有一些基本的规则,我们根据这些规则大致能判断出来对象大小. 对象头 对象的头部至少有两个WORD, ...
- java 内存分析之堆栈空间
package Demo; public class Demo { public static void main(String[] args) { Demo demo = new Demo(); ; ...
- 你觉得我的这段Java代码还有优化的空间吗?
上周,因为要测试一个方法的在并发场景下的结果是不是符合预期,我写了一段单元测试的代码.写完之后截了个图发了一个朋友圈,很多人表示短短的几行代码,涉及到好几个知识点. 还有人给出了一些优化的建议.那么, ...
- 开源地理空间基金会OSGeo简介
开源地理空间基金会 OSGeo 相关站点: OSGeo官方站点:http://www.osgeo.org/home OSGeo中国中心:http://www.osgeo.cn/ OSGeo GitHu ...
- 开源GIS软件 3
OpenWLANMap 与 OpenStreetMap 项目类似,OpenWLANMap 将变成一个开源的替代产品,提供 WLANs 的数据库.定位信息等. 开源排水管网GIS系统 udpnGIS 邢 ...
- 使用 Apache Lucene 和 Solr 4 实现下一代搜索和分析
使用 Apache Lucene 和 Solr 4 实现下一代搜索和分析 使用搜索引擎计数构建快速.高效和可扩展的数据驱动应用程序 Apache Lucene™ 和 Solr™ 是强大的开源搜索技术, ...
- MinGW64 how-to(内含编译openssl,libjpeg,libcurl等例子)
Index of contents Setting up the MinGW 64 environment Step 1) building libiconv Step 2) building lib ...
- GEOS库 介绍 (转)
http://wiki.woodpecker.org.cn/moin/lilin/geos-introduce 介绍 GEOS是一个集合形状的拓扑关系操作实用库(可能这么说不太准确),简单得说,就是判 ...
随机推荐
- android 简单的开机自启
今天我们主要来探讨android怎么让一个service开机自动启动功能的实现.Android手机在启动的过程中会触发一个Standard Broadcast Action,名字叫android.in ...
- JAVA除去制定字符的方法
只需调用replaceAll()方法: public class Test { public static void main(String[] args) { String s= "abc ...
- ArrayList 类和List<T>泛型类
ArrayList集合类在System.Colletions命名空间下,它其实是一个特殊的数组,它可以动态的添加和删除元素,根据元素的改变自动决定它自身的大小,也可以灵活的插入元素等操作,使用起来要比 ...
- 利用抽象、多态实现无反射的绿色环保ORM框架
最近一直在忙新公司的基础库建设,对系统架构.开发框架及快速开发平台的设计实施都积累了一定的实践经验. 一般的中小型的软件开发公司,如果按照技术储备来衡量软件项目的技术含量的评定依据是可行的.但如果光是 ...
- 比较两份文件的异同-beyond compare
比较两份文件的异同-beyond compare 今天又学到一个知识,比较两次文件的 异同. 哈哈 谢谢领导
- iOS_ruby环境的配置
AC机中安装RUBY环境 转自:http://www.cnblogs.com/foxting/p/4520829.html 在安装CocoaPods之前要先配置好RUBY环境,本文就怎么安装RUBY ...
- Java设计模式(学习整理)---单例模式
1.概念: java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例.饿汉式单例.登记式单例三种. 单例模式有一下特点: 1.单例类只能有一个实例. 2.单例类必须自己自己创建自己的唯一实例 ...
- sendmail服务器的安装
1.检查sendmail是否已安装: rpm -qa | grep sendmail 2.yum -y install sendmail 安装 yum -y remove sendmail ...
- Java使用百度云存储BCS-让你的数据下载飞起来
作者:Vinkn 来自http://www.cnblogs.com/Vinkn/ 一.简介 云也不是一个新概念了,云到底是什么东西,你叫我说个明明白白的我也说不出来,姑且算作联网的就叫做云.国内的云服 ...
- css学习--inline-block详解及dispaly:inline inline-block block 三者区别精要概括
*知识储备: 内联元素:是不可以控制宽和高.margin等:并且在同一行显示,不换行. 块级元素:是可以控制宽和高.margin等,并且会换行. 1.inline-block 详解 (1)一句话就是在 ...