JTS-Orientation方向计算

news2024/11/29 2:40:18

org.locationtech.jts.algorithm.Orientation 使用说明

用于计算基本几何结构(包括点三重体(三角形)和环)的方向的函数。方向是平面几何的基本属性。

Orientation.index(Coordinate p1, Coordinate p2, Coordinate q)

说明

计算q点处在p1点->p2点方向的左侧还是右侧,左侧(逆时针方向)返回1,右侧(顺时针方向)返回-1

操作示例

在这里插入图片描述

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

import org.locationtech.jts.algorithm.Orientation;
import org.locationtech.jts.geom.Coordinate;

/**
 * 用于计算基本几何结构(包括点三重体(三角形)和环)的方向的函数。方向是平面几何的基本属性。
 */
public class OrientationTest {

    public static void main(String[] args) {
        Coordinate p0 = new Coordinate(219.3649559090992, 140.84159161824724);
        Coordinate p1 = new Coordinate(168.9018919682399, -5.713787599646864);

        Coordinate p = new Coordinate(186.80814046338352, 46.28973405831556);
        int orient = Orientation.index(p0, p1, p);
        int orientInv = Orientation.index(p1, p0, p);

        System.out.println("p在p0->p1的左侧:"+orient);
        System.out.println("p在p1->p0的右侧:"+orientInv);
    }
}

输出:

p在p0->p1的左侧:-1
p在p1->p0的右侧:1

Orientation.isCCW(Coordinate[] ring)

说明

判断环是否是逆时针方向

操作示例

在这里插入图片描述

@Test
public void isCCWTest() throws ParseException {
    WKTReader wktReader = new WKTReader();
    Geometry geometry = wktReader.read("POLYGON ((415.1715 77.9175, 415.1712 77.9172, 415.1711 77.91685, 415.1717 77.9165, 415.1718 77.91649, 415.1724 77.9166, 415.1728 77.9169, 415.17286 77.91726, 415.1728 77.9176, 415.1725 77.9179, 415.1719 77.918, 415.1716 77.918, 415.1715 77.9175))");

    Coordinate[] coordinates = geometry.getCoordinates();

    System.out.println(Orientation.isCCW(coordinates));
}

输出 true

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/763638.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

9. selenium API 【万字】

目录 1. 元素的定位 1.1 css selector 1.1.1 id 选择器 1.1.2 类选择器 1.1.3 标签选择器 1.1.4 后代选择器 1.2 xpath 1.2.1 相对路径 索引 1.2.2 相对路径 元素 1.2.3 相对路径 通配符 1.2.4 相对路径 部分元素定位 1.2.5 相对路径 文本定位 1.3 应用&…

gazebo软件建立带摄像和红外功能的小车

背景: 为了方便调整摄像头的高度,我需要重新构建以下带小车的模型。小白分享来了。 目录 1. 先构建一个能跑的小车。 1.1 gazebo设计四个物体:车体三个车轮。组合然后构建好后在本地保存成小车模型。 1.2 打开本地文件添加plugin插件&…

转行软件测试成功的关键因素是什么?

三年前张伟是一名厨师,职高毕业,团队一共有5个人,大家各自负责自己的模块,整体上感觉相差不大,特别的团结稳定。 可是后来随着疫情的发生,对整个社会都产生了严重的冲击,饭店每天的订单是越来越少&#xf…

Spark 4:Spark Core 共享变量

广播变量 # coding:utf8 import timefrom pyspark import SparkConf, SparkContext from pyspark.storagelevel import StorageLevelif __name__ __main__:conf SparkConf().setAppName("test").setMaster("local[*]")sc SparkContext(confconf)stu_inf…

设计模式day03

