Displaying differences for changeset
 
display as  

src/java/m/gis/PostgresqlDatabase.java

@@ -144,6 +144,19 @@
         }
     }
 
+    public void updateGeometrySRID(Layer lyr, int SRID) throws ServiceException {
+        try {
+            Statement stmt = conn.createStatement();
+            String sql = "SELECT UpdateGeometrySRID('" + 
+                lyr.schema + "', '" + lyr.table + "', 'the_geom', " + 
+                SRID + ")";
+            LOG.log(Level.INFO, sql);
+            stmt.execute(sql);
+        } catch (SQLException ex) {
+            throw new ServiceException(ex);
+        }
+    }
+
     @Override
     public int deleteTable(String tableName) throws ServiceException {
         try {
@@ -206,9 +219,12 @@
             LOG.log(Level.INFO, sql);
             stmt.executeUpdate(sql);
 
+            Layer res = new Layer(Constants.DEFAULT_SCHEMA, table, this); 
+            updateGeometrySRID(res, GeoJSONParser.getSRIDInt(Constants.DEFAULT_CRS));
+
             stmt.close();
-            return new Layer(Constants.DEFAULT_SCHEMA, table, this);
-        } catch (SQLException ex) {
+            return res;
+        } catch (SQLException|JSONException ex) {
             throw new csip.ServiceException(ex);
         }
     }
@@ -233,9 +249,12 @@
             LOG.log(Level.INFO, sql);
             stmt.executeUpdate(sql);
 
+            Layer res = new Layer(Constants.DEFAULT_SCHEMA, table, this); 
+            updateGeometrySRID(res, GeoJSONParser.getSRIDInt(Constants.DEFAULT_CRS));
+
             stmt.close();
-            return new Layer(Constants.DEFAULT_SCHEMA, table, this);
-        } catch (SQLException ex) {
+            return res;
+        } catch (SQLException|JSONException ex) {
             throw new csip.ServiceException(ex);
         }
     }
@@ -259,9 +278,12 @@
             LOG.log(Level.INFO, sql);
             stmt.executeUpdate(sql);
 
+            Layer res = new Layer(Constants.DEFAULT_SCHEMA, table, this); 
+            updateGeometrySRID(res, GeoJSONParser.getSRIDInt(Constants.DEFAULT_CRS));
+
             stmt.close();
-            return new Layer(Constants.DEFAULT_SCHEMA, table, this);
-        } catch (SQLException ex) {
+            return res;
+        } catch (SQLException|JSONException ex) {
             throw new csip.ServiceException(ex);
         }
     }
@@ -286,9 +308,12 @@
             LOG.log(Level.INFO, sql);
             stmt.executeUpdate(sql);
 
+            Layer res = new Layer(Constants.DEFAULT_SCHEMA, table, this); 
+            updateGeometrySRID(res, GeoJSONParser.getSRIDInt(Constants.DEFAULT_CRS));
+
             stmt.close();
-            return new Layer(Constants.DEFAULT_SCHEMA, table, this);
-        } catch (SQLException ex) {
+            return res;
+        } catch (SQLException|JSONException ex) {
             throw new csip.ServiceException(ex);
         }
     }
@@ -314,9 +339,12 @@
             LOG.log(Level.INFO, sql);
             stmt.executeUpdate(sql);
 
+            Layer res = new Layer(Constants.DEFAULT_SCHEMA, table, this); 
+            updateGeometrySRID(res, GeoJSONParser.getSRIDInt(Constants.DEFAULT_CRS));
+
             stmt.close();
-            return new Layer(Constants.DEFAULT_SCHEMA, table, this);
-        } catch (SQLException ex) {
+            return res;
+        } catch (SQLException|JSONException ex) {
             throw new csip.ServiceException(ex);
         }
     }
@@ -338,9 +366,12 @@
             LOG.log(Level.INFO, sql);
             stmt.executeUpdate(sql);
 
+            Layer res = new Layer(Constants.DEFAULT_SCHEMA, table, this); 
+            updateGeometrySRID(res, GeoJSONParser.getSRIDInt(Constants.DEFAULT_CRS));
+
             stmt.close();
-            return new Layer(Constants.DEFAULT_SCHEMA, table, this);
-        } catch (SQLException ex) {
+            return res;
+        } catch (SQLException|JSONException ex) {
             throw new csip.ServiceException(ex);
         }
     }
