/* * Copyright (C) 2010-2012 Stichting Akvo (Akvo Foundation) * * This file is part of Akvo FLOW. * * Akvo FLOW is free software: you can redistribute it and modify it under the terms of * the GNU Affero General Public License (AGPL) as published by the Free Software Foundation, * either version 3 of the License or any later version. * * Akvo FLOW is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Affero General Public License included below for more details. * * The full license text can also be seen at <http://www.gnu.org/licenses/agpl.html>. */ package com.gallatinsystems.gis.map.domain; import java.util.ArrayList; import javax.jdo.annotations.NotPersistent; import javax.jdo.annotations.PersistenceCapable; import com.gallatinsystems.framework.domain.BaseDomain; import com.google.appengine.api.datastore.Text; @PersistenceCapable public class Geometry extends BaseDomain { /** * */ private static final long serialVersionUID = -694616882164561459L; private GeometryType type = null; private ArrayList<Coordinate> coordinates = null; private Text wktText = null; private Double centroidLat = null; private Double centroidLon = null; @NotPersistent private com.vividsolutions.jts.geom.Coordinate[] boundingBox = null; public Double getCentroidLat() { return centroidLat; } public void setCentroidLat(Double centroidLat) { this.centroidLat = centroidLat; } public Double getCentroidLon() { return centroidLon; } public void setCentroidLon(Double centroidLon) { this.centroidLon = centroidLon; } public GeometryType getType() { return type; } public void setType(GeometryType type) { this.type = type; } public ArrayList<Coordinate> getCoordinates() { return coordinates; } public void setCoordinates(ArrayList<Coordinate> coordinates) { this.coordinates = coordinates; } public void addCoordinate(Double x, Double y) { if (coordinates == null) coordinates = new ArrayList<Coordinate>(); Coordinate coordinate = new Coordinate(x, y); coordinates.add(coordinate); } public void setWktText(String wktText) { this.wktText = new Text(wktText); } public String getWktText() { if (wktText != null) return wktText.getValue(); else return null; } public void setBoundingBox(com.vividsolutions.jts.geom.Coordinate[] boundingBox) { this.boundingBox = boundingBox; } public com.vividsolutions.jts.geom.Coordinate[] getBoundingBox() { return boundingBox; } public enum GeometryType { MULITPOLYGON, POLYGON, POINT, RECTANGLE } }