Newer
Older
osmCoverage / src / osm / jp / postgis / PostgisItems.java
@yuu yuu on 24 Dec 2018 5 KB function: UnMapped.
  1. package osm.jp.postgis;
  2.  
  3. import java.math.BigDecimal;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.util.ArrayList;
  7.  
  8. public class PostgisItems extends ArrayList<PostgisItem> {
  9. String geom = "";
  10. String gmlid = "";
  11. String idref = "";
  12. int area = 0;
  13. int fixed = 0;
  14. int code = 0;
  15. double lat = 0.0D;
  16. double lon = 0.0D;
  17. public static void main() {
  18. @SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
  19. PostgisItems items = new PostgisItems();
  20. items.add(new PostgisItem("gmlid", "gmlid"));
  21. items.add(new PostgisItem("idref", "idref"));
  22. items.add(new PostgisItem("area", "area"));
  23. items.add(new PostgisItem("fixed", "fixed1"));
  24. items.add(new PostgisItem("code", "code"));
  25. }
  26. public PostgisItems() {
  27. super();
  28. }
  29.  
  30. public void setResuit(ResultSet rset) throws SQLException {
  31. for (PostgisItem item : this) {
  32. switch (item.postName) {
  33. case "gmlid":
  34. gmlid = rset.getString(item.localName);
  35. break;
  36. case "idref":
  37. idref = rset.getString(item.localName);
  38. break;
  39. case "area":
  40. area = rset.getInt(item.localName);
  41. break;
  42. case "fixed":
  43. fixed = rset.getInt(item.localName);
  44. break;
  45. case "code":
  46. code = rset.getInt(item.localName);
  47. break;
  48. default:
  49. break;
  50. }
  51. }
  52. lat = rset.getDouble("lat");
  53. lon = rset.getDouble("lon");
  54. }
  55. public void setPostResuit(ResultSet rset) throws SQLException {
  56. for (PostgisItem item : this) {
  57. switch (item.postName) {
  58. case "gmlid":
  59. gmlid = rset.getString(item.postName);
  60. break;
  61. case "idref":
  62. idref = rset.getString(item.postName);
  63. break;
  64. case "area":
  65. area = rset.getInt(item.postName);
  66. break;
  67. case "fixed":
  68. fixed = rset.getInt(item.postName);
  69. break;
  70. case "code":
  71. code = rset.getInt(item.postName);
  72. break;
  73. case "geom":
  74. geom = rset.getString(item.postName);
  75. break;
  76. case "lat":
  77. lat = rset.getDouble(item.postName);
  78. break;
  79. case "lon":
  80. lon = rset.getDouble(item.postName);
  81. break;
  82. default:
  83. break;
  84. }
  85. }
  86. }
  87.  
  88. public String getSqlStr(String tableName) {
  89. StringBuilder sb = new StringBuilder();
  90. sb.append("SELECT ");
  91. for (PostgisItem item : this) {
  92. sb.append(item.localName);
  93. sb.append(",");
  94. }
  95. sb.append("lat,lon FROM ");
  96. sb.append(tableName);
  97. return sb.toString();
  98. }
  99.  
  100. public String getValue() {
  101. StringBuilder sb = new StringBuilder();
  102. boolean top = true;
  103. for (PostgisItem item : this) {
  104. if (top) {
  105. top = false;
  106. }
  107. else {
  108. sb.append(",");
  109. }
  110. switch (item.postName) {
  111. case "gmlid":
  112. sb.append(gmlid);
  113. break;
  114. case "idref":
  115. sb.append(idref);
  116. break;
  117. case "area":
  118. sb.append(area);
  119. break;
  120. case "fixed":
  121. sb.append(fixed);
  122. break;
  123. case "code":
  124. sb.append(code);
  125. break;
  126. case "geom":
  127. sb.append(geom);
  128. break;
  129. case "lat":
  130. sb.append(lat);
  131. break;
  132. case "lon":
  133. sb.append(lon);
  134. break;
  135. default:
  136. break;
  137. }
  138. }
  139. return sb.toString();
  140. }
  141. public String getPostSqlStr(String tableName) {
  142. StringBuilder sb = new StringBuilder();
  143. sb.append("SELECT ");
  144. boolean top = true;
  145. for (PostgisItem item : this) {
  146. if (top) {
  147. top = false;
  148. }
  149. else {
  150. sb.append(",");
  151. }
  152. switch (item.postName) {
  153. case "lat":
  154. sb.append("ST_Y(geom) AS lat");
  155. break;
  156. case "lon":
  157. sb.append("ST_X(geom) AS lon");
  158. break;
  159. default:
  160. sb.append(item.postName);
  161. break;
  162. }
  163. }
  164. sb.append(" FROM t_");
  165. sb.append(tableName);
  166. sb.append(" ORDER BY area, gmlid");
  167. return sb.toString();
  168. }
  169. public String getCsvHeader() {
  170. StringBuilder sb = new StringBuilder();
  171. boolean top = true;
  172. for (PostgisItem item : this) {
  173. if (top) {
  174. top = false;
  175. }
  176. else {
  177. sb.append(",");
  178. }
  179. sb.append(item.postName);
  180. }
  181. return sb.toString();
  182. }
  183. public String getGeomStr() {
  184. return String.format(
  185. "ST_GeomFromText('POINT(%s %s)', 4612)",
  186. BigDecimal.valueOf(lon).toPlainString(),
  187. BigDecimal.valueOf(lat).toPlainString()
  188. );
  189. }
  190. }