Newer
Older
task-bldg / src / main / java / osm / surveyor / task / util / Point.java
  1. package osm.surveyor.task.util;
  2.  
  3. import java.math.BigDecimal;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6.  
  7. import javax.validation.constraints.NotBlank;
  8.  
  9. import org.springframework.format.annotation.NumberFormat;
  10.  
  11. import com.fasterxml.jackson.databind.JsonNode;
  12.  
  13. import lombok.Data;
  14. import lombok.EqualsAndHashCode;
  15.  
  16. @Data
  17. @EqualsAndHashCode(callSuper=false)
  18. public class Point extends JsonNumberArray {
  19. @NotBlank
  20. @NumberFormat
  21. private String lng = "0.0";
  22. @NotBlank
  23. @NumberFormat
  24. private String lat = "0.0";
  25.  
  26. public void setLng(String str) {
  27. this.lng = str;
  28. }
  29.  
  30. public void setLng(BigDecimal dec) {
  31. this.lng = dec.toString();
  32. }
  33.  
  34. public void setLat(String str) {
  35. this.lat = str;
  36. }
  37.  
  38. public void setLat(BigDecimal dec) {
  39. this.lat = dec.toString();
  40. }
  41. public void setPoint(Point p) {
  42. setPoint(p.getLng(), p.getLat());
  43. }
  44. public void setPoint(BigDecimal lng, BigDecimal lat) {
  45. setLng(lng);
  46. setLat(lat);
  47. }
  48. public void setPoint(String lng, String lat) {
  49. setLng(lng);
  50. setLat(lat);
  51. }
  52. private void store() {
  53. List<String> list = new ArrayList<>();
  54. list.add(getLng());
  55. list.add(getLat());
  56. setList(list);
  57. }
  58. /*
  59. * [141.35625,42.90416666666667]
  60. */
  61. @Override
  62. public String toString() {
  63. store();
  64. return super.toString();
  65. }
  66. public void parse(JsonNode node) {
  67. if (node != null) {
  68. boolean one = false;
  69. for (JsonNode node2 : node) {
  70. if (!one) {
  71. setLng(node2.asText());
  72. one = true;
  73. }
  74. else {
  75. setLat(node2.asText());
  76. }
  77. }
  78. }
  79. }
  80. /*
  81. * {
  82. * "geometry":{
  83. * "coordinates":[141.35625,42.90416666666667],
  84. * "type":"Point"
  85. * },
  86. * "type":"Feature",
  87. * "properties":{
  88. * "path":"64412288_bldg_6697_op.zip",
  89. * "id":"64412288",
  90. * "version":"1.4.6"
  91. * }
  92. * }
  93. */
  94. public String getGeometry() {
  95. store();
  96. StringBuffer sb = new StringBuffer();
  97. sb.append("{");
  98. sb.append("\"geometry\":{");
  99. sb.append("\"type\":\"Point\"");
  100. sb.append(",\"coordinates\":"+ toString());
  101. sb.append("}");
  102. sb.append("}");
  103. return sb.toString();
  104. }
  105. }