Class ST_Graph

java.lang.Object
org.h2gis.api.AbstractFunction
org.h2gis.functions.spatial.topology.ST_Graph
All Implemented Interfaces:
org.h2gis.api.Function, org.h2gis.api.ScalarFunction

public class ST_Graph extends org.h2gis.api.AbstractFunction implements org.h2gis.api.ScalarFunction
Assigns integer node and edge ids to LINESTRING or MULTILINESTRING geometries from a table named input, resulting in two new tables: input_nodes and input_edges.
Author:
Adam Gouge, Erwan Bocher
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
    static String
     
    static final String
     
    static final String
     
    static String
     
    static final String
     
    static final String
     

    Fields inherited from interface org.h2gis.api.Function

    PROP_NAME, PROP_REMARKS

    Fields inherited from interface org.h2gis.api.ScalarFunction

    PROP_DETERMINISTIC
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    createGraph(Connection connection, String tableName)
    Create the nodes and edges tables from the input table containing LINESTRINGs.
    static boolean
    createGraph(Connection connection, String tableName, String spatialFieldName)
    Create the nodes and edges tables from the input table containing LINESTRINGs in the given column.
    static boolean
    createGraph(Connection connection, String tableName, String spatialFieldName, double tolerance)
    Create the nodes and edges tables from the input table containing LINESTRINGs in the given column and using the given tolerance.
    static boolean
    createGraph(Connection connection, String inputTable, String spatialFieldName, double tolerance, boolean orientBySlope)
    Create the nodes and edges tables from the input table containing LINESTRINGs in the given column and using the given tolerance, and potentially orienting edges by slope.
    static boolean
    createGraph(Connection connection, String inputTable, String spatialFieldName, double tolerance, boolean orientBySlope, boolean deleteTables)
    Create the nodes and edges tables from the input table containing LINESTRINGs in the given column and using the given tolerance, and potentially orienting edges by slope.
     

    Methods inherited from class org.h2gis.api.AbstractFunction

    addProperty, getProperty, removeProperty

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.h2gis.api.Function

    getProperty
  • Field Details

  • Constructor Details

    • ST_Graph

      public ST_Graph()
      Constructor
  • Method Details

    • getJavaStaticMethod

      public String getJavaStaticMethod()
      Specified by:
      getJavaStaticMethod in interface org.h2gis.api.ScalarFunction
    • createGraph

      public static boolean createGraph(Connection connection, String tableName) throws SQLException
      Create the nodes and edges tables from the input table containing LINESTRINGs. Since no column is specified in this signature, we take the first geometry column we find. If the input table has name 'input', then the output tables are named 'input_nodes' and 'input_edges'.
      Parameters:
      connection - Connection
      tableName - Input table containing LINESTRINGs
      Returns:
      true if both output tables were created
      Throws:
      SQLException
    • createGraph

      public static boolean createGraph(Connection connection, String tableName, String spatialFieldName) throws SQLException
      Create the nodes and edges tables from the input table containing LINESTRINGs in the given column. If the input table has name 'input', then the output tables are named 'input_nodes' and 'input_edges'.
      Parameters:
      connection - Connection
      tableName - Input table
      spatialFieldName - Name of column containing LINESTRINGs
      Returns:
      true if both output tables were created
      Throws:
      SQLException
    • createGraph

      public static boolean createGraph(Connection connection, String tableName, String spatialFieldName, double tolerance) throws SQLException
      Create the nodes and edges tables from the input table containing LINESTRINGs in the given column and using the given tolerance. The tolerance value is used specify the side length of a square Envelope around each node used to snap together other nodes within the same Envelope. Note, however, that edge geometries are left untouched. Note also that coordinates within a given tolerance of each other are not necessarily snapped together. Only the first and last coordinates of a geometry are considered to be potential nodes, and only nodes within a given tolerance of each other are snapped together. The tolerance works only in metric units. If the input table has name 'input', then the output tables are named 'input_nodes' and 'input_edges'.
      Parameters:
      connection - Connection
      tableName - Input table
      spatialFieldName - Name of column containing LINESTRINGs
      tolerance - Tolerance
      Returns:
      true if both output tables were created
      Throws:
      SQLException
    • createGraph

      public static boolean createGraph(Connection connection, String inputTable, String spatialFieldName, double tolerance, boolean orientBySlope) throws SQLException
      Create the nodes and edges tables from the input table containing LINESTRINGs in the given column and using the given tolerance, and potentially orienting edges by slope. The tolerance value is used specify the side length of a square Envelope around each node used to snap together other nodes within the same Envelope. Note, however, that edge geometries are left untouched. Note also that coordinates within a given tolerance of each other are not necessarily snapped together. Only the first and last coordinates of a geometry are considered to be potential nodes, and only nodes within a given tolerance of each other are snapped together. The tolerance works only in metric units. The boolean orientBySlope is set to true if edges should be oriented by the z-value of their first and last coordinates (decreasing). If the input table has name 'input', then the output tables are named 'input_nodes' and 'input_edges'.
      Parameters:
      connection - Connection
      inputTable - Input table
      spatialFieldName - Name of column containing LINESTRINGs
      tolerance - Tolerance
      orientBySlope - True if edges should be oriented by the z-value of their first and last coordinates (decreasing)
      Returns:
      true if both output tables were created
      Throws:
      SQLException
    • createGraph

      public static boolean createGraph(Connection connection, String inputTable, String spatialFieldName, double tolerance, boolean orientBySlope, boolean deleteTables) throws SQLException
      Create the nodes and edges tables from the input table containing LINESTRINGs in the given column and using the given tolerance, and potentially orienting edges by slope. The tolerance value is used specify the side length of a square Envelope around each node used to snap together other nodes within the same Envelope. Note, however, that edge geometries are left untouched. Note also that coordinates within a given tolerance of each other are not necessarily snapped together. Only the first and last coordinates of a geometry are considered to be potential nodes, and only nodes within a given tolerance of each other are snapped together. The tolerance works only in metric units. The boolean orientBySlope is set to true if edges should be oriented by the z-value of their first and last coordinates (decreasing). If the input table has name 'input', then the output tables are named 'input_nodes' and 'input_edges'.
      Parameters:
      connection - Connection
      inputTable - Input table
      spatialFieldName - Name of column containing LINESTRINGs
      tolerance - Tolerance
      orientBySlope - True if edges should be oriented by the z-value of their first and last coordinates (decreasing)
      deleteTables - True delete the existing tables
      Returns:
      true if both output tables were created
      Throws:
      SQLException