Newer
Older
meshcode-jp / src / main / java / osm / surveyor / task / util / JsonFeature.java
@haya4 haya4 on 3 Jan 2023 2 KB Lambda不要
  1. package osm.surveyor.task.util;
  2.  
  3. import com.fasterxml.jackson.databind.JsonNode;
  4.  
  5. import lombok.Getter;
  6. import lombok.Setter;
  7.  
  8. /**
  9. * {
  10. * "geometry":{
  11. * "coordinates":[141.35625,42.90416666666667],
  12. * "type":"Point"
  13. * },
  14. * "type":"Feature",
  15. * "properties":{"id":"64412288"}
  16. * },
  17. * {
  18. * "geometry":{
  19. * "coordinates":[
  20. * [141.35,42.9],
  21. * [141.36249999999998,42.9],
  22. * [141.36249999999998,42.90833333333333],
  23. * [141.35,42.90833333333333],
  24. * [141.35,42.9]
  25. * ],
  26. * "type":"LineString"
  27. * },
  28. * "type":"Feature",
  29. * "properties":{"id":"64412288"}
  30. * },
  31. */
  32. @Getter
  33. @Setter
  34. public class JsonFeature extends JsonTemple {
  35. public JsonGeometryPoint getGeometryPoint() {
  36. return geometryPoint;
  37. }
  38.  
  39. public void setGeometryPoint(JsonGeometryPoint geometryPoint) {
  40. this.geometryPoint = geometryPoint;
  41. }
  42.  
  43. public JsonGeometryLine getGeometryLine() {
  44. return geometryLine;
  45. }
  46.  
  47. public void setGeometryLine(JsonGeometryLine geometryLine) {
  48. this.geometryLine = geometryLine;
  49. }
  50.  
  51. public String getType() {
  52. return type;
  53. }
  54.  
  55. public void setType(String type) {
  56. this.type = type;
  57. }
  58.  
  59. public JsonProperties getProperties() {
  60. return properties;
  61. }
  62.  
  63. public void setProperties(JsonProperties properties) {
  64. this.properties = properties;
  65. }
  66.  
  67. private JsonGeometryPoint geometryPoint;
  68. private JsonGeometryLine geometryLine;
  69. private String type;
  70. private JsonProperties properties;
  71. public String toString() {
  72. StringBuffer sb = new StringBuffer();
  73. boolean c = false;
  74. sb.append("{");
  75. c = outStr(c, sb, "type", this.type);
  76. c = out(c, sb, "properties", this.properties.toString());
  77. c = out(c, sb, "geometry", this.geometryPoint);
  78. c = out(c, sb, "geometry", this.geometryLine);
  79. sb.append("}");
  80. return sb.toString();
  81. }
  82. public void parse(JsonNode node) {
  83. JsonNode node1 = node.get("type");
  84. if (node1 != null) {
  85. this.type = node1.textValue();
  86. }
  87. node1 = node.get("properties");
  88. if (node1 != null) {
  89. this.properties = new JsonProperties();
  90. this.properties.parse(node1);
  91. }
  92. node1 = node.get("geometry");
  93. if (node1 != null) {
  94. JsonNode node2 = node1.get("type");
  95. if (node2 != null) {
  96. String type2 = node2.textValue();
  97. if (type2.equals("Point")) {
  98. this.geometryLine = null;
  99. this.geometryPoint = new JsonGeometryPoint();
  100. this.geometryPoint.parse(node1);
  101. }
  102. else if (type2.equals("LineString")) {
  103. this.geometryPoint = null;
  104. this.geometryLine = new JsonGeometryLine();
  105. this.geometryLine.parse(node1);
  106. }
  107. }
  108. }
  109. }
  110. }