/*
* 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.perf.algorithm;
import org.locationtech.jts.algorithm.locate.PointOnGeometryLocator;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryFactory;
import org.locationtech.jts.geom.PrecisionModel;
import org.locationtech.jts.geom.util.SineStarFactory;
import org.locationtech.jts.util.Stopwatch;
public class PointInAreaPerfTest {
public static void main(String args[]) {
PointInAreaPerfTest test = new PointInAreaPerfTest();
test.run();
}
PrecisionModel pmFixed_1 = new PrecisionModel(1.0);
public PointInAreaPerfTest() {
}
public void run()
{
GeometryFactory geomFactory = new GeometryFactory();
SineStarFactory ssFact = new SineStarFactory();
ssFact.setSize(1000.0);
ssFact.setNumPoints(2000);
ssFact.setArmLengthRatio(0.1);
ssFact.setNumArms(100);
Geometry area = ssFact.createSineStar();
System.out.println(area);
Stopwatch sw = new Stopwatch();
PointOnGeometryLocator pia = new MCIndexedPointInAreaLocator(area);
// PointInAreaLocator pia = new IntervalIndexedPointInAreaLocator(area);
// PointInAreaLocator pia = new SimplePointInAreaLocator(area);
PointInAreaPerfTester perfTester = new PointInAreaPerfTester(geomFactory, area);
perfTester.setNumPoints(50000);
perfTester.setPIA(pia);
perfTester.run();
System.out.println("Overall time: " + sw.getTimeString());
}
}