多边形线、面的自相交问题一直是个头疼的问题!网上的处理方式有多种,Polygonizer使用线从新绘制是一种,但会漏掉中间的孔洞。昨天突然想到一个巧妙的解决方法。程序员不多说,直接上代码了。巧妙方法来了_ 。
处理前:

处理后:

工具类代码:
package com.vx.utils;
import com.vividsolutions.jts.geom.*;
import com.vividsolutions.jts.operation.valid.IsValidOp;
import com.vividsolutions.jts.operation.valid.TopologyValidationError;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class PolygonUtil {
private static Logger logger= LoggerFactory.getLogger(PolygonUtil.class);
private static PrecisionModel precisionModel = new PrecisionModel(1);
private static GeometryFactory geometryFactory = new GeometryFactory(precisionModel, 0);
public static Geometry conventPolygon(String geometryStr) {
Geometry geometry1 = JTSNewUtil.geometry(geometryStr);
if(geometry1 instanceof MultiPolygon){

本文介绍了一种处理多边形自相交问题的方法,通过对多边形的线和面进行重构来修复自相交错误,并确保保留正确的孔洞信息。文中提供了一个Java实现的示例。
最低0.47元/天 解锁文章
8129

被折叠的 条评论
为什么被折叠?



