当前位置: 首页>>代码示例>>Java>>正文


Java IntersectionMatrix.isIntersects方法代码示例

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


在下文中一共展示了IntersectionMatrix.isIntersects方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: readPbfQuadtree

import com.vividsolutions.jts.geom.IntersectionMatrix; //导入方法依赖的package包/类
private void readPbfQuadtree(PbfQuadtree pbfQuadtree, CSVFileWriter qtWriter) throws IOException {		
		
		/** Build geometry of this quadrant */
		Coordinate[] coordinatesQuadrant = new Coordinate[5];
		coordinatesQuadrant[0] = new Coordinate(pbfQuadtree.getSplitx()-pbfQuadtree.getDimensionx(),pbfQuadtree.getSplity()-pbfQuadtree.getDimensiony());
		coordinatesQuadrant[1] = new Coordinate(pbfQuadtree.getSplitx()+pbfQuadtree.getDimensionx(),pbfQuadtree.getSplity()-pbfQuadtree.getDimensiony());
		coordinatesQuadrant[2] = new Coordinate(pbfQuadtree.getSplitx()+pbfQuadtree.getDimensionx(),pbfQuadtree.getSplity()+pbfQuadtree.getDimensiony());
		coordinatesQuadrant[3] = new Coordinate(pbfQuadtree.getSplitx()-pbfQuadtree.getDimensionx(),pbfQuadtree.getSplity()+pbfQuadtree.getDimensiony());
		coordinatesQuadrant[4] = coordinatesQuadrant[0];
		
		Polygon quadrant = geometryFactory.createPolygon(geometryFactory.createLinearRing(coordinatesQuadrant), null);
		quadrant.setSRID(4326);
//		Polygon quadrant = GeoHelper.createPolygon(coordinatesQuadrant, 4326);
		
		/** Read this quadtree if it intersects with test region and if it has >0 features */
		IntersectionMatrix intersectionMatrix = quadrant.relate(quadrant); /** default */
		if (settings.getCurrentPolygon() != null) {
			intersectionMatrix = settings.getCurrentPolygon().getPolygon().relate(quadrant); /** quadrant specific */
		}
		if (intersectionMatrix.isIntersects() && pbfQuadtree.getFeatureCount() > 0) {
			super.setPbfDataFolder(new File(settings.getPbfDataFolder() + "/Quadtree/" + pbfQuadtree.getPath()));
			
			if (intersectionMatrix.isWithin()) {
				super.setLocalizeType(LocalizeType.WITHIN);
			} else if (intersectionMatrix.isOverlaps(2, 2)) {
				super.setLocalizeType(LocalizeType.OVERLAPS);
			}
			
			/** Read or load features */
			if (pbfQuadtree.getLevel() <= settings.getKeepInCacheLevel()) {
				if (settings.getCache().containsKey(pbfQuadtree.getPath())) {
					/** Load features from cache */
					for (IVgiFeature feature : settings.getCache().get(pbfQuadtree.getPath())) {
			    		feature.setLocalizeType(localizeType);
			    		super.enqueueFeature(feature);
					}
				} else {
					super.cacheIdentifier = pbfQuadtree.getPath();
					super.readPbfFiles(true);
				}
			} else {
				super.readPbfFiles(false);
			}
			
			qtWriter.writeLine(quadrant.toText() + ";" + pbfQuadtree.getPath() + ";" + pbfQuadtree.getLevel() + ";" + pbfQuadtree.getFeatureCount() + ";" + intersectionMatrix.isOverlaps(2, 2) + ";");
		}
		
		if (pbfQuadtree.hasNw()) {
			readPbfQuadtree(pbfQuadtree.getNw(), qtWriter);
			readPbfQuadtree(pbfQuadtree.getNe(), qtWriter);
			readPbfQuadtree(pbfQuadtree.getSe(), qtWriter);
			readPbfQuadtree(pbfQuadtree.getSw(), qtWriter);
		}
    }
 
开发者ID:SGroe,项目名称:vgi-analytics-framework,代码行数:55,代码来源:VgiOperationPbfReaderQuadtreeImpl.java


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