diff --git a/onebusaway-gtfs-transformer/src/main/java/org/onebusaway/gtfs_transformer/impl/RetainUpFromPolygon.java b/onebusaway-gtfs-transformer/src/main/java/org/onebusaway/gtfs_transformer/impl/RetainUpFromPolygon.java index d7adfb52..08945a3d 100644 --- a/onebusaway-gtfs-transformer/src/main/java/org/onebusaway/gtfs_transformer/impl/RetainUpFromPolygon.java +++ b/onebusaway-gtfs-transformer/src/main/java/org/onebusaway/gtfs_transformer/impl/RetainUpFromPolygon.java @@ -20,6 +20,9 @@ public class RetainUpFromPolygon implements GtfsTransformStrategy { + private static final GeometryFactory GEOMETRY_FACTORY = new GeometryFactory(); + private final WKTReader wktReader = new WKTReader(GEOMETRY_FACTORY); + @CsvField(optional = false) private String polygon; @@ -73,9 +76,8 @@ public void run(TransformContext transformContext, GtfsMutableRelationalDao gtfs * @throws IllegalArgumentException if the WKT string is invalid or cannot be parsed. */ private Geometry buildPolygon(String polygonWKT) { - WKTReader reader = new WKTReader(); try{ - return reader.read(polygonWKT); + return wktReader.read(polygonWKT); } catch (ParseException e){ throw new IllegalArgumentException( String.format("Error parsing WKT string: %s", e.getMessage()), e @@ -91,8 +93,7 @@ private Geometry buildPolygon(String polygonWKT) { * @return true if the point is within the boundaries of the geometry; false otherwise. */ private boolean insidePolygon(Geometry geometry, double lon, double lat) { - GeometryFactory geometryFactory = new GeometryFactory(); - Point point = geometryFactory.createPoint(new Coordinate(lon, lat)); + Point point = GEOMETRY_FACTORY.createPoint(new Coordinate(lon, lat)); return geometry.contains(point); }