Skip to content

Commit a09ae9c

Browse files
authored
Merge pull request #17 from teceP/master
transformation to mercator-epsg fix
2 parents e51ce1e + daa9b8e commit a09ae9c

File tree

2 files changed

+118
-30
lines changed

2 files changed

+118
-30
lines changed

OSMImportUpdate-forked.iml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module type="JAVA_MODULE" version="4">
3+
<component name="NewModuleRootManager" inherit-compiler-output="true">
4+
<exclude-output />
5+
<content url="file://$MODULE_DIR$">
6+
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
7+
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
8+
</content>
9+
<orderEntry type="inheritedJdk" />
10+
<orderEntry type="sourceFolder" forTests="false" />
11+
<orderEntry type="library" name="lib" level="project" />
12+
<orderEntry type="library" name="postgresql-42.1.1" level="project" />
13+
</component>
14+
</module>

src/ohdm2geoserverrendering/OHDM2Geoserverrendering.java

Lines changed: 104 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,28 @@ public class OHDM2Geoserverrendering {
3131
String waterarea_sql = "";
3232
String waterways_sql = "";
3333

34+
//EPSG Codes
35+
final static String PSEUDO_MERCATOR_EPSG = "3857";
36+
final static String WGS_EPSG = "4326";
37+
38+
//Table names
39+
final static String MY_ADMIN_LABELS = "my_admin_labels";
40+
final static String MY_AMENITIES = "my_amenities";
41+
final static String MY_BOUNDARIES = "my_boundaries";
42+
final static String MY_BUILDINGS = "my_buildings";
43+
final static String MY_LANDUSAGES = "my_landusages";
44+
final static String MY_HOUSENUMBERS = "my_housenumbers";
45+
final static String MY_PLACES = "my_places";
46+
final static String MY_ROADS = "my_roads";
47+
final static String MY_TRANSPORT_AREAS = "my_transport_areas";
48+
final static String MY_TRANSPORT_POINTS = "my_transport_points";
49+
final static String MY_WATERAREA = "my_waterarea";
50+
final static String MY_WATERWAYS = "my_waterways";
51+
3452
public static void main(String[] args) throws SQLException, IOException {
3553
String sourceParameterFileName = "db_ohdm.txt";
3654
String targetParameterFileName = "db_rendering.txt";
37-
55+
3856

3957
if(args.length > 0) {
4058
sourceParameterFileName = args[0];
@@ -43,7 +61,7 @@ public static void main(String[] args) throws SQLException, IOException {
4361
if(args.length > 1) {
4462
targetParameterFileName = args[1];
4563
}
46-
64+
4765
// Connection sourceConnection = Importer.createLocalTestSourceConnection();
4866
// Connection targetConnection = Importer.createLocalTestTargetConnection();
4967

@@ -53,18 +71,17 @@ public static void main(String[] args) throws SQLException, IOException {
5371
Connection connection = DB.createConnection(targetParameter);
5472

5573
String targetSchema = targetParameter.getSchema();
56-
74+
5775
String sourceSchema = sourceParameter.getSchema();
58-
76+
5977
SQLStatementQueue sql = new SQLStatementQueue(connection);
6078
OHDM2Geoserverrendering renderer = new OHDM2Geoserverrendering();
6179

6280
renderer.loadSQLFiles();
6381
renderer.changeDefaultParametersToActual(targetSchema, sourceSchema);
6482

65-
6683
renderer.executeSQLStatements(sql);
67-
84+
6885
System.out.println("Render tables creation for Geoserver finished");
6986

7087
System.out.println("Start copying symbols into user-dir..");
@@ -79,23 +96,25 @@ public static void main(String[] args) throws SQLException, IOException {
7996
System.out.println("CSS and symbolfiles has been created successfully.");
8097
}
8198

99+
System.out.println("Start transforming epsg-system..");
100+
renderer.transformEpsg(sql, targetSchema, PSEUDO_MERCATOR_EPSG);
82101
}
83102

84103
void loadSQLFiles(){
85-
System.out.println("Load SQL-Files...");
86-
87-
admin_labels_sql = loadSqlFromResources("resources/sqls/admin_labels.sql");
88-
amenities_sql = loadSqlFromResources("resources/sqls/amenities.sql");
89-
boundaries_sql = loadSqlFromResources("resources/sqls/boundaries.sql");
90-
buildings_sql = loadSqlFromResources("resources/sqls/buildings.sql");
91-
housenumbers_sql = loadSqlFromResources("resources/sqls/housenumbers.sql");
92-
landusages_sql = loadSqlFromResources("resources/sqls/landusages.sql");
93-
places_sql = loadSqlFromResources("resources/sqls/places.sql");
94-
roads_sql = loadSqlFromResources("resources/sqls/roads.sql");
95-
transport_areas_sql = loadSqlFromResources("resources/sqls/transport_areas.sql");
96-
transport_points_sql = loadSqlFromResources("resources/sqls/transport_points.sql");
97-
waterarea_sql = loadSqlFromResources("resources/sqls/waterarea.sql");
98-
waterways_sql = loadSqlFromResources("resources/sqls/waterways.sql");
104+
System.out.println("Load SQL-Files...");
105+
106+
admin_labels_sql = loadSqlFromResources("resources/sqls/admin_labels.sql");
107+
amenities_sql = loadSqlFromResources("resources/sqls/amenities.sql");
108+
boundaries_sql = loadSqlFromResources("resources/sqls/boundaries.sql");
109+
buildings_sql = loadSqlFromResources("resources/sqls/buildings.sql");
110+
housenumbers_sql = loadSqlFromResources("resources/sqls/housenumbers.sql");
111+
landusages_sql = loadSqlFromResources("resources/sqls/landusages.sql");
112+
places_sql = loadSqlFromResources("resources/sqls/places.sql");
113+
roads_sql = loadSqlFromResources("resources/sqls/roads.sql");
114+
transport_areas_sql = loadSqlFromResources("resources/sqls/transport_areas.sql");
115+
transport_points_sql = loadSqlFromResources("resources/sqls/transport_points.sql");
116+
waterarea_sql = loadSqlFromResources("resources/sqls/waterarea.sql");
117+
waterways_sql = loadSqlFromResources("resources/sqls/waterways.sql");
99118

100119
defaultSQLStatementList.add(admin_labels_sql);
101120
defaultSQLStatementList.add(amenities_sql);
@@ -128,17 +147,17 @@ void executeSQLStatements(SQLStatementQueue sql){
128147
float eachPercentage = 100/actualSQLStatementList.size();
129148
float currentPercentage = 0;
130149

131-
for(String statement: actualSQLStatementList){
132-
sql.append(statement);
133-
try {
134-
sql.forceExecute();
135-
} catch (SQLException e) {
136-
e.printStackTrace();
137-
}
138-
sql.resetStatement();
139-
currentPercentage = currentPercentage + eachPercentage;
140-
System.out.println(currentPercentage + " % finished.");
150+
for(String statement: actualSQLStatementList){
151+
sql.append(statement);
152+
try {
153+
sql.forceExecute();
154+
} catch (SQLException e) {
155+
e.printStackTrace();
141156
}
157+
sql.resetStatement();
158+
currentPercentage = currentPercentage + eachPercentage;
159+
System.out.println(currentPercentage + " % finished.");
160+
}
142161

143162

144163
System.out.println("100 % finished.");
@@ -323,4 +342,59 @@ public boolean checkFiles(){
323342
return symbolFiles && cssFiles;
324343
}
325344

345+
/**
346+
* Transforms the geometrys to the given epsg-code format
347+
* @param sql
348+
* @param targetSchema
349+
* @param epsgCode Target epsg code
350+
*/
351+
public void transformEpsg(SQLStatementQueue sql, String targetSchema, String epsgCode){
352+
System.out.println("Transforming EPSG System (4326 -> " + epsgCode + ") ...");
353+
354+
String fullName = "";
355+
String geometryName = "";
356+
357+
int errorCounter = 0;
358+
359+
List<String> tables = new ArrayList<>();
360+
tables.add(MY_HOUSENUMBERS);
361+
tables.add(MY_ADMIN_LABELS);
362+
tables.add(MY_BOUNDARIES);
363+
tables.add(MY_BUILDINGS);
364+
tables.add(MY_AMENITIES);
365+
tables.add(MY_LANDUSAGES);
366+
tables.add(MY_PLACES);
367+
tables.add(MY_ROADS);
368+
tables.add(MY_TRANSPORT_AREAS);
369+
tables.add(MY_TRANSPORT_POINTS);
370+
tables.add(MY_WATERAREA);
371+
tables.add(MY_WATERWAYS);
372+
373+
for(String table : tables){
374+
try {
375+
376+
fullName = targetSchema + "." + table;
377+
378+
System.out.println("Do transform: " + fullName);
379+
380+
sql.append("UPDATE ");
381+
sql.append(fullName);
382+
sql.append(" SET ");
383+
sql.append("geometry");
384+
sql.append(" = ST_TRANSFORM(");
385+
sql.append("geometry");
386+
sql.append(", 3857);");
387+
388+
sql.forceExecute();
389+
sql.resetStatement();
390+
391+
} catch (SQLException e) {
392+
System.err.println("Could not transform table '" + fullName + "' with geometrytype '" + geometryName + "'.");
393+
System.err.println("= >Exception: " + e.getClass().getSimpleName());
394+
e.printStackTrace();
395+
errorCounter++;
396+
}
397+
}
398+
System.out.println("Transforming finished with " + errorCounter + " errors.");
399+
}
326400
}

0 commit comments

Comments
 (0)