精华内容
下载资源
问答
  • JTS中文API.rar

    2019-11-15 09:44:48
    Java事务服务(JTS)是为了致力于能够支持确定性,清洁性,完整性和对空间数据进行查询的应用软件的发展。 本文档适合于那些愿意使用JTS的开发者去满足他们对空间数据处理的需求。它描述了JTS应用程序接口API...
  • 杰克逊-数据类型-JTS 这是库的分支,用于从com.vividsolutions.jts移植到org.locationtech.jts 杰克逊模块(Jackson Module),它使用为对象提供自定义序列化器和反序列化器 注册模块 要将JTS几何数据类型与...
  • JTS拓扑套件 JTS拓扑套件是一个用于创建和处理矢量几何的Java库。 它还提供了一套全面的几何测试用例,以及用于处理和可视化几何和JTS功能的TestBuilder GUI应用程序。 JTS是Eclipse Foundation的工作组的一个项目...
  • jts-core-1.17_en.chm

    2020-09-11 17:14:03
    org.locationtech.jts:jts-core 1.17.1 API JTS(Java Topology Suite)拓扑套件.一套开放源码的 Java API。它提供了一套空间数据操作的核心算法。 (关于locationtech和vividsolutions:locationtech(持续更新中 1.15-...
  • JTS开发手册

    2019-01-16 14:21:48
    JAVA JTS开发手册,地理空间数据处理利器,详细介绍了各个类库。
  • jts-1.14.zip

    2020-07-28 21:33:47
    jts的帮助文档,里面有jts的相关api接口。可用于gis开发相关人员参考。文档的网页地址在..\jts-1.14\doc\javadoc\index.html
  • JTS是加拿大的 Vivid Solutions公司做的一套开放源码的 Java API。它提供了一套空间数据操作的核心算法。为在兼容OGC标准的空间对象模型中进行基础的几何操作提供2D空间谓词API
  • JTS是加拿大的 Vivid Solutions公司做的一套开放源码的 Java API。它提供了一套空间数据操作的核心算法。为在兼容OGC标准的空间对象模型中进行基础的几何操作提供2D空间谓词API
  • JTS 说明文档完整中文版。 本资源包括完整JTS中文说明文档,以及详细的开发指南,是初学者必备之选! JTS中文版
  • JTS拓扑结构程序组是一个通过使用明确的精度模型和健壮的几何算法来执行空间数据操作的Java应用编程孔。JTS是用来对可以支持空间数据集的确认、处理、综合及质疑的应用程序进行改善。这篇文献就是对在JTS拓扑程序组...
  • JTS拓扑套件是一个Java库,用于创建和操作矢量几何体。它还提供了一组全面的几何测试用例,以及用于处理和可视化几何和jts功能的testbuilder gui应用程序。
  • jts-1.1.4工具

    2018-09-05 15:23:14
    本资源是jst工具,含源码及说明文档,源码可供大家研究参考,及扩展
  • JTS133-2013水运工程岩土勘察规范
  • JTS提供了一套JAVA的GIS空间分析接口。此文档是JTS官方提供的入门文档。
  • 该项目已移至新家:http://code.google.com/p/nettopologysuite在这里您可以找到最新新闻和下载。
  • 记录下 java jts 求两个空间几何图形间最短距离,及最短距离间的两个坐标. 如:求一个点到一条直线的垂直坐标
  • 最新版港口与航道水文规范,是海洋工作者、港口工程工作者、河口研究者必备参考材料。本版本是对3013年海港水文规范的更新升级,内容丰富,值得一看。
  • 内河航标技术规范JTS-T 181-1-2020.pdf
  • JTS-1.15.0

    2020-09-25 15:26:53
    包含jts-1.15.0源码及jar包,已在solr7.4中应用,已在solr7.4中应用,已在solr7.4中应用
  • JTS

    千次阅读 2019-07-31 22:10:29
    JTS Geometry Operations一、pom.xml二、distance,intersection,union,difference 操作三、 Buffer,LineMerger,Polygonization,UnionLine,凹壳分析,Overlays3.1 Buffer,返回的结果是一个Polygon或者 ...

    JTS拓扑套件是一个GeoTools的外部套件来提供一个地理信息数据结构的实现。主要的好处就是经过多年的努力在数值上是稳定的。
    GooToots都是关于实现空间解决方案的,我们尽最大努力遵循一个不自己疯狂造轮子的主旨。优秀的JTS拓扑套件项目提供了我们在整个库中使用的几何实现。

    GeoTools中提供了一些组件辅助JTS

    1. gt-api 提供了帮助类和扩展JTS的CurvedGeometryFactory工厂来处理弧线。
    2. gt-main 提供了帮助类来讲Geometry转换为Java形态展示。

    Geometry 空间分析方法几何图形操作包:

    在operation包内,包含buffer、distance、linemerge、overlap、polygonize、predicate、relate、valide八个子包;

    分别对应着计算图形的缓冲、距离、线段融合、图形覆盖、多边形化、断言、关联、有效性等的操作。所有的操作针对的都是在geom包中定义的Geometry对象。

    由于在计算机中,所有的图形都是离散的点组成,所以所有的操作都是在组成图形的点的集合上进行的.
    一个图形(Geometry)的缓冲(buffer)

    距离操作(distance)是个二元操作,操作对象Geometry A、B,返回(A)与(B)中距离最近的两个点的距离。

    线段的融合(linemerge)是将Geometry A中相互连接的线段进行连接。

    多边形化操作(polygonize)对Geometry A进行计算,返回一个多边形(Polygon)。将由许多个点表示的图形,用少量的点来表示,减少图形的信息,即对图形进行降维。

    断言(predicate)是一个二维的操作,对Geometry之间的关系进行判断的操作。

    关联(relate) 根据DE-9IM(The Dimensionally Extended Nine-Intersection Model),该方法返回两个Geometry A与B的相交矩阵IM(Intersections Matrix)。这个矩阵在计算图形关系上用到。

    一、pom.xml

        <properties>
            <geospark.version>1.2.0</geospark.version>
            <geotools.version>14.1</geotools.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-library</artifactId>
                <version>2.11.0</version>
            </dependency>
            <dependency>
                <groupId>org.datasyslab</groupId>
                <artifactId>geospark</artifactId>
                <version>${geospark.version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-geometry</artifactId>
                <version>20.0</version>
            </dependency>
            <dependency>
                <groupId>com.vividsolutions</groupId>
                <artifactId>jts</artifactId>
                <version>1.13</version>
            </dependency>
            <dependency>
                <groupId>org.json</groupId>
                <artifactId>json</artifactId>
                <version>20180813</version>
            </dependency>
            <dependency>
                <groupId>com.esri.geometry</groupId>
                <artifactId>esri-geometry-api</artifactId>
                <version>2.2.2</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-geojson</artifactId>
                <version>${geotools.version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-api</artifactId>
                <version>${geotools.version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-referencing</artifactId>
                <version>${geotools.version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-epsg-hsql</artifactId>
                <version>${geotools.version}</version>
            </dependency>
        </dependencies>
        <repositories>
            <repository>
                <id>osgeo</id>
                <name>Open Source Geospatial Foundation Repository</name>
                <url>http://download.osgeo.org/webdav/geotools/</url>
            </repository>
            <repository>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
                <id>boundless</id>
                <name>Boundless Maven Repository</name>
                <url>http://repo.boundlessgeo.com/main</url>
            </repository>
        </repositories>
    </project>
    

    二、JTS Geometry Operation

    列举了distance,intersection,union,difference 操作:

    import java.util.ArrayList;
    import java.util.List;
     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;
    /**  
     * Description 几何对象操作
     */
    public class Operation {
    	
    	private GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory( null );
    	
    		/**
    	 * create a Point
    	 * @param x
    	 * @param y
    	 * @return
    	 */
    	public Coordinate point(double x,double y){
    		return new Coordinate(x,y);
    	}
    	 
    	/**
    	 * create a line
    	 * @return
    	 */
    	public LineString createLine(List<Coordinate> points){
    		Coordinate[] coords  = (Coordinate[]) points.toArray(new Coordinate[points.size()]);
    		LineString line = geometryFactory.createLineString(coords);
    		return line;
    	}
    	
    	/**
    	 * 返回(A)与(B)中距离最近的两个点的距离
    	 * @param a
    	 * @param b
    	 * @return
    	 */
    	public double distanceGeo(Geometry a,Geometry b){
    		return a.distance(b);
    	}
    	
    	/**
    	 * 两个几何对象的交集
    	 * @param a
    	 * @param b
    	 * @return
    	 */
    	public Geometry intersectionGeo(Geometry a,Geometry b){
    		return a.intersection(b);
    	}
    	
    	/**
    	 * 几何对象合并
    	 * @param a
    	 * @param b
    	 * @return
    	 */
    	public Geometry unionGeo(Geometry a,Geometry b){
    		return a.union(b);
    	}
    	
    	/**
    	 * 在A几何对象中有的,但是B几何对象中没有
    	 * @param a
    	 * @param b
    	 * @return
    	 */
    	public Geometry differenceGeo(Geometry a,Geometry b){
    		return a.difference(b);
    	}
    	
    		public static void main(String[] args){
    		Operation op = new Operation();
    		//创建一条线
    		List<Coordinate> points1 = new ArrayList<Coordinate>();
    		points1.add(op.point(0,0));
    		points1.add(op.point(1,3));
    		points1.add(op.point(2,3));
    		LineString line1 = op.createLine(points1);
    		//创建第二条线
    		List<Coordinate> points2 = new ArrayList<Coordinate>();
    		points2.add(op.point(3,0));
    		points2.add(op.point(3,3));
    		points2.add(op.point(5,6));
    		LineString line2 = op.createLine(points2);
    		System.out.println(op.distanceGeo(line1,line2));//out 1.0
    		System.out.println(op.intersectionGeo(line1,line2));//out GEOMETRYCOLLECTION EMPTY
    		System.out.println(op.unionGeo(line1,line2)); //out MULTILINESTRING ((0 0, 1 3, 2 3), (3 0, 3 3, 5 6))
    		System.out.println(op.differenceGeo(line1,line2));//out LINESTRING (0 0, 1 3, 2 3)
    	}
    }
    

    三、 Buffer,LineMerger,Polygonization,UnionLine,凹壳分析,Overlays

    构造器:GeometryFactory.java

    import com.vividsolutions.jts.geom.Geometry;
    import com.vividsolutions.jts.io.ParseException;
    import com.vividsolutions.jts.io.WKTReader;
     
    public class GeometryFactory {
    	
    	private WKTReader reader;
    		private  GeometryFactory instance = null;
    	
    	public static synchronized GeometryFactory getInstance(){
    		if(instance==null){
    			instance = new GeometryFactory();
    		}
    		return instance;
    	}
    	
    	public void getReader(){
    		reader = new WKTReader();
    	}
    	
    	public Geometry buildGeo(String str){
    		try {
    			if(reader==null){
    				reader = new WKTReader();
    			}
    			return reader.read(str);
    		} catch (ParseException e) {
    			throw new RuntimeException("buildGeometry Error",e);
    		}
    	}
     }
    

    3.1 Buffer,返回的结果是一个Polygon或者 MultiPolygon

    import com.vividsolutions.jts.geom.Geometry;
    import com.vividsolutions.jts.operation.buffer.BufferOp;
     
    public class Buffers {
     
    	private GeometryFactory factory = GeometryFactory.getInstance();
     
    	public Geometry buildGeo(String str) {
    		return factory.buildGeo(str);
    	}
     
    	public static void main(String[] args) {
    		Buffers bs = new Buffers();
    		String line1 = "LINESTRING (0 0, 1 1, 2 2,3 3)";
    		Geometry g1 = bs.buildGeo(line1);
    		//方式(一)
    		Geometry g = g1.buffer(2);
     
    		方式(二) BufferOP
    		BufferOp bufOp = new BufferOp(g1);
    		bufOp.setEndCapStyle(BufferOp.CAP_BUTT);
    		Geometry bg = bufOp.getResultGeometry(2);
    	}
    }
    

    3.2 Polygonization 面处理类

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Collection;
    import com.vividsolutions.jts.geom.Geometry;
    import com.vividsolutions.jts.operation.polygonize.Polygonizer;
     
    public class Polygonization {
     
    	private static GeometryFactory factory = GeometryFactory.getInstance();
     
    	public static void main(String[] args) {
    		List<Geometry> list = new ArrayList<Geometry>();
    		list.add(factory.buildGeo("LINESTRING (0 0,1 1)")); 
    		list.add(factory.buildGeo("LINESTRING (6 3,6 10)"));
    		list.add(factory.buildGeo("LINESTRING (2 2,4 4,6 3)"));
    		list.add(factory.buildGeo("LINESTRING (2 2,5 1,6 3)"));
    		list.add(factory.buildGeo("LINESTRING (6 3,6 4)"));
    		list.add(factory.buildGeo("LINESTRING (9 5,7 1,6 4)"));
    		list.add(factory.buildGeo("LINESTRING (9 5,8 8,6 4)"));
    		Polygonizer p = new Polygonizer();
    		p.add(list);
    		Collection<Geometry> polys = p.getPolygons(); //面
    		Collection<Geometry> dangles = p.getDangles();//悬挂线
    		Collection<Geometry> cuts = p.getCutEdges(); //面和面的连接线
    		System.out.println(polys.size()+":"+polys.toString());
    		System.out.println(dangles.size()+":"+dangles.toString());
    		System.out.println(cuts.size()+":"+cuts.toString());
    	}
    }
    

    输出结果:

    2:[POLYGON ((2 2, 4 4, 6 3, 5 1, 2 2)), POLYGON ((6 4, 8 8, 9 5, 7 1,
    6 4))] 2:[LINESTRING (6 3, 6 10), LINESTRING (0 0, 1 1)] 1:[LINESTRING
    (6 3, 6 4)]

    3.3 LineMerger 线路合并,线路之间不能有交点,并且只在线路末尾有公共交点

    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.List;
     
    import com.vividsolutions.jts.geom.Geometry;
    import com.vividsolutions.jts.operation.linemerge.LineMerger;
     
    public class MergerLine {
     
    	private static GeometryFactory factory = GeometryFactory.getInstance();
     
    	public static void main(String[] args) {
    		LineMerger lineMerger = new LineMerger();
    		List<Geometry> list = new ArrayList<Geometry>();
    		list.add(factory.buildGeo("LINESTRING (3 3,2 2,0 0)"));
    		list.add(factory.buildGeo("LINESTRING (3 3,6 6,0 10)"));
    		list.add(factory.buildGeo("LINESTRING (0 10,3 1,10 1)"));
    		lineMerger.add(list);
    		Collection<Geometry> mergerLineStrings = lineMerger.getMergedLineStrings();
    		for (Geometry g : mergerLineStrings) {
    			System.out.println(g.toText());
    		}
    	}
    }
    

    输出结果:LINESTRING (0 0, 2 2, 3 3, 6 6, 0 10, 3 1, 10 1)

    lineMerger 和union区别,union可以在两条相交的线中生成交点(noded)

    3.4 union 线路合并,并且生成交叉点

    import java.util.ArrayList;
    import java.util.List;
     
    import com.vividsolutions.jts.geom.Geometry;
     
    public class UnionLine {
     
    	private static GeometryFactory factory = GeometryFactory.getInstance();
     
    	public static void main(String[] args) {
    		List<Geometry> list = new ArrayList<Geometry>();
    		list.add(factory.buildGeo("LINESTRING (10 10,2 2,0 0)"));
    		list.add(factory.buildGeo("LINESTRING (10 0,6 6,0 10)"));
    		list.add(factory.buildGeo("LINESTRING (1 1,3 1,10 1)"));
    		Geometry nodedLine = list.get(0);
    		for (int i = 1; i < list.size(); i++) {
    			nodedLine = nodedLine.union(list.get(i));
    		}
    		int num = nodedLine.getNumGeometries();
    		for (int j = 0; j < num; j++) {
    			Geometry eachG = nodedLine.getGeometryN(j);
    			System.out.println(eachG.toText());
    		}
    	}
    }
    
    展开全文
  • 该项目对 JTS 准备好的几何和常规几何的几种不同排列进行了实验,每种排列具有不同的几何尺寸。 跑步 mvn clean compile mvn exec:exec 运行结果 准备几何体 JTS 有一个的概念,它有一些创建/索引的初始开销,以...
  • 本规范是在行业标准((海港总平面设计规范》( JTJ 211-99)和((开敞式码头设计与 施工技术规程》( JTJ 295-2000 )的基础上,结合我国水运工程建设的现状和发展需要,通 过深人调查研究,总结我国近十多年来沿海港口...
  • Java 交通模拟器 (jts) Java Traffic Simulator (jts)是基于代理的真实传输网络上的微模拟。 易于使用的设计。 该项目作为模块的一部分重新发布:伯尔尼应用科学大学的项目 1。 该项目目前正在大力开发中。 特征 ...
  • Java事务服务拓扑套件-开发者指南
  • 一个 clojure 库包装了 JTS,实现了简单功能规范(OGC)。 cljts 提供了一套 clojure API 来操作几何对象,包括: 创建 SFS 合格的几何对象:点、线串、多边形等 空间关系 (DE9-IM) 空间分析 IO、序列化(WKB 和 ...
  • Java EJB JTA JTS用法示例源代码,例子对基于JTA的事务处理的实现进行了讨论,其中事务对象UserTransaction在EJB组件中执行,其实事务对象UserTransaction也可以在客户端使用。  J2EE包括了两套规范,用来支持...
  • gt-metadata-18.4.jar和gt-main-18.4.jar两个java包提供给大家
  • JTS拓扑套件开发指南

    2016-01-21 17:26:14
    JTS拓扑套件开发指南 java版本,中文,很清晰。
  • jts_1.14.zip

    2019-09-24 16:59:52
    jts提供了一系列空间操作的核心算法,此压缩包为jts拓扑套件1.14的jar包
  • jts-app.rar

    2020-05-22 14:17:39
    Geometry空间分析方法几何图形操作包,在operation包内,包含buffer、distance、linemerge、overlap、polygonize、predicate、relate等包。分别对应着计算图形的缓冲、距离、线段融合、图形覆盖、多边形化、断言、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,518
精华内容 4,207
关键字:

jts