Skip to content

Commit

Permalink
Merge pull request #17 from teceP/master
Browse files Browse the repository at this point in the history
transformation to mercator-epsg fix
  • Loading branch information
thsc42 authored May 10, 2020
2 parents e51ce1e + daa9b8e commit a09ae9c
Show file tree
Hide file tree
Showing 2 changed files with 118 additions and 30 deletions.
14 changes: 14 additions & 0 deletions OSMImportUpdate-forked.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="lib" level="project" />
<orderEntry type="library" name="postgresql-42.1.1" level="project" />
</component>
</module>
134 changes: 104 additions & 30 deletions src/ohdm2geoserverrendering/OHDM2Geoserverrendering.java
Original file line number Diff line number Diff line change
Expand Up @@ -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];
Expand All @@ -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();

Expand All @@ -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..");
Expand All @@ -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);
Expand Down Expand Up @@ -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.");
Expand Down Expand Up @@ -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<String> 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.");
}
}

0 comments on commit a09ae9c

Please sign in to comment.