JTS:10 Crosses

2023-10-11 20:12
文章标签 jts crosses

本文主要是介绍JTS:10 Crosses,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里写目录标题

      • 版本
        • 点与线
        • 点与面
        • 线与面
        • 线与线

版本

org.locationtech.jts:jts-core:1.19.0
链接: github

public class GeometryCrosses {private final GeometryFactory geometryFactory = new GeometryFactory();private static final Logger LOGGER = LoggerFactory.getLogger(GeometryCrosses.class);private static final WKTWriter WKT_WRITER = new WKTWriter();private Coordinate[] coordinate1;private Coordinate[] coordinate2;/*** [T*T******] (for P/L, P/A, and L/A situations) 点与线,点与面,线与面* [T*****T**] (for L/P, A/P, and A/L situations) 线与点,面与点,面与线* [0********] (for L/L situations) 线与线* 获取两个几何对象并返回 true 如果它们的交叉点在空间上是交叉的,* 也就是说,几何图形有一些但不是所有的内部点是共同的。* 几何图形内部的交点不能是空集,并且其维度必须小于两个输入几何图形的最大尺寸。* 此外,两个几何图形的交点不能等于任何一个源几何图形。否则,它将返回 false*/public static void main(String[] args) {GeometryCrosses geometryCrosses = new GeometryCrosses();geometryCrosses.test00();}
}
点与线

在这里插入图片描述

    /*** 点与线, 点必须是多点,且有一个点在线上,因为是交叉点,在线上* [T*T******]*/public void test00() {coordinate1 = new Coordinate[] {new Coordinate(4, 3), new Coordinate(13, 3)};LineString lineString = geometryFactory.createLineString(coordinate1);coordinate2 = new Coordinate[] {new Coordinate(8, 6), new Coordinate(8, 1), new Coordinate(9, 3)};MultiPoint multiPoint = geometryFactory.createMultiPointFromCoords(coordinate2);LOGGER.info("lineString1 - point1 九交模型值:{}", lineString.relate(multiPoint).toString());LOGGER.info("point1 - lineString1 跨越:{}", lineString.crosses(multiPoint));LOGGER.info("lineString1: {}, point1: {}", WKT_WRITER.write(lineString), WKT_WRITER.write(multiPoint));}
点与面

在这里插入图片描述

    /*** 点与面* [T*T******]*/public void test01() {coordinate1 = new Coordinate[] {new Coordinate(8, 6), new Coordinate(8, 1), new Coordinate(9, 3)};MultiPoint multiPoint = geometryFactory.createMultiPointFromCoords(coordinate1);coordinate2 = new Coordinate[] {new Coordinate(2, 5), new Coordinate(2, 2), new Coordinate(12, 2), new Coordinate(12, 5), new Coordinate(2, 5)};Polygon polygon = geometryFactory.createPolygon(coordinate2);LOGGER.info("multiPoint1 - polygon 九交模型值:{}", multiPoint.relate(polygon).toString());LOGGER.info("multiPoint1 - polygon 跨越:{}", multiPoint.crosses(polygon));LOGGER.info("multiPoint1: {}, polygon: {}", WKT_WRITER.write(multiPoint), WKT_WRITER.write(polygon));}
线与面

在这里插入图片描述

    public void test02() {coordinate1 = new Coordinate[] {new Coordinate(8, 6), new Coordinate(8, 1), new Coordinate(9, 3)};LineString lineString = geometryFactory.createLineString(coordinate1);coordinate2 = new Coordinate[] {new Coordinate(2, 5), new Coordinate(2, 2), new Coordinate(12, 2), new Coordinate(12, 5), new Coordinate(2, 5)};Polygon polygon = geometryFactory.createPolygon(coordinate2);LOGGER.info("lineString - polygon 九交模型值:{}", lineString.relate(polygon).toString());LOGGER.info("lineString - polygon 跨越:{}", lineString.crosses(polygon));LOGGER.info("lineString: {}, polygon: {}", WKT_WRITER.write(lineString), WKT_WRITER.write(polygon));}
线与线

