analizzare i dati GeoJSON su Polygon utilizzando Java

ho seguito Geo JSON file di dati che voglio analizzare in Polygon (utilizzando Java)

file Geo JSON

[
  {
    "_id": "58a58bf685979b5415f3a39a",
    "updatedAt": "2017-03-27T14:04:34.470Z",
    "createdAt": "2017-02-16T11:24:38.375Z",
    "__v": 0,
    "name": "0",
    "cityId": "548876e13a9424d55af738b5",
    "legacyId": "18_92",
    "type": "relocationzone",
    "geoFeatures": [
      {
        "name": "opticalCenter",
        "geometry": {
          "type": "Point",
          "coordinates": [
            9.1371735,
            48.790337
          ]
        }
      },
      {
        "name": "center",
        "geometry": {
          "type": "Point",
          "coordinates": [
            9.137148666666667,
            48.79031233333333
          ]
        }
      }
    ],
    "options": {
      "active": true,
      "is_excluded": false,
      "area": 0.4
    },
    "timedOptions": [
      {
        "key": "min",
        "changesOverTime": [
          [
            0,
            0
          ]
        ]
      },
      {
        "key": "max",
        "changesOverTime": [
          [
            0,
            200
          ]
        ]
      },
      {
        "key": "idle_time",
        "changesOverTime": [
          [
            0,
            2000
          ]
        ]
      },
      {
        "key": "revenue",
        "changesOverTime": [
          [
            0,
            0
          ]
        ]
      },
      {
        "key": "walking_range1",
        "changesOverTime": [
          [
            0,
            0
          ]
        ]
      },
      {
        "key": "walking_range2",
        "changesOverTime": [
          [
            0,
            0
          ]
        ]
      }
    ],
    "geometry": {
      "type": "Polygon",
      "coordinates": [
        [
          [
            9.137248,
            48.790411
          ],
          [
            9.137248,
            48.790263
          ],
          [
            9.13695,
            48.790263
          ],
          [
            9.137248,
            48.790411
          ]
        ]
      ]
    },
    "version": 1,
    "$computed": {
      "activeTimedOptions": {
        "min": 0,
        "max": 200,
        "idle_time": 2000,
        "revenue": 0,
        "walking_range1": 0,
        "walking_range2": 0
      }
    }
  }
]

ho usato geojson-jackson 1.0 per parsing usando il codice Java sottostante

GeoJsonObject[] object = new ObjectMapper().readValue(new File(fileLocation), GeoJsonObject[].class);
        if (object[0] instanceof Polygon) {
            System.out.println("yes");
        }
        else {
            System.out.println("No");
        }

ma sto ottenendo un’eccezione com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve type id 'relocationzone' as a subtype of [simple type, class org.geojson.GeoJsonObject]: known type ids = [Feature, FeatureCollection, LineString, MultiLineString, MultiPoint, MultiPolygon, Point, Polygon]

qualcuno può dirmi come posso usare sopra i dati del file JSON per analizzare con successo Poligon?

EN From: Parsing GeoJSON Data to Polygon using Java

More similar articles:

1 Comment

  1. geojson-jackson 1.0 sta segnalando il tuo ingresso GeoJSON come non valido. l’eccezione dice che tutti gli ingressi GeoJSON validi devono avere un tipo di FeatureCollection, LineStringa, stringa multilinea, MultiPoint, MultiPoligono, Punto o Poligono. vedere https://github.com/opendatalab-de/geojson-jackson/blob/master/src/main/java/org/geojson/GeoJsonObject.java#L14-L16 per il codice sorgente effettivo.

    l’input di esempio fornito ha il tipo impostato su “relocationzone”.

    per farlo funzionare dovrai estendere geojson-jackson creando nuove classi Java che corrispondono più o meno alla struttura dei tuoi ingressi GeoJSON.

    come punto di partenza è necessario creare una classe che assomiglia a questo:

    public class relocationzone extends GeoJsonObject {
    
        @JsonInclude(JsonInclude.Include.ALWAYS)
        private Map<String, Object> properties = new HashMap<String, Object>();
        @JsonInclude(JsonInclude.Include.ALWAYS)
    
        // Expected JSON data
        private GeoJsonObject geometry;
        private String id;
        private String _id;
        private String updatedAt;;
        private String name;
        private String _v;
        private String createdAt;
        private String legacyId;
    
    
        public void setProperty(String key, Object value) {
            properties.put(key, value);
        }
    
        @SuppressWarnings("unchecked")
        public <T> T getProperty(String key) {
            return (T)properties.get(key);
        }
    
        public Map<String, Object> getProperties() {
            return properties;
        }
    
        public void setProperties(Map<String, Object> properties) {
            this.properties = properties;
        }
    
        public GeoJsonObject getGeometry() {
            return geometry;
        }
    
        public void setGeometry(GeoJsonObject geometry) {
            this.geometry = geometry;
        }
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
    }

Leave a Reply

Your email address will not be published. Required fields are marked *