01gradle极速安装与配置入门 下载6.8.2版本,配置环境变量 配置镜像仓库 给gradle安装目录下init.d文件夹,放一个init.gradle文件,内容如下: gradle.projectsLoaded {rootProject.allprojects {buildscript {repositories {def JCENTER_URL…

go语言计算推算心率算法 http服务

目的 为了计算心率和并且将心率计算作为http服务来运行 几种计算方法 1 基本数据 a) hrv heart rate variability b) 呼吸 2 傅里叶变换 计算频率 高频和低频 3 隐形马尔科夫 模型 hmm 重在于推测概率 根据最近的心率计算 4 神经网络计算 基本计算 …

APP外包开发原生和H5的对比

在开发APP的技术中,除了原生开发外也可以使用H5框架来开发。原生开发的特点是质量高,用户体验更好,但成本高,适用于对质量要求高的APP项目。H5框架的特点是通用性较强,对开发人员的要求相对较低,成本也低&a…

23款奔驰GLE350轿跑加装前排原厂座椅通风系统,夏天必备的功能

通风座椅的主动通风功能可以迅速将座椅表面温度降至适宜程度,从而确保最佳座椅舒适性。该功能启用后,车内空气透过打孔皮饰座套被吸入座椅内部,持续时间为 8 分钟。然后,风扇会自动改变旋转方向,将更凉爽的环境空气从座…

怎么批量查询快递单号的物流状态并导出查询数据

随着互联网技术的不断发展,电商行业想做大做强,售后环节一定要做到位。想要做好售后服务,需要借助一些技巧与手段。今天小编给大家安利一款软件:“固乔快递查询助手”,这是一款可以批量查询快递信息的软件,…

python_PyQt5开发股票日数据更新工具

写在前面: 该工具更新的股票日数据来自优矿,为了把股票日数据在本地存储一份,这就面临需要定期更新的需求,为此开发了这个工具。 定期更新的股票日数据特征: 1 旧股票日数据(也就是上次更新的数据&#…

【机器学习】吴恩达课程2-单变量线性回归

一、单变量线性回归 1. 模型描述 监督学习的流程 & 单变量线性回归函数 代价函数:,其中 m 表示训练样本的数量 公式为预测值与实际值的差,平方为最小二乘法和最佳平方/函数逼近。 目标:最小化代价函数,即 2. 只…

PR模板-33组故障干扰文字标题动画 Motion Glitch Typography

Motion Glitch Typography包含33组故障干扰文字标题动画pr模板。不需要任何插件或脚本,只需点击几下,您的视频就有很酷的故障标题动画,适用于预告片、宣传片或任何类型的视频。 适用软件:Premiere Pro 2020 或更高版本 分辨率&a…

Go语言之函数补充defer语句,递归函数,章节练习

defer语句是go语言提供的一种用于注册延迟调用的机制,是go语言中一种很有用的特性。 defer语句注册了一个函数调用,这个调用会延迟到defer语句所在的函数执行完毕后执行,所谓执行完毕是指该函数执行了return语句、函数体已执行完最后一条语句…

密码学学习笔记(十四):SHA-3 Sponge Construction - 海绵结构

SHA-3算法满足了哈希函数的三个安全属性,并且和SHA-2的变体达到同样级别的安全性。此外,SHA-3算法不容易受到长度扩展攻击,并可用于计算秘密消息的哈希值。 SHA-3是一种建立在Permutation(置换)之上的密码算法。 置换就是假设有两个数组a和…

Hadoop第一课之环境配置

1.配置一个模板机 要求:IP DNS地址页 网址 防火墙 安装包 1.ip ifconfig 查询 先用虚拟机看一下自己的网关 vim search/provides 命令 查找 # 修改网络配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 如果提示找不到vim命令,使用yum下载v…

Springboot Excel 最简单的 多sheet表 导入导出

前言 上周学习群里有人问到,多个sheet的导出导入,我第一反应就是easypoi不是自己就有方法了么? 后面一想,可能有些看客还处于是 找工具类,然后调试 的写代码 的 阶段,可能还不会去看jar包的一些函数。 既然…

SpringMVC入门篇5 --- 拦截器

目录 1. 简介 拦截器(Interceptor)是一种动态拦截方法调用的机制。 作用: 在指定的方法调用前后执行预先设定后的代码。阻止原始方法的执行。 拦截器与过滤器的区别 归属不同:Filter属于Servlet技术,Interceptor…

使用vue3 + Ts + Vite + ElementPlus实现一个抽奖程序

一. 说明 这是一个通过vue3 Ts Vite ElementPlus实现的一个抽奖程序。项目链接 二. 整体架构与功能描述 左侧设置了奖品说明,每个奖项配有文字和图片简介。总共设置了四个奖项,分别是特等奖1名,一等奖2名,二等奖5名&#xf…

平安养老险党委书记、董事长甘为民:聚焦养老主业 助推养老保障事业高质量发展

每经记者 涂颖浩 每经编辑 马子卿 随着人口老龄化趋势加剧,中国养老金融市场呈现出巨大的潜力,逐步迈入养老新时代。近日,平安养老险党委书记、董事长甘为民在接受《每日经济新闻》记者专访时表示,过往单纯的养老发展模式难以满足…

Jmeter性能测试 —— 性能测试的概念

性能测试的概念 性能测试是指通过特定方式,对被测系统按照一定策略施加压力,获取系统 响应时间、TPS(Transaction Per Second)、吞吐量、资源利用率等性能指标,以期保证生产系统的性能能够满足用户需求的过程。 性能…