/** * Copyright (c) Codice Foundation * <p> * This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser * General Public License as published by the Free Software Foundation, either version 3 of the * License, or any later version. * <p> * This program 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 * Lesser General Public License for more details. A copy of the GNU Lesser General Public License * is distributed along with this program and can be found at * <http://www.gnu.org/licenses/lgpl.html>. */ package org.codice.ddf.opensearch.query.filter; import ddf.catalog.impl.filter.SpatialFilter; public class PolygonSpatialFilter extends SpatialFilter { private String[] latLonAry; public PolygonSpatialFilter(String lonLatStr) { super(); latLonAry = lonLatStr.split(" |,\\p{Space}?"); this.geometryWkt = createWKT(); } private String createWKT() { StringBuilder wktBuilder = new StringBuilder("POLYGON(("); for (int i = 0; i < (latLonAry.length - 1); i += 2) { if (i != 0) { wktBuilder.append(","); } // WKT is lon/lat, polygon is lat/lon wktBuilder.append(latLonAry[i + 1] + " " + latLonAry[i]); } wktBuilder.append("))"); return wktBuilder.toString(); } }