JTS: 19 IndexedPointInAreaLocator 判断是否在点在面的内部

文章目录

      • 版本
      • 代码

版本

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

代码

在这里插入图片描述

package pers.stu.algorithm;

import org.locationtech.jts.algorithm.locate.IndexedPointInAreaLocator;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.CoordinateArrays;
import org.locationtech.jts.geom.GeometryFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 判断是否在点在面的内部
 * @author LiHan
 * 2023-11-10 10:11:30
 */
public class IndexedPointInAreaLocatorUse {

    private static final Logger LOGGER = LoggerFactory.getLogger(IndexedPointInAreaLocatorUse.class);

    private final GeometryFactory geometryFactory = new GeometryFactory();

    public static void main(String[] args) {
        IndexedPointInAreaLocatorUse indexedPointInAreaLocatorUse = new IndexedPointInAreaLocatorUse();
        indexedPointInAreaLocatorUse.test00();
    }

    public void test00() {
        Coordinate[] coordinates1 = new Coordinate[] {
                new Coordinate(3, 8),new Coordinate(10, 8),new Coordinate(10, 3),new Coordinate(3, 3),
                new Coordinate(3, 8)
        };

        Coordinate[] coordinates2 = new Coordinate[] {
                new Coordinate(6, 5), new Coordinate(10,6), new Coordinate(13,5)
        };

        IndexedPointInAreaLocator indexedPointInAreaLocator = new IndexedPointInAreaLocator(geometryFactory.createPolygon(coordinates1));

        for (Coordinate coordinate : coordinates2) {
            // org.locationtech.jts.geom.Location
            // 0 内部,1 边界,2 外部
            LOGGER.info("是否在面里:{}", indexedPointInAreaLocator.locate(coordinate));
        }
    }
}
18:12:43.842 [main] INFO  pers.stu.algorithm.IndexedPointInAreaLocatorUse - 是否在面里:0
18:12:43.844 [main] INFO  pers.stu.algorithm.IndexedPointInAreaLocatorUse - 是否在面里:1
18:12:43.844 [main] INFO  pers.stu.algorithm.IndexedPointInAreaLocatorUse - 是否在面里:2

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

web 自动化测试,这8 个核心知识点,你一定得掌握

使用 cypress 进行端对端测试,和其他的一些框架有一个显著不同的地方,它使用 JavaScript 作为编程语言。 传统主流的 selenium 框架是支持多语言的,大多数 QA 会的 python 和 Java 语言都可以编写 selenium 代码,遇到需要编写 js…

一文详解进销存管理系统!

一、什么是进销存管理系统? 进销存软件是一种针对制造业企业设计的管理软件系统,旨在协调和优化企业的生产、采购、销售以及库存管理等方面的活动。该系统的主要目标是提高企业的生产效率、降低库存成本、优化供应链,并增强企业的整体运营效…

【中间件篇-Redis缓存数据库08】Redis设计、实现、redisobject对象设计、多线程、缓存淘汰算法

Redis的设计、实现 数据结构和内部编码 type命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串)hash(哈希)、list(列表)、set(集合)、zset (有序集合),但这些只是Redis对外的数据结构。 实际上每种数据结构都有自己底层的…

<MySQL> MySQL中查询(retrieve)数据的基础操作

目录 一、查询(retrieve) 1.1 查询数据的方式概述 二、全列查询 2.1 语法 2.2 操作演示 2.3 全列查询需要慎重使用 三、指定列查询 3.1 语法 3.2 操作演示 四、表达式查询 4.1 语法 4.2 操作演示 4.3 null 参与表达式计算 4.3 表达式查询存…

