Advertisement
Guest User

Untitled

a guest
Dec 10th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. package demo
  2.  
  3. import java.sql.DriverManager
  4. import java.sql.ResultSet
  5. import java.sql.Statement
  6. import java.sql.Connection
  7. import org.postgresql.PGConnection
  8. import org.postgis.MultiPolygon
  9. import org.postgis.PGgeometry
  10. import org.postgis.Point
  11.  
  12. class DbImpl {
  13. Connection conn;
  14. def void init() throws Exception{
  15. Class.forName("org.postgresql.Driver");
  16. String url = "jdbc:postgresql://localhost:5433/postgis_25";
  17. conn = DriverManager.getConnection(url, "postgres", "postgres");
  18. ((org.postgresql.PGConnection)conn).addDataType("geometry",Class.forName("org.postgis.PGgeometry"));
  19. ((org.postgresql.PGConnection)conn).addDataType("box3d",Class.forName("org.postgis.PGbox3d"));
  20. }
  21. def List<demo.Point> returnAreaForCountry(String country) {
  22. init()
  23. List<demo.Point> pointsForCountry = new ArrayList<>()
  24. String sqlQuery="";
  25. switch(country){
  26. case "Poland":sqlQuery= "select geom from poland_border";
  27. break;
  28. case "Germany":sqlQuery= "select geom from germany_border";
  29. break;
  30. case "France":sqlQuery= "select geom from france_border";
  31. break;
  32. case "Czech Republic":sqlQuery= "select geom from czech_border";
  33. break;
  34. }
  35.  
  36. try {
  37.  
  38.  
  39. Statement s = conn.createStatement();
  40. ResultSet r = s.executeQuery(sqlQuery);
  41. while (r.next()) {
  42. PGgeometry geom = (PGgeometry) r.getObject(1);
  43. MultiPolygon pl = (MultiPolygon) geom.getGeometry();
  44.  
  45. for (int i = 0; i < pl.numPoints(); i++) {
  46. Point pointsql = pl.getPoint(i);
  47. demo.Point p = new demo.Point(pointsql.getY(),pointsql.getX())
  48. pointsForCountry.add(p)
  49. }
  50. }
  51. s.close();
  52.  
  53. return pointsForCountry;
  54. }
  55. catch (Exception e) {
  56. e.printStackTrace();
  57. }
  58.  
  59. }
  60.  
  61. def Long getNumberOfRestrictedAres() throws Exception{
  62. init()
  63. Long size = null;
  64. Statement s = conn.createStatement();
  65. ResultSet r = s.executeQuery("select count(id) from parki_narodowe");
  66. while( r.next() ) {
  67. size =(Long) r.getObject(1);
  68. }
  69. s.close();
  70. return size;
  71. }
  72.  
  73.  
  74. def List<demo.Point> getRestrictedArea(int id) throws Exception{
  75. init()
  76. List<demo.Point> listOfPoints = new ArrayList<>();
  77. String sql = "SELECT ST_TRANSFORM(parki_narodowe.geom,4326) AS LongLat FROM parki_narodowe where id =";
  78. sql+=id;
  79. Statement s = conn.createStatement();
  80. ResultSet r = s.executeQuery(sql);
  81. while( r.next() ) {
  82.  
  83. PGgeometry geom = (PGgeometry)r.getObject(1);
  84. geom.getGeoType();
  85. MultiPolygon pl = (MultiPolygon)geom.getGeometry();
  86. for( int i = 0; i < pl.numPoints(); i++) {
  87. Point rng = pl.getPoint(i);
  88. demo.Point p = new demo.Point(pointsql.getY(),pointsql.getX())
  89. listOfPoints.add(p)
  90.  
  91. }
  92. }
  93. s.close();
  94. return listOfPoints;
  95. }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement