diff --git a/src/main/java/it/unibz/inf/isochrone/network/Node.java b/src/main/java/it/unibz/inf/isochrone/network/Node.java index 87c2c3ad013c2445ec62d1998dc9496bc8b0ae17..2b1c7a706a78e351791e9860d003e5737d72a102 100644 --- a/src/main/java/it/unibz/inf/isochrone/network/Node.java +++ b/src/main/java/it/unibz/inf/isochrone/network/Node.java @@ -19,8 +19,7 @@ public class Node implements Comparable<Node> { private List<Link> adjLinks = null; private Hashtable<Integer, Schedule> routes; private int cheapestReachedRouteId = Integer.MIN_VALUE; - // For MrneX - private Point coordinates = null; + private Point coordinates = null; // for MrneX private double radius = Double.NEGATIVE_INFINITY; // Constructors diff --git a/src/main/java/it/unibz/inf/isoga/db/DatabaseWeb.java b/src/main/java/it/unibz/inf/isoga/db/DatabaseWeb.java index 426e2431a5ce492827f4d4947af15872d01cfe6e..2512fd4436de34cecdd724e3b13d7523ea4604ed 100644 --- a/src/main/java/it/unibz/inf/isoga/db/DatabaseWeb.java +++ b/src/main/java/it/unibz/inf/isoga/db/DatabaseWeb.java @@ -48,17 +48,19 @@ public class DatabaseWeb extends Database<ConfigClient> { private final String queryInsertVertex; private final String queryInsertVertexAnnotation; private final String queryUpdateVertices; + private final TableEntry vertexTableEntry; // Constructor public DatabaseWeb(final ConfigClient config, final Mode mode, final Direction direction) { super(config, mode, direction); + vertexTableEntry = config.getVertexTableEntry(); final String configEdges = config.getTableEdges(); final String configRoutes = config.getTableRoutes(); final String configVertex = config.getTableVertex(); final String edgeTableName = config.getEdgeTableEntry().getTableName(); - final String vertexTableName = config.getVertexTableEntry().getTableName(); + final String vertexTableName = vertexTableEntry.getTableName(); final String vertexAnnotationTableName = config.getVertexAnnotatedTableEntry().getTableName(); queryGetIsoEdges = "SELECT E.\"ID\", E.\"SOURCE\", V.\"DISTANCE\" DISTANCE, E.\"TARGET\", E.\"OFFSET\", E.\"LENGTH\", E.\"GEOMETRY\" FROM " @@ -415,6 +417,7 @@ public class DatabaseWeb extends Database<ConfigClient> { } connection.commit(); + DbUtility.createSpatialIndex(connection, vertexTableEntry); } catch (final SQLException e) { e.printStackTrace(); } finally { diff --git a/src/main/java/it/unibz/inf/isoga/network/BBoxOutput.java b/src/main/java/it/unibz/inf/isoga/network/BBoxOutput.java index 699913cf8e292e1d3896e70cad40588a420a76a0..adb025f2a00f4a8af9c376405562cae77f1785e7 100644 --- a/src/main/java/it/unibz/inf/isoga/network/BBoxOutput.java +++ b/src/main/java/it/unibz/inf/isoga/network/BBoxOutput.java @@ -7,8 +7,6 @@ import it.unibz.inf.isochrone.network.MemoryOutput; import it.unibz.inf.isochrone.network.Node; import it.unibz.inf.isochrone.util.EnumContainer.Direction; import it.unibz.inf.isoga.db.DatabaseWeb; -import it.unibz.inf.isoga.db.DbUtility; -import it.unibz.inf.isoga.db.TableEntry; import it.unibz.inf.isoga.geometry.BBox; import java.sql.Connection; @@ -23,24 +21,21 @@ import org.apache.commons.dbutils.DbUtils; */ public class BBoxOutput extends MemoryOutput { private BBox boundingBox; - private boolean isSaved; + private boolean isSavedInDatabase; private final String query; private final int serverSRID; - private final TableEntry edgeTableEntry; - private final TableEntry vertexTableEntry; // Constructors public BBoxOutput(final ConfigDataset config) { super(); - isSaved = false; - edgeTableEntry = config.getEdgeTableEntry(); - vertexTableEntry = config.getVertexTableEntry(); + final String cfgEdgeTable = config.getEdgeTableEntry().getTableName(); serverSRID = config.getServerSRID(); + isSavedInDatabase = false; query = "SELECT ST_XMin(mbr.geo) min_x, ST_yMin(mbr.geo) min_y, ST_XMax(mbr.geo) max_x, ST_yMax(mbr.geo) max_y FROM " - + "(SELECT st_transform(ST_SetSRID(st_extent(\"GEOMETRY\"),?),?) GEO FROM " + edgeTableEntry.getTableName() + ") MBR"; + + "(SELECT st_transform(ST_SetSRID(st_extent(\"GEOMETRY\"),?),?) GEO FROM " + cfgEdgeTable + ") MBR"; } // Public methods @@ -48,7 +43,7 @@ public class BBoxOutput extends MemoryOutput { @Override public void addLink(final Link link) { boundingBox = null; - isSaved = false; + isSavedInDatabase = false; super.addLink(link); } @@ -56,13 +51,13 @@ public class BBoxOutput extends MemoryOutput { @Override public void addNode(final Node node) { boundingBox = null; - isSaved = false; + isSavedInDatabase = false; super.addNode(node); } public BBox getBoundingBox() { - if (!isSaved) { + if (!isSavedInDatabase) { throw new IllegalStateException("Can not calculate bounding box, since results have not been saved to database"); } if (boundingBox == null) { @@ -102,9 +97,8 @@ public class BBoxOutput extends MemoryOutput { public void saveInDatabase(final DatabaseWeb db, final Direction direction) { db.storeLinks(getLinks().values(), direction); db.storeVertices(getNodes()); - DbUtility.createSpatialIndex(db.getConnection(), vertexTableEntry); db.updateVertexTable(); - isSaved = true; + isSavedInDatabase = true; } }