All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.anwiba.spatial.geo.json.v01_0.GeoJsonObject Maven / Gradle / Ivy

//Copyright (c) 2012 by Andreas W. Bartels
package net.anwiba.spatial.geo.json.v01_0;

import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "type")
@JsonSubTypes({
    @JsonSubTypes.Type(value = FeatureCollection.class, name = "FeatureCollection"),
    @JsonSubTypes.Type(value = FeatureCollection.class, name = "featurecollection"),
    @JsonSubTypes.Type(value = Feature.class, name = "Feature"),
    @JsonSubTypes.Type(value = Feature.class, name = "feature"),
    @JsonSubTypes.Type(value = Geometry.class, name = "Geometry"),
    @JsonSubTypes.Type(value = Geometry.class, name = "geometry"),
    @JsonSubTypes.Type(value = Point.class, name = "Point"),
    @JsonSubTypes.Type(value = Point.class, name = "point"),
    @JsonSubTypes.Type(value = LineString.class, name = "LineString"),
    @JsonSubTypes.Type(value = LineString.class, name = "linestring"),
    @JsonSubTypes.Type(value = Polygon.class, name = "Polygon"),
    @JsonSubTypes.Type(value = Polygon.class, name = "polygon"),
    @JsonSubTypes.Type(value = MultiPoint.class, name = "MultiPoint"),
    @JsonSubTypes.Type(value = MultiPoint.class, name = "multipoint"),
    @JsonSubTypes.Type(value = MultiLineString.class, name = "MultiLineString"),
    @JsonSubTypes.Type(value = MultiLineString.class, name = "multilinestring"),
    @JsonSubTypes.Type(value = MultiPolygon.class, name = "MultiPolygon"),
    @JsonSubTypes.Type(value = MultiPolygon.class, name = "multipolygon"),
    @JsonSubTypes.Type(value = GeometryCollection.class, name = "GeometryCollection"),
    @JsonSubTypes.Type(value = GeometryCollection.class, name = "geometrycollection")
})
public class GeoJsonObject {

    private Crs crs = null;
    private double[] bbox = null;
    private final Map _unknownMembers = new LinkedHashMap<>();

    @JsonProperty("crs")
    public void setCrs(final Crs crs) {
        this.crs = crs;
    }

    @JsonProperty("crs")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public Crs getCrs() {
        return this.crs;
    }

    @JsonProperty("bbox")
    public void setBbox(final double[] bbox) {
        this.bbox = bbox;
    }

    @JsonProperty("bbox")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public double[] getBbox() {
        return this.bbox;
    }

    @JsonAnySetter
    public void set(final String name, final Object value) {
        Objects.requireNonNull(name);
        this._unknownMembers.put(name, value);
    }

    @JsonAnyGetter
    public Map get() {
        if (this._unknownMembers.isEmpty()) {
            return null;
        }
        return this._unknownMembers;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy