• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java Polygonal类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.vividsolutions.jts.geom.Polygonal的典型用法代码示例。如果您正苦于以下问题:Java Polygonal类的具体用法?Java Polygonal怎么用?Java Polygonal使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



Polygonal类属于com.vividsolutions.jts.geom包,在下文中一共展示了Polygonal类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: computeSimple

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
private boolean computeSimple(Geometry geom) {
    this.nonSimpleLocation = null;
    if (geom.isEmpty()) {
        return true;
    }
    if (geom instanceof LineString) {
        return this.isSimpleLinearGeometry(geom);
    }
    if (geom instanceof MultiLineString) {
        return this.isSimpleLinearGeometry(geom);
    }
    if (geom instanceof MultiPoint) {
        return this.isSimpleMultiPoint((MultiPoint) geom);
    }
    if (geom instanceof Polygonal) {
        return this.isSimplePolygonal(geom);
    }
    if (geom instanceof GeometryCollection) {
        return this.isSimpleGeometryCollection(geom);
    }
    // all other geometry types are simple by definition
    return true;
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:24,代码来源:IsSimpleOp.java


示例2: reduce

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
public Geometry reduce(Geometry geom) {
    Geometry reducePW = this.reducePointwise(geom);
    if (this.isPointwise) {
        return reducePW;
    }

    //TODO: handle GeometryCollections containing polys
    if (!(reducePW instanceof Polygonal)) {
        return reducePW;
    }

    // Geometry is polygonal - test if topology needs to be fixed
    if (reducePW.isValid()) {
        return reducePW;
    }

    // hack to fix topology.
    // TODO: implement snap-rounding and use that.
    return this.fixPolygonalTopology(reducePW);
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:21,代码来源:GeometryPrecisionReducer.java


示例3: create

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
/**
 * Creates a new {@link PreparedGeometry} appropriate for the argument {@link Geometry}.
 *
 * @param geom the geometry to prepare
 * @return the prepared geometry
 */
public PreparedGeometry create(Geometry geom) {
    if (geom instanceof Polygonal) {
        return new PreparedPolygon((Polygonal) geom);
    }
    if (geom instanceof Lineal) {
        return new PreparedLineString((Lineal) geom);
    }
    if (geom instanceof Puntal) {
        return new PreparedPoint((Puntal) geom);
    }

    /**
     * Default representation.
     */
    return new BasicPreparedGeometry(geom);
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:23,代码来源:PreparedGeometryFactory.java


示例4: isProperIntersectionImpliesNotContainedSituation

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
private boolean isProperIntersectionImpliesNotContainedSituation(Geometry testGeom) {
    /**
     * If the test geometry is polygonal we have the A/A situation.
     * In this case, a proper intersection indicates that
     * the Epsilon-Neighbourhood Exterior Intersection condition exists.
     * This condition means that in some small
     * area around the intersection point, there must exist a situation
     * where the interior of the test intersects the exterior of the target.
     * This implies the test is NOT contained in the target.
     */
    if (testGeom instanceof Polygonal) {
        return true;
    }
    /**
     * A single shell with no holes allows concluding that
     * a proper intersection implies not contained
     * (due to the Epsilon-Neighbourhood Exterior Intersection condition)
     */
    return isSingleShell(prepPoly.getGeometry());
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:21,代码来源:AbstractPreparedPolygonContains.java


示例5: findCenterPoint

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
private LatLon findCenterPoint()
{
	try
	{
		Geometry geom = JTSConst.toGeometry(this);
		if(!geom.isValid()) return null;

		if(geom instanceof Polygonal)
		{
			return JTSConst.toLatLon(geom.getInteriorPoint());
		}
		else if(geom instanceof Lineal)
		{
			LengthIndexedLine lil = new LengthIndexedLine(geom);
			return JTSConst.toLatLon(lil.extractPoint(geom.getLength() / 2.0));
		}
	}
	catch (Exception e)
	{
		// unable to create proper geometry...
		return null;
	}
	return null;
}
 
开发者ID:westnordost,项目名称:StreetComplete,代码行数:25,代码来源:ElementGeometry.java


示例6: reduce

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
public Geometry reduce(Geometry geom) {
    Geometry reducePW = reducePointwise(geom);
    if (isPointwise)
        return reducePW;

    //TODO: handle GeometryCollections containing polys
    if (!(reducePW instanceof Polygonal))
        return reducePW;

    // Geometry is polygonal - test if topology needs to be fixed
    if (reducePW.isValid()) return reducePW;

    // hack to fix topology.
    // TODO: implement snap-rounding and use that.
    return fixPolygonalTopology(reducePW);
}
 
开发者ID:Semantive,项目名称:jts,代码行数:17,代码来源:GeometryPrecisionReducer.java


示例7: isProperIntersectionImpliesNotContainedSituation

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
private boolean isProperIntersectionImpliesNotContainedSituation(Geometry testGeom) {
    /**
     * If the test geometry is polygonal we have the A/A situation.
     * In this case, a proper intersection indicates that
     * the Epsilon-Neighbourhood Exterior Intersection condition exists.
     * This condition means that in some small
     * area around the intersection point, there must exist a situation
     * where the interior of the test intersects the exterior of the target.
     * This implies the test is NOT contained in the target.
     */
    if (testGeom instanceof Polygonal) return true;
    /**
     * A single shell with no holes allows concluding that
     * a proper intersection implies not contained
     * (due to the Epsilon-Neighbourhood Exterior Intersection condition)
     */
    if (isSingleShell(prepPoly.getGeometry())) return true;
    return false;
}
 
开发者ID:Semantive,项目名称:jts,代码行数:20,代码来源:AbstractPreparedPolygonContains.java


示例8: jtsToSchemaPolygon

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
/**
 * Converts a JTS polygonal geometry to an EAD polygon. EAD polygons are
 * converted to GDX polygons before use, and therefore share limitations.
 * 
 * @param g
 *            geometry to convert (must be a closed polygon)
 * @return a schema polygon
 */
public static es.eucm.ead.schema.data.shape.Polygon jtsToSchemaPolygon(
		Geometry g) {
	if (!(g instanceof Polygonal)) {
		throw new IllegalArgumentException(
				"Can only convert JTS Polygons, but supplied a " + g);
	}

	Coordinate[] cs = g.getCoordinates();
	Array<Float> resultVertices = new Array<Float>(cs.length);
	for (Coordinate c : cs) {
		resultVertices.add((float) c.x);
		resultVertices.add((float) c.y);
	}
	// remove the last point, as it is the same as the first
	resultVertices.removeIndex(resultVertices.size - 1);
	resultVertices.removeIndex(resultVertices.size - 1);

	es.eucm.ead.schema.data.shape.Polygon result = new es.eucm.ead.schema.data.shape.Polygon();
	result.setPoints(resultVertices);
	return result;
}
 
开发者ID:e-ucm,项目名称:ead,代码行数:30,代码来源:GeometryUtils.java


示例9: load

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
public static LinkedList<PreparedPolygon> load() throws IOException {

		URL krajeShp = Kraje.class
				.getResource("kraje/hranice_krajov_simpl.shp");
		FileDataStore store = FileDataStoreFinder.getDataStore(krajeShp);
		FeatureSource<SimpleFeatureType, SimpleFeature> featureSource = store
				.getFeatureSource();
		FeatureCollection<SimpleFeatureType, SimpleFeature> fC = featureSource
				.getFeatures();

		FeatureIterator<SimpleFeature> iter = fC.features();

		LinkedList<PreparedPolygon> list = new LinkedList<PreparedPolygon>();

		try {
			while (iter.hasNext()) {
				Feature f = iter.next();
				GeometryAttribute geomAttr = f.getDefaultGeometryProperty();
				list.add(new PreparedPolygon((Polygonal) geomAttr.getValue()));
			}
		} finally {
			iter.close();
		}

		return list;
	}
 
开发者ID:MilanNobonn,项目名称:freemapKaPor,代码行数:27,代码来源:Kraje.java


示例10: snapToSelf

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
/**
 * Snaps the vertices in the component {@link LineString}s
 * of the source geometry
 * to the vertices of the given snap geometry.
 *
 * @param snapTolerance the snapping tolerance
 * @param cleanResult whether the result should be made valid
 * @return a new snapped Geometry
 */
public Geometry snapToSelf(double snapTolerance, boolean cleanResult) {
    Coordinate[] snapPts = this.extractTargetCoordinates(this.srcGeom);

    SnapTransformer snapTrans = new SnapTransformer(snapTolerance, snapPts, true);
    Geometry snappedGeom = snapTrans.transform(this.srcGeom);
    Geometry result = snappedGeom;
    if (cleanResult && result instanceof Polygonal) {
        // TODO: use better cleaning approach
        result = snappedGeom.buffer(0);
    }
    return result;
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:22,代码来源:GeometrySnapper.java


示例11: IndexedPointInAreaLocator

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
/**
 * Creates a new locator for a given {@link Geometry}
 *
 * @param g the Geometry to locate in
 */
public IndexedPointInAreaLocator(Geometry g) {
    if (!(g instanceof Polygonal)) {
        throw new IllegalArgumentException("Argument must be Polygonal");
    }
    this.buildIndex(g);
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:12,代码来源:IndexedPointInAreaLocator.java


示例12: locate

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
/**
 * Determines the {@link Location} of the given {@link Coordinate}
 * in this geometry.
 *
 * @param p the point to test
 * @return the location of the point in the geometry
 */
public int locate(Coordinate pt) {
    if (this.parentGeom instanceof Polygonal && this.parentGeom.getNumGeometries() > 50) {
        // lazily init point locator
        if (this.areaPtLocator == null) {
            this.areaPtLocator = new IndexedPointInAreaLocator(this.parentGeom);
        }
        return this.areaPtLocator.locate(pt);
    }
    return this.ptLocator.locate(pt, this.parentGeom);
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:18,代码来源:GeometryGraph.java


示例13: containsProperly

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
/**
 * Tests whether this PreparedPolygon containsProperly a given geometry.
 *
 * @param geom the test geometry
 * @return true if the test geometry is contained properly
 */
public boolean containsProperly(Geometry geom) {
    /**
     * Do point-in-poly tests first, since they are cheaper and may result
     * in a quick negative result.
     *
     * If a point of any test components does not lie in the target interior, result is false
     */
    boolean isAllInPrepGeomAreaInterior = this.isAllTestComponentsInTargetInterior(geom);
    if (!isAllInPrepGeomAreaInterior) {
        return false;
    }

    /**
     * If any segments intersect, result is false.
     */
    List lineSegStr = SegmentStringUtil.extractSegmentStrings(geom);
    boolean segsIntersect = this.prepPoly.getIntersectionFinder().intersects(lineSegStr);
    if (segsIntersect) {
        return false;
    }

    /**
     * Given that no segments intersect, if any vertex of the target
     * is contained in some test component.
     * the test is NOT properly contained.
     */
    if (geom instanceof Polygonal) {
        // TODO: generalize this to handle GeometryCollections
        boolean isTargetGeomInTestArea = this.isAnyTargetComponentInAreaTest(geom, this.prepPoly.getRepresentativePoints());
        if (isTargetGeomInTestArea) {
            return false;
        }
    }

    return true;
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:43,代码来源:PreparedPolygonContainsProperly.java


示例14: setExtent

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
/**
 * Sets a polygonal mask.
 *
 * @param mask
 * @throws IllegalArgumentException if the mask is not polygonal
 */
public void setExtent(Geometry mask) {
    if (!(mask instanceof Polygonal)) {
        throw new IllegalArgumentException("Only polygonal extents are supported");
    }
    this.maskPoly = mask;
    this.setExtent(mask.getEnvelopeInternal());
    this.extentLocator = new IndexedPointInAreaLocator(mask);
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:15,代码来源:RandomPointsBuilder.java


示例15: create

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
/**
 * Creates a new {@link PreparedGeometry} appropriate for the argument {@link Geometry}.
 *
 * @param geom the geometry to prepare
 * @return the prepared geometry
 */
public PreparedGeometry create(Geometry geom) {
    if (geom instanceof Polygonal)
        return new PreparedPolygon((Polygonal) geom);
    if (geom instanceof Lineal)
        return new PreparedLineString((Lineal) geom);
    if (geom instanceof Puntal)
        return new PreparedPoint((Puntal) geom);

    /**
     * Default representation.
     */
    return new BasicPreparedGeometry(geom);
}
 
开发者ID:Semantive,项目名称:jts,代码行数:20,代码来源:PreparedGeometryFactory.java


示例16: containsProperly

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
/**
 * Tests whether this PreparedPolygon containsProperly a given geometry.
 *
 * @param geom the test geometry
 * @return true if the test geometry is contained properly
 */
public boolean containsProperly(Geometry geom) {
    /**
     * Do point-in-poly tests first, since they are cheaper and may result
     * in a quick negative result.
     *
     * If a point of any test components does not lie in the target interior, result is false
     */
    boolean isAllInPrepGeomAreaInterior = isAllTestComponentsInTargetInterior(geom);
    if (!isAllInPrepGeomAreaInterior) return false;

    /**
     * If any segments intersect, result is false.
     */
    List lineSegStr = SegmentStringUtil.extractSegmentStrings(geom);
    boolean segsIntersect = prepPoly.getIntersectionFinder().intersects(lineSegStr);
    if (segsIntersect)
        return false;

    /**
     * Given that no segments intersect, if any vertex of the target
     * is contained in some test component.
     * the test is NOT properly contained.
     */
    if (geom instanceof Polygonal) {
        // TODO: generalize this to handle GeometryCollections
        boolean isTargetGeomInTestArea = isAnyTargetComponentInAreaTest(geom, prepPoly.getRepresentativePoints());
        if (isTargetGeomInTestArea) return false;
    }

    return true;
}
 
开发者ID:Semantive,项目名称:jts,代码行数:38,代码来源:PreparedPolygonContainsProperly.java


示例17: getRank

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
static Rank getRank(Geometry geometry) {
    if (geometry instanceof Puntal) {
        return Rank.POINT;
    } else if (geometry instanceof Lineal) {
        return Rank.LINE;
    } else if (geometry instanceof Polygonal) {
        return Rank.AREA;
    } else {
        return Rank.NOT_SPECIFIED;
    }
}
 
开发者ID:senbox-org,项目名称:snap-desktop,代码行数:12,代码来源:SimpleFeatureShapeFigure.java


示例18: PredicateEvaluatorPrepared

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
public PredicateEvaluatorPrepared(Geometry geometry) {
    this.factory = new GeometryFactory();
    this.preparedPolygon = new PreparedPolygon((Polygonal) geometry);
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:5,代码来源:PredicateEvaluatorPrepared.java


示例19: PreparedPolygon

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
public PreparedPolygon(Polygonal poly) {
    super((Geometry) poly);
    this.isRectangle = this.getGeometry().isRectangle();
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:5,代码来源:PreparedPolygon.java


示例20: PreparedPolygon

import com.vividsolutions.jts.geom.Polygonal; //导入依赖的package包/类
public PreparedPolygon(Polygonal poly) {
    super((Geometry) poly);
    isRectangle = getGeometry().isRectangle();
}
 
开发者ID:Semantive,项目名称:jts,代码行数:5,代码来源:PreparedPolygon.java



注:本文中的com.vividsolutions.jts.geom.Polygonal类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java GetContainerStatusesRequest类代码示例发布时间:2022-05-22
下一篇:
Java VcsDataKeys类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap