几何信息和拓扑关系是地理信息系统中描述地理要素的空间位置和空间关系的不可缺少的基本信息。其中几何信息主要涉及几何目标的坐标位置、方向、角度、距离和面积等信息,它通常用解析几何的方法来分析。而空间关系信息主要涉及几何关系的“相连”、“相邻”、“包含”等信息,它通常用拓扑关系或拓扑结构的方法来分析。拓扑关系是明确定的

相等(Equals):

几何形状拓扑上相等。

脱节(Disjoint):

几何形状没有共有的点。

相交(Intersects):

几何形状至少有一个共有点(区别于脱节)

接触(Touches):

几何形状有至少一个公共的边界点,但是没有内部点。

交叉(Crosses):

几何形状共享一些但不是所有的内部点。

内含(Within):

几何形状A的线都在几何形状B内部。

包含(Contains):

几何形状B的线都在几何形状A内部(区别于内含)

重叠(Overlaps):

几何形状共享一部分但不是所有的公共点,而且相交处有他们自己相同的区域。

下面的例子介绍了 equals、disjoint、intersects 的用法

代码段:

package com.mapbar.geo.jts;import org.geotools.geometry.jts.JTSFactoryFinder;import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.geom.Point;
import com.vividsolutions.jts.io.ParseException;
import com.vividsolutions.jts.io.WKTReader;/**  * Class GeometryRelated.java * Description 二元比较集合。二元比较以两个几何对象作为参数,返回一个Boolean类型的值,* 来指明这两个几何对象是否具有指定的空间关系。支持的空间关系包括:* equals、disjoint、intersects, touches, crosses, within, contains, overlaps* Company mapbar * author Chenll E-mail: Chenll@mapbar.com* Version 1.0 * Date 2012-2-17 下午06:17:01*/
public class GeometryRelated {private GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory( null );public Point createPoint(String lon,String lat){Coordinate coord = new Coordinate(Double.parseDouble(lon), Double.parseDouble(lat));Point point = geometryFactory.createPoint( coord );return point;}/***  will return true as the two line strings define exactly the same shape.*  两个几何对象是否是重叠的* @return* @throws ParseException*/public boolean equalsGeo() throws ParseException{WKTReader reader = new WKTReader( geometryFactory );LineString geometry1 = (LineString) reader.read("LINESTRING(0 0, 2 0, 5 0)");LineString geometry2 = (LineString) reader.read("LINESTRING(5 0, 0 0)");// return geometry1 ==geometry2;  false//check if two geometries are exactly equal; right down to the coordinate level.// return geometry1.equalsExact(geometry2);   falsereturn geometry1.equals(geometry2);//true}/*** The geometries have no points in common* 几何对象没有交点(相邻)* @return* @throws ParseException*/public boolean disjointGeo() throws ParseException{WKTReader reader = new WKTReader( geometryFactory );LineString geometry1 = (LineString) reader.read("LINESTRING(0 0, 2 0, 5 0)");LineString geometry2 = (LineString) reader.read("LINESTRING(0 1, 0 2)");return geometry1.disjoint(geometry2);}/*** The geometries have at least one point in common.* 至少一个公共点(相交)* @return* @throws ParseException*/public boolean intersectsGeo() throws ParseException{WKTReader reader = new WKTReader( geometryFactory );LineString geometry1 = (LineString) reader.read("LINESTRING(0 0, 2 0, 5 0)");LineString geometry2 = (LineString) reader.read("LINESTRING(0 0, 0 2)");Geometry interPoint = geometry1.intersection(geometry2);//相交点System.out.println(interPoint.toText());//输出 POINT (0 0)return geometry1.intersects(geometry2);}/*** @param args* @throws ParseException */public static void main(String[] args) throws ParseException {GeometryRelated gr = new GeometryRelated();System.out.println(gr.equalsGeo());System.out.println(gr.disjointGeo());System.out.println(gr.intersectsGeo());}}

Geometry 叠加操作

缓冲区分析(Buffer)

包含所有的点在一个指定距离内的多边形和多多边形

凸壳分析(ConvexHull)

包含几何形体的所有点的最小凸壳多边形(外包多边形)

交叉分析(Intersection)

交叉操作就是多边形AB中所有共同点的集合。

联合分析(Union)

AB的联合操作就是AB所有点的集合。

差异分析(Difference)

AB形状的差异分析就是A里有B里没有的所有点的集合。

对称差异分析(SymDifference)

AB形状的对称差异分析就是位于A中或者B中但不同时在AB中的所有点的集合

在GIS中,缓冲(buffering)是一种用于计算包含在一个几何图形(Geometry)特定距离区域内所有点的的操作。在数学术语中,这被称为通过一个与缓冲区相等的圆的半径去计算几何图形的闵可夫斯基Minkowski)总和。发现正的(positive)和负的(negative)缓冲,有时与操作的腐蚀(erosion)和膨胀(dilation)有关。在CAD/CAM,缓冲曲线被称为偏移曲线offset
curves
)。你可以使用JTS,通过Geometry buffer方法或者Bufferop类,去计算一个图形的缓冲区。缓冲操作所输入的Geometry可以是任何类别(包括任意的Geometry集合)。缓冲操作的结果通常是一种区域类型(area type)(多边形或者多多边形)。结果也可能为空[例如,一条线(linestring)的负缓冲。]

GeoTools应用-JTS(Geometry之间的关系)相关推荐

  1. JTS Geometry关系判断和分析

    关系判断 Geometry之间的关系有如下几种: 相等(Equals): 几何形状拓扑上相等. 脱节(Disjoint): 几何形状没有共有的点. 相交(Intersects): 几何形状至少有一个共 ...

  2. JTS Geometry

    JTS Geometry关系判断和分析 JTS Geometry关系判断和分析 1.关系判断 1.1实例 2.关系分析 2.1实例 JTS(Geometry) JTS Geometry关系判断和分析 ...

  3. JTS Geometry用例分析

    微信搜索:"二十同学" 公众号,欢迎关注一条不一样的成长之路 拓扑关系        GeometryTest import com.vividsolutions.jts.geom ...

  4. java类库geotools_GeoTools和JTS之间的关系

    什么是GeoTools GeoTools是一个Java类库,它是构建在OGC标准之上的,提供了很多标准类和方法来处理空间数据,是开源空间数据处理的主要工具. 什么是JTS JTS是加拿大的 Vivid ...

  5. geotools应用-JTS生产四叉树索引和R树索引

    微信搜索:"二十同学" 公众号,欢迎关注一条不一样的成长之路 geotools介绍 geotools官网https://geotools.org/ Geotools是一个java类 ...

  6. OSM数据分析及图形化显示以及各组员之间的关系Relation的存储

    OpenStreetMap(OSM) https://wiki.openstreetmap.org/wiki/Elements OSM虽然是简称,但如果赋予数据的话,它就是一种格式,格式以.osm结尾 ...

  7. JTS(Geometry)工具类

    空间数据模型 (1).JTS Geometry model  (2).ISO Geometry model (Geometry Plugin and JTS Wrapper Plugin) GeoTo ...

  8. Day-16 面向对象03 类与类之间的关系

    一.类与类之间的依赖关系 我用着你,但是你不属于我,这种关系是最弱的,比如,公司和雇员之间,对于正式员工,肯定要签订劳动合同,还得小心伺候着,但是如果是兼职,那无所谓,需要了你就来,不需要你就可以拜拜 ...

  9. 【linux】图形界面基础知识(X、X11、GNOME、Xorg、KDE的概念和它们之间的关系)

    转载自:https://blog.csdn.net/zhangxinrun/article/details/7332049 简介 LINUX初学者经常分不清楚linux和X之间,X和Xfree86之间 ...

最新文章

  1. axi dma 寄存器配置_FPGA Xilinx Zynq 系列(三十二)AXI 接口
  2. spark算子_Spark常用算子
  3. 【Linux 内核 内存管理】Linux 内核堆内存管理 ① ( 堆内存管理 | 内存描述符 mm_struct 结构体 | mm_struct 结构体中的 start_brk、brk 成员 )
  4. sizeof()使用注意
  5. Java Review - 并发编程_LockSupport
  6. 全球及中国汽车卡钳行业产销需求现状与投资策略分析报告2022年版
  7. crontab中执行postgresql命令
  8. Linux系统运维成长记
  9. 芯片设计群 ,欢迎 IC领域朋友请加我微信交流:Jdrobots ,加我备注IC。谢谢! 芯片设计资料
  10. mysql 生成短网址_生成短链接的URL
  11. Data Pump -- Example
  12. webbrowser在vb中叫
  13. 哨兵系列卫星介绍——总结与对比
  14. 六行shell脚本实现Android手机自动刷抖音极速版
  15. html表格的常用样式
  16. unantu下的tmp文件夹_Ubuntu根目录下各文件夹的功能详细介绍
  17. matlab距离平方和公式推导,lstopt 非线性拟合:相关系数之平方(R^2)和决定系数(DC)计算公式是?...
  18. The inferior stopped because it received a signal from the Operating system signal name: SIGSEGV
  19. 手机屏幕材料区别 TFT和OLED
  20. 信息学奥赛一本通1055:判断闰年

热门文章

  1. Python3爬虫入门之正则表达式的使用
  2. Linux 获取grep前后几行
  3. iOS - UIView属性hidden, opaque, alpha, opacity的区别
  4. select coun等于0查出来不等于0_飞蚊症不需要治疗,是真的吗?
  5. 最新log4j2 远程代码执行漏洞(紧急扩散)
  6. postman如何模拟Map参数请求呢?
  7. 第2章[2.2] Ext JS多类型终端-电脑、移动端(手机、平板)
  8. 中国的房产市场和房产取向
  9. 网络编程1-初探winSocket
  10. web编程 模块1 html,Web编程基础第1章HTML基础.ppt