- package osm.surveyor.task.util;
-
- import com.fasterxml.jackson.databind.JsonNode;
-
- import lombok.Getter;
- import lombok.Setter;
-
- /**
- * {
- * "geometry":{
- * "coordinates":[141.35625,42.90416666666667],
- * "type":"Point"
- * },
- * "type":"Feature",
- * "properties":{"id":"64412288"}
- * },
- * {
- * "geometry":{
- * "coordinates":[
- * [141.35,42.9],
- * [141.36249999999998,42.9],
- * [141.36249999999998,42.90833333333333],
- * [141.35,42.90833333333333],
- * [141.35,42.9]
- * ],
- * "type":"LineString"
- * },
- * "type":"Feature",
- * "properties":{"id":"64412288"}
- * },
- */
- @Getter
- @Setter
- public class JsonFeature extends JsonTemple {
- public JsonGeometryPoint getGeometryPoint() {
- return geometryPoint;
- }
-
- public void setGeometryPoint(JsonGeometryPoint geometryPoint) {
- this.geometryPoint = geometryPoint;
- }
-
- public JsonGeometryLine getGeometryLine() {
- return geometryLine;
- }
-
- public void setGeometryLine(JsonGeometryLine geometryLine) {
- this.geometryLine = geometryLine;
- }
-
- public String getType() {
- return type;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public JsonProperties getProperties() {
- return properties;
- }
-
- public void setProperties(JsonProperties properties) {
- this.properties = properties;
- }
-
- private JsonGeometryPoint geometryPoint;
- private JsonGeometryLine geometryLine;
-
- private String type;
-
- private JsonProperties properties;
-
- public String toString() {
- StringBuffer sb = new StringBuffer();
- boolean c = false;
- sb.append("{");
- c = outStr(c, sb, "type", this.type);
- c = out(c, sb, "properties", this.properties.toString());
- c = out(c, sb, "geometry", this.geometryPoint);
- c = out(c, sb, "geometry", this.geometryLine);
- sb.append("}");
- return sb.toString();
- }
-
- public void parse(JsonNode node) {
- JsonNode node1 = node.get("type");
- if (node1 != null) {
- this.type = node1.textValue();
- }
-
- node1 = node.get("properties");
- if (node1 != null) {
- this.properties = new JsonProperties();
- this.properties.parse(node1);
- }
-
- node1 = node.get("geometry");
- if (node1 != null) {
- JsonNode node2 = node1.get("type");
- if (node2 != null) {
- String type2 = node2.textValue();
- if (type2.equals("Point")) {
- this.geometryLine = null;
- this.geometryPoint = new JsonGeometryPoint();
- this.geometryPoint.parse(node1);
- }
- else if (type2.equals("LineString")) {
- this.geometryPoint = null;
- this.geometryLine = new JsonGeometryLine();
- this.geometryLine.parse(node1);
- }
- }
- }
- }
- }