【Proteus仿真】【Arduino单片机】简易计算器设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用PCF8574、LCD1602液晶、4*4矩阵键盘等。 主要功能: 系统运行后,操作矩阵按键可实现简单四则运算。 二、软件设计 /* …

JDK并发修改异常的一个“BUG“

很多电商公司早期的架构都是基于PHP,所以我身边会有很多很厉害的PHP老哥,但现在都在写Java。昨天看到他在看Java的并发修改异常,正打算秀一波操作,却被他的一个问题难住了: public class ForeachTest {public static …

高防IP可以抵御哪些恶意攻击

高防IP协议可以隐藏用户的站点,使得攻击者无法发现恶意攻击的目标网络资源,从而提高了源站的安全性。能够有效抵御常见的恶意攻击类型ICMPFlood、UDPFlood、 TCPFlood、SYNFlood、ACKFlood等,帮助游戏、金 融、电子商务、互联网、政企等行业抵…

centos7 在线安装python3

在线安装命令 yum install -y python3 输入命令之后等待安装完成 查看版本 查看版本3 输入命令 python3 看到版本号为3.6.8 查看版本2 输入命令 python2 看到版本号为2.7.5

Java基础——方法参数值的传递机制

方法必须由其所在类或对象调用才有意义。 形参:方法声明时的参数。实参:方法调用时实际传给形参的参数值。 Java中方法的参数传递方式只有一种:值传递(即将实际参数值得副本传入方法内) 形参是基本数据类型&#xf…

「我在淘天做技术」假如你五行属商家,如何算好账?

给讲讲大家淘天淘工厂财务开发的相关内容。 财务开发好陌生,是什么?好了,现在假如你五行属商家,并且就在淘宝上卖东西。当消费者买了你的东西,淘宝是不是需要给你结算这笔交易订单的钱,另外淘宝是不是还要收…

阿里全系产品崩上了热搜,我是有些失望的

双十一刚刚过,没想到阿里巴巴全系产品却又崩上热搜了。看来阿里的不少程序员同学今天又是在加班中度过了,心疼,希望你们把班加了就可以了,锅就别背了。 据了解,截至目前,本次修复进展如下: 17:…

7.现代卷积神经网络3-GPT版

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 深度卷积神经网络 AlexNet一、AlexNet1、AlexNet2、机器学习3、几何学4、特征工程5、HardWare6、数据集7、AlexNet的改进的地方8、AlexNet架构-卷积池化9、AlexNet架构-卷积池化10、AlexNet架构-全连接层11、更多改变细…

React Native简介 说明为什么要学习React Native

首先 什么是 React Native ? React Native 是 Facebook 在 React.js Conf 2015 上推出了开源框架 React Native (简称 RN)是 React 的一个原生 (Native) 扩展 它允许我们通过 React 语法,来开发ios 和Android 原生应用 简单说 由Facebook发布 是一种Re…

【EDAS论文投稿】

背景 第一次使用这个系统投稿,不是很熟练甚至差点错过了投稿时间,所以记录一下投稿过程中出现的致命问题。 注册、登录就不用说了 登陆后选择自己的会议的symposia 添加文章信息;依次添加作者信息 在第三步长传文件时,系统提示…

PNAS | 蛋白质结构预测屈服于机器学习

今天为大家介绍的是来自James E. Rothman的一篇短文。今年的阿尔伯特拉斯克基础医学研究奖表彰了AlphaFold的发明,这是蛋白质研究历史上的一项革命性进展,首次提供了凭借序列信息就能够准确预测绝大多数蛋白质的三维氨基酸排列的实际能力。这一非凡的成就…

行情分析——加密货币市场大盘走势(11.13)

大饼上涨太快,又开始震荡,但上不去,所以目前来看差不多要做回踩动作,入场空单性价比较高。而且从MACD日线来看,也是进入空头趋势,RSI(14)也是进入了超买区间,值得入手空单…

sqli-labs关卡15(基于post提交的单引号布尔盲注)通关思路

文章目录 前言回顾上一关知识点二、靶场第十五关通关思路1、判断注入点2、猜数据库长度3、猜数据库名字4、猜表名长度5、猜表名名字6、猜列名长度7、猜列名名字8、猜数据长度9、猜数据名字 总结 前言 此文章只用于学习和反思巩固sql注入知识,禁止用于做非法攻击。注…

探索C#事件(Event)的强大应用

摘要 在现代软件开发中,对象之间的通信和交互是一个常见而重要的问题。为了解决这个问题,C#作为一种面向对象的编程语言提供了一种强大的特性:事件(Event)。事件可以帮助开发人员实现对象间的松耦合,提高代…

Leetcode100120. 找出强数对的最大异或值 I

Every day a Leetcode 题目来源:100120. 找出强数对的最大异或值 I 解法1:模拟 枚举 2 遍数组 nums 的元素,更新最大异或值。 代码: /** lc appleetcode.cn id100120 langcpp** [100120] 找出强数对的最大异或值 I*/// lc c…

react使用wx-open-launch-weapp的方法

index.html中加载 <script src"https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> ios浏览器中,建议直接在app.js中触发 wx.config,其中openTagList写上wx-open-launch-weapp 因为微信需要根据网址计算签名,iosreact中会以根目录为有效网址 …