/*
* Copyright (c) 2016 Vivid Solutions.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Eclipse Distribution License v. 1.0 which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
*
* http://www.eclipse.org/org/documents/edl-v10.php.
*/
package test.jts.junit;
import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.io.ParseException;
import org.locationtech.jts.io.WKTFileReader;
import org.locationtech.jts.io.WKTReader;
public class GeometryUtils
{
//TODO: allow specifying GeometryFactory
public static WKTReader reader = new WKTReader();
public static List readWKT(String[] inputWKT)
throws ParseException
{
ArrayList geometries = new ArrayList();
for (int i = 0; i < inputWKT.length; i++) {
geometries.add(reader.read(inputWKT[i]));
}
return geometries;
}
public static Geometry readWKT(String inputWKT)
throws ParseException
{
return reader.read(inputWKT);
}
public static Collection readWKTFile(String filename)
throws IOException, ParseException
{
WKTFileReader fileRdr = new WKTFileReader(filename, reader);
List geoms = fileRdr.read();
return geoms;
}
public static Collection readWKTFile(Reader rdr)
throws IOException, ParseException
{
WKTFileReader fileRdr = new WKTFileReader(rdr, reader);
List geoms = fileRdr.read();
return geoms;
}
public static boolean isEqual(Geometry a, Geometry b)
{
Geometry a2 = normalize(a);
Geometry b2 = normalize(b);
return a2.equalsExact(b2);
}
public static Geometry normalize(Geometry g)
{
Geometry g2 = (Geometry) g.clone();
g2.normalize();
return g2;
}
}