Newer
Older
task-bldg / src / main / java / osm / surveyor / task / util / Geojson.java
  1. package osm.surveyor.task.util;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import com.fasterxml.jackson.databind.JsonNode;
  7.  
  8. import lombok.Getter;
  9. import lombok.Setter;
  10.  
  11. @Getter
  12. @Setter
  13. public class Geojson extends JsonTemple {
  14. private String type = "FeatureCollection";
  15. private JsonCrs crs;
  16. private List<JsonFeature> features = new ArrayList<>();
  17. public String toString() {
  18. StringBuffer sb = new StringBuffer();
  19. boolean c = false;
  20. sb.append("{");
  21. c = outStr(c, sb, "type", this.type);
  22. c = out(c, sb, "crs", this.crs);
  23. if (c) {
  24. sb.append(",");
  25. }
  26. sb.append("\"features\":[");
  27. boolean c2 = false;
  28. for (JsonFeature f : features) {
  29. c2 = out(c2, sb, null, f);
  30. sb.append(System.lineSeparator());
  31. }
  32. sb.append("]");
  33. sb.append("}");
  34. return sb.toString();
  35. }
  36. public void parse(JsonNode node) {
  37. setType(node.get("type").textValue());
  38. JsonNode nodeCrs = node.get("crs");
  39. if (nodeCrs != null) {
  40. this.crs = new JsonCrs();
  41. this.crs.parse(nodeCrs);
  42. }
  43. JsonNode f = node.get("features");
  44. if (f != null) {
  45. this.features = new ArrayList<JsonFeature>();
  46. for (JsonNode f1 : f) {
  47. JsonFeature feature = new JsonFeature();
  48. feature.parse(f1);
  49. this.features.add(feature);
  50. }
  51. }
  52. }
  53. }