geotools
GeoTools
是一个应用 JAVA
开发的开源 GIS 工具。能够开发符合标准的地理信息系统及相干利用。具体应用及详情能够百度一下。本文次要讲述如何利用 GeoTools
判断坐标是否在多边形内。
POM.xml
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-jts-wrapper</artifactId>
<version>23.2</version>
</dependency>
JAVA
import org.geotools.geometry.jts.JTSFactoryFinder;
import org.locationtech.jts.geom.GeometryFactory;
import org.locationtech.jts.io.ParseException;
import org.locationtech.jts.io.WKTReader;
/**
* 利用 GeoTools 判断坐标是否在多边形内
*
* @author BBF
*/
public class GeoDemo {
/**
* 通用几何对象工厂构建器
*/
private static final GeometryFactory FACTORY = JTSFactoryFinder.getGeometryFactory(null);
private static final WKTReader WKT_READER = new WKTReader(FACTORY);
/**
* 判断点是否存在多边形内
*
* @param point 点
* @param polygon 多边形
* @return true - 在多边形内
* @throws ParseException wkt 转换异样
* @see <a href="https://blog.csdn.net/lidejun152046/article/details/47128169">WKT 格局 </a>
*/
public static boolean contains(String point, String polygon) throws ParseException {return WKT_READER.read(polygon).contains(WKT_READER.read(point));
}
}
测试用例
@Test
public void testContains() throws ParseException {String wktPoint1 = "POINT (10 10)";
String wktPoint2 = "POINT (20 20)";
String wktPoly = "POLYGON ((0 0, 0 10, 10 20, 20 20, 20 0, 0 0))";
boolean test1 = GeoDemo.contains(wktPoint1, wktPoly);
boolean test2 = GeoDemo.contains(wktPoint2, wktPoly);
System.out.println("point1 地位:" + test1); // true
System.out.println("point2 地位:" + test2); // false
}
附录:geotools 仓库援用
org.geotools
的仓库地址:https://repo.osgeo.org/repository/release/
。
特地揭示
没有公布到地方库
没有公布到地方库
没有公布到地方库
无 Nexus
如果本地没有搭建 Nexus 私服,须要配置内部私服(如阿里云、华为云等),切记要改一下mirrorOf。
setting.xml
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>*,!osgeo</mirrorOf>
</mirror>
</mirrors>
pom.xml
<repositories>
<!-- geotools 仓库 -->
<repository>
<id>osgeo</id>
<name>OSGeo Release Repository</name>
<url>https://repo.osgeo.org/repository/release/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
有私服
Nexus
创立maven2(proyx)
,镜像https://repo.osgeo.org/repository/release/
。将仓库退出group
。