diff --git a/OSMImportUpdate-forked.iml b/OSMImportUpdate-forked.iml new file mode 100644 index 0000000..a76d243 --- /dev/null +++ b/OSMImportUpdate-forked.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ohdm2geoserverrendering/OHDM2Geoserverrendering.java b/src/ohdm2geoserverrendering/OHDM2Geoserverrendering.java index 9085dbd..5c87cbe 100644 --- a/src/ohdm2geoserverrendering/OHDM2Geoserverrendering.java +++ b/src/ohdm2geoserverrendering/OHDM2Geoserverrendering.java @@ -31,10 +31,28 @@ public class OHDM2Geoserverrendering { String waterarea_sql = ""; String waterways_sql = ""; + //EPSG Codes + final static String PSEUDO_MERCATOR_EPSG = "3857"; + final static String WGS_EPSG = "4326"; + + //Table names + final static String MY_ADMIN_LABELS = "my_admin_labels"; + final static String MY_AMENITIES = "my_amenities"; + final static String MY_BOUNDARIES = "my_boundaries"; + final static String MY_BUILDINGS = "my_buildings"; + final static String MY_LANDUSAGES = "my_landusages"; + final static String MY_HOUSENUMBERS = "my_housenumbers"; + final static String MY_PLACES = "my_places"; + final static String MY_ROADS = "my_roads"; + final static String MY_TRANSPORT_AREAS = "my_transport_areas"; + final static String MY_TRANSPORT_POINTS = "my_transport_points"; + final static String MY_WATERAREA = "my_waterarea"; + final static String MY_WATERWAYS = "my_waterways"; + public static void main(String[] args) throws SQLException, IOException { String sourceParameterFileName = "db_ohdm.txt"; String targetParameterFileName = "db_rendering.txt"; - + if(args.length > 0) { sourceParameterFileName = args[0]; @@ -43,7 +61,7 @@ public static void main(String[] args) throws SQLException, IOException { if(args.length > 1) { targetParameterFileName = args[1]; } - + // Connection sourceConnection = Importer.createLocalTestSourceConnection(); // Connection targetConnection = Importer.createLocalTestTargetConnection(); @@ -53,18 +71,17 @@ public static void main(String[] args) throws SQLException, IOException { Connection connection = DB.createConnection(targetParameter); String targetSchema = targetParameter.getSchema(); - + String sourceSchema = sourceParameter.getSchema(); - + SQLStatementQueue sql = new SQLStatementQueue(connection); OHDM2Geoserverrendering renderer = new OHDM2Geoserverrendering(); renderer.loadSQLFiles(); renderer.changeDefaultParametersToActual(targetSchema, sourceSchema); - renderer.executeSQLStatements(sql); - + System.out.println("Render tables creation for Geoserver finished"); System.out.println("Start copying symbols into user-dir.."); @@ -79,23 +96,25 @@ public static void main(String[] args) throws SQLException, IOException { System.out.println("CSS and symbolfiles has been created successfully."); } + System.out.println("Start transforming epsg-system.."); + renderer.transformEpsg(sql, targetSchema, PSEUDO_MERCATOR_EPSG); } void loadSQLFiles(){ - System.out.println("Load SQL-Files..."); - - admin_labels_sql = loadSqlFromResources("resources/sqls/admin_labels.sql"); - amenities_sql = loadSqlFromResources("resources/sqls/amenities.sql"); - boundaries_sql = loadSqlFromResources("resources/sqls/boundaries.sql"); - buildings_sql = loadSqlFromResources("resources/sqls/buildings.sql"); - housenumbers_sql = loadSqlFromResources("resources/sqls/housenumbers.sql"); - landusages_sql = loadSqlFromResources("resources/sqls/landusages.sql"); - places_sql = loadSqlFromResources("resources/sqls/places.sql"); - roads_sql = loadSqlFromResources("resources/sqls/roads.sql"); - transport_areas_sql = loadSqlFromResources("resources/sqls/transport_areas.sql"); - transport_points_sql = loadSqlFromResources("resources/sqls/transport_points.sql"); - waterarea_sql = loadSqlFromResources("resources/sqls/waterarea.sql"); - waterways_sql = loadSqlFromResources("resources/sqls/waterways.sql"); + System.out.println("Load SQL-Files..."); + + admin_labels_sql = loadSqlFromResources("resources/sqls/admin_labels.sql"); + amenities_sql = loadSqlFromResources("resources/sqls/amenities.sql"); + boundaries_sql = loadSqlFromResources("resources/sqls/boundaries.sql"); + buildings_sql = loadSqlFromResources("resources/sqls/buildings.sql"); + housenumbers_sql = loadSqlFromResources("resources/sqls/housenumbers.sql"); + landusages_sql = loadSqlFromResources("resources/sqls/landusages.sql"); + places_sql = loadSqlFromResources("resources/sqls/places.sql"); + roads_sql = loadSqlFromResources("resources/sqls/roads.sql"); + transport_areas_sql = loadSqlFromResources("resources/sqls/transport_areas.sql"); + transport_points_sql = loadSqlFromResources("resources/sqls/transport_points.sql"); + waterarea_sql = loadSqlFromResources("resources/sqls/waterarea.sql"); + waterways_sql = loadSqlFromResources("resources/sqls/waterways.sql"); defaultSQLStatementList.add(admin_labels_sql); defaultSQLStatementList.add(amenities_sql); @@ -128,17 +147,17 @@ void executeSQLStatements(SQLStatementQueue sql){ float eachPercentage = 100/actualSQLStatementList.size(); float currentPercentage = 0; - for(String statement: actualSQLStatementList){ - sql.append(statement); - try { - sql.forceExecute(); - } catch (SQLException e) { - e.printStackTrace(); - } - sql.resetStatement(); - currentPercentage = currentPercentage + eachPercentage; - System.out.println(currentPercentage + " % finished."); + for(String statement: actualSQLStatementList){ + sql.append(statement); + try { + sql.forceExecute(); + } catch (SQLException e) { + e.printStackTrace(); } + sql.resetStatement(); + currentPercentage = currentPercentage + eachPercentage; + System.out.println(currentPercentage + " % finished."); + } System.out.println("100 % finished."); @@ -323,4 +342,59 @@ public boolean checkFiles(){ return symbolFiles && cssFiles; } + /** + * Transforms the geometrys to the given epsg-code format + * @param sql + * @param targetSchema + * @param epsgCode Target epsg code + */ + public void transformEpsg(SQLStatementQueue sql, String targetSchema, String epsgCode){ + System.out.println("Transforming EPSG System (4326 -> " + epsgCode + ") ..."); + + String fullName = ""; + String geometryName = ""; + + int errorCounter = 0; + + List tables = new ArrayList<>(); + tables.add(MY_HOUSENUMBERS); + tables.add(MY_ADMIN_LABELS); + tables.add(MY_BOUNDARIES); + tables.add(MY_BUILDINGS); + tables.add(MY_AMENITIES); + tables.add(MY_LANDUSAGES); + tables.add(MY_PLACES); + tables.add(MY_ROADS); + tables.add(MY_TRANSPORT_AREAS); + tables.add(MY_TRANSPORT_POINTS); + tables.add(MY_WATERAREA); + tables.add(MY_WATERWAYS); + + for(String table : tables){ + try { + + fullName = targetSchema + "." + table; + + System.out.println("Do transform: " + fullName); + + sql.append("UPDATE "); + sql.append(fullName); + sql.append(" SET "); + sql.append("geometry"); + sql.append(" = ST_TRANSFORM("); + sql.append("geometry"); + sql.append(", 3857);"); + + sql.forceExecute(); + sql.resetStatement(); + + } catch (SQLException e) { + System.err.println("Could not transform table '" + fullName + "' with geometrytype '" + geometryName + "'."); + System.err.println("= >Exception: " + e.getClass().getSimpleName()); + e.printStackTrace(); + errorCounter++; + } + } + System.out.println("Transforming finished with " + errorCounter + " errors."); + } }