案例四:JTS-根据起始点求一个线的子线

26 篇文章 3 订阅

案例:根据起始点求一个线的子线

示例

求A,B点之间在L上面的线段L1

在这里插入图片描述

说明

通过LocationIndexedLine来实现;

借助locationIndexedLine.indexOf

A上面的第一个形状点p1,投影到l上面得到p11;

B上面生的最后一个形状点Pn,投影到l上面得到Pnn;

通过locationIndexedLine.extractLine(p2位置,Pn位置) 来截取生成投影对象 L1

示例代码

package com.leokok.jts.learning.jts.core.demo;

import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.io.ParseException;
import org.locationtech.jts.io.WKTReader;
import org.locationtech.jts.linearref.LinearLocation;
import org.locationtech.jts.linearref.LocationIndexedLine;

/**
 * 根据起始点求一个线的子线
 */
public class SubLineByPointTest {

    public static void main(String[] args) throws ParseException {


        WKTReader reader = new WKTReader();
        Geometry l = reader.read("LINESTRING (263 225, 265 241, 282 265, 300 290, 340 300, 360 290, 380 270, 389 264, 460 240, 480 240, 520 270, 525 304, 540 330, 552 330, 562 330, 580 330, 583 320, 600 290, 610 260, 610 250, 610 230, 610 220)");
        LocationIndexedLine lil = new LocationIndexedLine(l);
        LinearLocation start = lil.indexOf(new Coordinate(327, 285));
        LinearLocation end = lil.indexOf(new Coordinate(520, 320));
        Geometry l1 = lil.extractLine(start, end);
        System.out.println(l1.toText());

        // 结果
        //LINESTRING (324.2352941176471 296.05882352941177, 340 300, 360 290, 380 270, 389 264, 460 240, 480 240, 520 270, 525 304, 530.677025527192 313.84017758046616)


    }
}

效果

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: jts-1.13.jar 是一个Java语言编写的JTS(Java拓扑套件)库的版本,这个库主要用于在地理信息系统(GIS)开发中进行空间数据处理和拓扑分析。下面是对于 jts-1.13.jar 的一些说明: 1. 功能:jts-1.13.jar 提供了许多常见的空间数据操作功能,如点、线、面的创建、编辑和删除,缓冲区分析、空间关系判断等。通过这些功能,开发人员可以方便地处理和分析地理空间数据。 2. 特点:jts-1.13.jar 是一个开源的库,在开发GIS应用程序时可以被方便地引入。它提供了一组丰富而强大的类和方法,以支持地理空间数据的处理,并且在性能和可靠性方面有较好的表现。 3. 应用领域:jts-1.13.jar 可以被广泛用于各种GIS应用开发中。它可以用于创建和编辑地理空间数据集,进行空间查询和分析,支持路径规划、地图匹配、空间索引等功能。这个库在不同领域的GIS应用中都得到了广泛的应用和验证。 4. 兼容性:jts-1.13.jar 兼容性较好,可以与其他GIS开发工具和框架结合使用。它支持常见的空间数据格式和协议,如Shapefile、GeoJSON等,可以方便地与其他地理信息系统进行数据交换和共享。 总结来说,jts-1.13.jar 是一个功能强大、易于使用和兼容性较好的GIS库,可以广泛应用于各种地理信息系统开发中。通过该库,开发人员可以方便地处理和分析地理空间数据,实现各种空间查询和分析功能,提高GIS应用的开发效率和性能。 ### 回答2: jts-1.13.jar 是一个开源的 Java Topology Suite 库的版本,它提供了在地理信息系统(GIS)中处理和分析地理空间数据的功能。这个库是由意大利的JTS项目开发的,旨在为开发人员提供一种在他们的Java应用程序中实现GIS功能的方式。 这个版本的库具有许多功能,包括几何对象的创建、操作和查询等。它支持点、线和面等常见的几何类型,并提供一系列的操作方法,例如计算距离、判断包含关系、计算缓冲区等。开发人员可以使用这些方法来处理地理空间数据,进行空间分析和查询。 此外,jts-1.13.jar 还提供了一些算法的实现,如凸包算法、最小外包矩形算法、R树索引等。这些算法可以帮助开发人员解决一些与地理空间数据相关的问题,例如查找最近的邻居、查找覆盖一个区域的最小矩形等。 总之,jts-1.13.jar 是一个功能强大的库,可以帮助开发人员处理和分析地理空间数据。通过使用这个库,开发人员可以更轻松地实现GIS功能,为他们的应用程序增加地理空间数据处理的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值