/* * 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 org.locationtech.jts.generator; import org.locationtech.jts.geom.Geometry; import org.locationtech.jts.geom.Point; /** * * Creates a point based on the bounding box. * * This implementation returns the centroid. * * @author David Zwiers, Vivid Solutions. */ public class PointGenerator extends GeometryGenerator { /** * @see org.locationtech.jts.generator.GeometryGenerator#create() * @throws NullPointerException when either the Geometry Factory, or the Bounding Box are undefined. */ public Geometry create() { if(geometryFactory == null){ throw new NullPointerException("GeometryFactory is not declared"); } if(boundingBox == null || boundingBox.isNull()){ throw new NullPointerException("Bounding Box is not declared"); } Point p = geometryFactory.toGeometry(boundingBox).getCentroid(); geometryFactory.getPrecisionModel().makePrecise(p.getCoordinate()); return p; } }