@@ -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