/* * Licensed to GraphHopper GmbH under one or more contributor * license agreements. See the NOTICE file distributed with this work for * additional information regarding copyright ownership. * * GraphHopper GmbH licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.graphhopper.json.geo; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.graphhopper.util.shapes.BBox; import com.vividsolutions.jts.geom.Geometry; import java.util.Map; /** * This class defines a properties where a geometry is associated. Typically read from GeoJSON but also from in-memory is possible. * * @author Peter Karich */ public class JsonFeature { final String id; final String type; final BBox bbox; final Geometry geometry; final Map<String, Object> properties; @JsonCreator public JsonFeature(@JsonProperty("id") String id, @JsonProperty("type") String type, @JsonProperty("bbox") BBox bbox, @JsonProperty("geometry") Geometry geometry, @JsonProperty("properties") Map<String, Object> properties) { this.id = id; this.type = type; this.bbox = bbox; this.geometry = geometry; this.properties = properties; } public String getId() { return id; } public String getType() { return type; } public BBox getBBox() { return bbox; } public boolean hasGeometry() { return geometry != null; } public Geometry getGeometry() { return geometry; } public boolean hasProperties() { return properties != null; } public Map<String, Object> getProperties() { return properties; } public Object getProperty(String key) { return properties.get(key); } @Override public String toString() { return "id:" + getId(); } }