在这里插入图片描述

    /*** 线与线* [0********]*/public void test03() {coordinate1 = new Coordinate[] {new Coordinate(3, 4), new Coordinate(12, 4)};LineString lineString1 = geometryFactory.createLineString(coordinate1);coordinate2 = new Coordinate[] {new Coordinate(7, 7), new Coordinate(7, 1)};LineString lineString2 = geometryFactory.createLineString(coordinate2);LOGGER.info("lineString - polygon 九交模型值:{}", lineString1.relate(lineString2).toString());LOGGER.info("lineString - polygon 跨越:{}", lineString1.crosses(lineString2));LOGGER.info("lineString: {}, polygon: {}", WKT_WRITER.write(lineString1), WKT_WRITER.write(lineString2));}

这篇关于JTS:10 Crosses的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/190543

相关文章

JTS 笔记

简介     JTS由加拿大的VividSolutions公司开发,是一个用Java语言描述的几何拓扑套件,遵循OpenGIS的Simple Feature Specification,封装了2D几何类型和非常多的空间分析操作,而且包含了不少常见的计算几何算法实现。     JTS被广泛地应用在开源GIS软件中,作为GeoTools和基于GeoTools的GeoServer和uDig的底层库。

JTS:Java Topology Suit

接口文档:org.locationtech.jts:jts-core 1.19.0 API。         开发文档:JTS | Documentation。 概述 JTS提供了平面线性几何(planar and linear geometry)与相关的基础几何处理函数(a set of fundamental geometric functions.)。 JTS遵循

Java中使用JTS对空间几何计算(距离、点在面内、长度、面积、相交等)模拟的大概写法

场景 基于GIS相关的集成系统,需要对空间数据做一些判断处理。比如读取WKT数据、点到点、点到线、点到面的距离, 线的长度、面的面积、点是否在面内等处理。 JTS (Java Topology Suite) Java拓扑套件,是Java的处理地理数据的API。 github地址: https://github.com/locationtech/jts API文档地址: https:/

error: jump to case label error: crosses initialization of xxx

今天写ojb-c的代码,遇到了这样一个问题,error: jump to case label  error: crosses initialization of xxx 交叉初始化~! 问题出在case语句内定义的变量的作用域上面。 因为 本地变量的作用域仅在花括号之间。 只要把每个case语句用括号(" {} ")括起来, 变量的作用域限定在相应case语句之内, 就不会出现交叉

GeoTools应用-(JTS Geometry Operations)(二)

一些高级操作, Buffer,LineMerger,Polygonization,UnionLine,凹壳分析,Overlays (1)、Buffer,返回的结果是一个Polygon或者 MultiPolygon buffering is an operation which in GIS is used to compute the area containing all points wi

GIS算法:6_JAVA拓扑套件JTS

常用可以用于GIS数据处理和空间计算的java包有geotool和jts。 相对来说,geotool功能更全面,还可以用于数据转换、瓦片地图发布、栅格影像分析等,jts只能进行基本的数据处理和空间计算。 但大多数情况下jts就完全够用了。 geotool的官网:https://www.geotools.org/ 本例只讲jts的用法: maven依赖:   <dependency><

GIS算法:5_可视化工具JTS TestBuilder

java、python、js都有可以引用的第三方包,实现GIS的空间算法。 java是jts,python是shapely,js是turf。   其中jts值得首先拥有,因为jts提供了一个界面工具JTS TestBuilder,可以在上面绘制图形,验证各种算法。 jts官网:https://www.tsusiatsoftware.net/jts/main.html jts下载地址:

geotool解析shp文件org.locationtech.jts.geom.Polygon报错问题

最近在研究利用geotool制作专题图的功能。geotool加载shp文件和sld样式文件,选然后导出图片,发现点没问题,面总会报: 网上搜到类似问题: GIS:shp文件解析相关_org.locationtech.jts.geom.polygon.getexteriorring(-CSDN博客 原因就是geotool版本和JTS版本不匹配。(了解两者关系请看:https://www.c

Java中使用JTS实现WKB数据写入、转换字符串、读取

场景 Java中使用JTS实现WKT字符串读取转换线、查找LineString的list中距离最近的线、LineString做缓冲区扩展并计算点在缓冲区内的方位角: Java中使用JTS实现WKT字符串读取转换线、查找LineString的list中距离最近的线、LineString做缓冲区扩展并计算点在缓冲区内的方位角_jts工具类-CSDN博客 WKB介绍 WKB(Well-Known

jts学习笔记

http://live.osgeo.org/zh/overview/jts_overview.html