前言
对于经纬度的处理,你可以使用专门的地理信息系统(GIS)库,如JTS Topology Suite(JTS),它支持复杂的空间操作,包括判断点是否在多边形内。下面是一个示例,使用JTS来处理这个问题:
一、导入依赖
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
<version>1.18.0</version>
</dependency>
二、代码
代码如下:区域坐标最后一个需要和第一个相同,形成闭环
public static void main(String[] args) {
GeometryFactory geometryFactory = new GeometryFactory();
// 定义多边形的顶点
Coordinate[] coords = new Coordinate[] {
new Coordinate(97.441, 43.087),
new Coordinate(104.798, 42.952),
new Coordinate(104.529, 39.129),
new Coordinate(97.953, 39.299),
new Coordinate(97.441, 43.087) // 多边形闭合
};
// 创建多边形
Polygon polygon = geometryFactory.createPolygon(coords);
// 测试点 区域内
// Point testPoint = geometryFactory.createPoint(new Coordinate(101.484, 41.176));
// 区域外
Point testPoint = geometryFactory.createPoint(new Coordinate(93.337, 43.922));
// 检查点是否在多边形内
boolean isInPolygon = polygon.contains(testPoint);
// 输出结果
System.out.println("点(" + testPoint.getX() + ", " + testPoint.getY() + ") 是否在多边形内: " + isInPolygon);
}