本文整理汇总了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);
}
}