@@ -364,9 +395,12 @@
             LOG.log(Level.INFO, sql);
             stmt.executeUpdate(sql);
 
+            Layer res = new Layer(Constants.DEFAULT_SCHEMA, table, this); 
+            updateGeometrySRID(res, GeoJSONParser.getSRIDInt(Constants.DEFAULT_CRS));
+
             stmt.close();
-            return new Layer(Constants.DEFAULT_SCHEMA, table, this);
-        } catch (SQLException ex) {
+            return res;
+        } catch (SQLException|JSONException ex) {
             throw new csip.ServiceException(ex);
         }
     }
@@ -390,9 +424,12 @@
             LOG.log(Level.INFO, sql);
             stmt.executeUpdate(sql);
 
+            Layer res = new Layer(Constants.DEFAULT_SCHEMA, table, this); 
+            updateGeometrySRID(res, GeoJSONParser.getSRIDInt(Constants.DEFAULT_CRS));
+
             stmt.close();
-            return new Layer(Constants.DEFAULT_SCHEMA, table, this);
-        } catch (SQLException ex) {
+            return res;
+        } catch (SQLException|JSONException ex) {
             throw new csip.ServiceException(ex);
         }
     }
@@ -418,9 +455,12 @@
             LOG.log(Level.INFO, sql);
             stmt.executeUpdate(sql);
 
+            Layer res = new Layer(Constants.DEFAULT_SCHEMA, table, this); 
+            updateGeometrySRID(res, GeoJSONParser.getSRIDInt(Constants.DEFAULT_CRS));
+
             stmt.close();
-            return new Layer(Constants.DEFAULT_SCHEMA, table, this);
-        } catch (SQLException ex) {
+            return res;
+        } catch (SQLException|JSONException ex) {
             throw new csip.ServiceException(ex);
         }
     }

src/java/m/gis/area/V1_0.java

@@ -32,7 +32,7 @@
             ListIterator<Layer> iterator = layers.listIterator();
             while (iterator.hasNext()) {
                 Layer lyr = db.area(iterator.next());
-                result.put(db.toJSON(lyr));
+                result.put(db.toJSON(lyr, outputSRID));
             }
         }
         return EXEC_OK;

src/java/m/gis/buffer/V1_0.java

@@ -37,7 +37,7 @@
             ListIterator<Layer> iterator = layers.listIterator();
             while (iterator.hasNext()) {
                 Layer lyr = db.buffer(iterator.next(), distance.getInt("value"));
-                result.put(db.toJSON(lyr));
+                result.put(db.toJSON(lyr, outputSRID));
             }
         }
         return EXEC_OK;

src/java/m/gis/envelope/V1_0.java

@@ -32,7 +32,7 @@
             ListIterator<Layer> iterator = layers.listIterator();
             while (iterator.hasNext()) {
                 Layer lyr = db.envelope(iterator.next());
-                result.put(db.toJSON(lyr));
+                result.put(db.toJSON(lyr, outputSRID));
             }
         }
         return EXEC_OK;

src/java/m/gis/extent/V1_0.java

@@ -33,7 +33,7 @@
             while (iterator.hasNext()) {
                 Layer lyr = db.extent(iterator.next());
                 Layer lyrArea = db.area(lyr);
-                result.put(db.toJSON(lyrArea));
+                result.put(db.toJSON(lyrArea, outputSRID));
             }
         }
         return EXEC_OK;

src/java/m/gis/intersect/V1_0.java

@@ -35,7 +35,7 @@
                 resultLayer = db.intersect(resultLayer, iterator.next());
             }
         }
-        result.put(db.toJSON(resultLayer));
+        result.put(db.toJSON(resultLayer, outputSRID));
         return EXEC_OK;
     }
 

src/java/m/gis/minboundingrectangle/V1_0.java

@@ -33,7 +33,7 @@
             while (iterator.hasNext()) {
                 Layer lyr = db.minimumBoundingRectangle(iterator.next());
                 Layer lyrArea = db.area(lyr);
-                result.put(db.toJSON(lyrArea));
+                result.put(db.toJSON(lyrArea, outputSRID));
             }
         }
         return EXEC_OK;

src/java/m/gis/union/V1_0.java

@@ -36,7 +36,7 @@
                 resultLayer = db.union(resultLayer, iterator.next());
             }
         }
-        result.put(db.toJSON(resultLayer));
+        result.put(db.toJSON(resultLayer, outputSRID));
         return EXEC_OK;
     }