diff --git a/grails-app/jobs/au/org/ala/ecodata/ImportSciStarterJob.groovy b/grails-app/jobs/au/org/ala/ecodata/ImportSciStarterJob.groovy index eec02b3c1..b861010cd 100644 --- a/grails-app/jobs/au/org/ala/ecodata/ImportSciStarterJob.groovy +++ b/grails-app/jobs/au/org/ala/ecodata/ImportSciStarterJob.groovy @@ -10,7 +10,7 @@ class ImportSciStarterJob { static triggers = { Boolean enabled = grailsApplication.config.getProperty("sciStarter.importEnabled", Boolean, true) if (enabled) { - cron name: "every sunday", cronExpression: "0 0 0 ? * 1/7 *" + cron name: "every sunday", cronExpression: grailsApplication.config.getProperty("scistarter.cronSchedule", "0 0 0 ? * 1/7 *") } } diff --git a/grails-app/services/au/org/ala/ecodata/SiteService.groovy b/grails-app/services/au/org/ala/ecodata/SiteService.groovy index 06cc655fe..7e656c58c 100644 --- a/grails-app/services/au/org/ala/ecodata/SiteService.groovy +++ b/grails-app/services/au/org/ala/ecodata/SiteService.groovy @@ -275,9 +275,11 @@ class SiteService { } } } catch (Exception e) { - log.info("Unable to get simplified project area geometry (site ${site.siteId}") + log.info("Unable to get simplified project area geometry (site ${site.siteId})", e) } + // remove extent to not avoid total fields limit in ES + site?.remove('extent') site } diff --git a/src/main/groovy/au/org/ala/ecodata/GeometryUtils.groovy b/src/main/groovy/au/org/ala/ecodata/GeometryUtils.groovy index 0d73edeee..bda514e80 100644 --- a/src/main/groovy/au/org/ala/ecodata/GeometryUtils.groovy +++ b/src/main/groovy/au/org/ala/ecodata/GeometryUtils.groovy @@ -18,6 +18,8 @@ import org.opengis.referencing.crs.CoordinateReferenceSystem import org.opengis.referencing.operation.MathTransform import java.awt.geom.Point2D +import java.nio.charset.StandardCharsets + /** * Helper class for working with site geometry. */ @@ -29,10 +31,13 @@ class GeometryUtils { static Map wktToGeoJson(String wkt, int decimals = 20) { WKTReader wktReader = new WKTReader() - Geometry geom = wktReader.read(wkt) - String geoJSON = new GeometryJSON(decimals).toString(geom) + ByteArrayOutputStream outputStream = new ByteArrayOutputStream() + OutputStreamWriter writer = new OutputStreamWriter(outputStream, StandardCharsets.UTF_8) + def reader = new StringReader(wkt) + Geometry geom = wktReader.read(reader) + new GeometryJSON(decimals).write(geom, writer) ObjectMapper mapper = new ObjectMapper() - return mapper.readValue(geoJSON, Map) + return mapper.readValue(outputStream.toByteArray(), Map) } static String wktToMultiPolygonWkt(String wkt) {