{"id":33140388,"url":"https://github.com/geoscript/geoscript-groovy","last_synced_at":"2026-01-10T05:02:49.088Z","repository":{"id":827889,"uuid":"543877","full_name":"geoscript/geoscript-groovy","owner":"geoscript","description":"A Groovy implementation of  GeoScript.","archived":false,"fork":false,"pushed_at":"2024-04-19T15:02:49.000Z","size":212941,"stargazers_count":46,"open_issues_count":12,"forks_count":22,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-05-17T16:30:44.544Z","etag":null,"topics":["geospatial","gis","groovy"],"latest_commit_sha":null,"homepage":"https://geoscript.net/groovy","language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geoscript.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2010-03-03T01:48:42.000Z","updated_at":"2024-03-18T09:25:06.000Z","dependencies_parsed_at":"2023-11-04T23:22:46.810Z","dependency_job_id":null,"html_url":"https://github.com/geoscript/geoscript-groovy","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/geoscript/geoscript-groovy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoscript%2Fgeoscript-groovy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoscript%2Fgeoscript-groovy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoscript%2Fgeoscript-groovy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoscript%2Fgeoscript-groovy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geoscript","download_url":"https://codeload.github.com/geoscript/geoscript-groovy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoscript%2Fgeoscript-groovy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284691065,"owners_count":27047743,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-16T02:00:05.974Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["geospatial","gis","groovy"],"created_at":"2025-11-15T12:00:39.032Z","updated_at":"2025-11-16T10:00:51.851Z","avatar_url":"https://github.com/geoscript.png","language":"Groovy","funding_links":[],"categories":["Geospatial Library","Groovy"],"sub_categories":["Groovy"],"readme":".. image:: https://github.com/geoscript/geoscript-groovy/workflows/Maven%20Build/badge.svg\n    :target: https://github.com/geoscript/geoscript-groovy/actions\n\nGeoScript Groovy\n================\nGeoScript Groovy is the `Groovy \u003chttp://groovy.codehaus.org/\u003e`_ implementation of `GeoScript \u003chttp://geoscript.org\u003e`_.  GeoScript is a geospatial scripting API for the JVM that contains one API and four implementations (`Python \u003chttps://github.com/jdeolive/geoscript-py\u003e`_, `JavaScript \u003chttps://github.com/tschaub/geoscript-js\u003e`_, `Scala \u003chttps://github.com/dwins/geoscript.scala\u003e`_, and `Groovy \u003chttps://github.com/jericks/geoscript-groovy\u003e`_).\n\nGeoScript is built on the shoulders of giants and essentially wraps the `Java Topology Suite \u003chttp://tsusiatsoftware.net/jts/main.html\u003e`_ and the `GeoTools \u003chttp://geotools.org/\u003e`_ libraries.\n\nGeoScript provides several modules that includes geometry, projection, features, layers, workspaces, styling and rendering.\n\nBuild\n-----\nBuilding GeoScript Groovy is quite easy.  You will need to have git, Java, Maven, and Ant installed.\n\nUse git to clone the repository::\n\n    git clone git://github.com/jericks/geoscript-groovy.git\n\nUse maven to build, test, and package::\n\n    mvn clean install\n\nThe distribution can be found in target/geoscript-groovy-${version}-app/geoscript-groovy-${version}.\n\nUse\n---\nTo use GeoScript Groovy you need Java and Groovy installed and on your PATH.  Next, download the `latest stable release \u003chttps://github.com/jericks/geoscript-groovy/releases\u003e`_ ,\nthe `latest in development build \u003chttp://ares.opengeo.org/geoscript/groovy/\u003e`_, or build the code yourself.  Then put the GeoScript Groovy bin directory on your PATH.  You are now ready to use GeoScript Groovy!\n\nGeoScript Groovy has three commands:\n\n1. geoscript-groovy (which can run Groovy files)\n2. geoscript-groovysh (which starts a REPL shell)\n3. geoscript-groovyConsole (which starts a graphical editor/mini IDE)\n\nBuffering a Point::\n\n    import geoscript.geom.Point\n\n    def point = new Point(0,0)\n    def poly = point.buffer(10)\n    println(poly.wkt)\n\nProject a Geomemtry::\n\n    import geoscript.geom.Point\n    import geoscript.proj.Projection\n\n    def p1 = new Point(-111.0, 45.7)\n    def p2 = Projection.transform(p1, \"EPSG:4326\", \"EPSG:26912\")\n\nRead a Shapefile::\n\n    import geoscript.layer.Shapefile\n    import geoscript.geom.Bounds\n\n    def shp = new Shapefile(\"states.shp\")\n    int count = shp.count\n    Bounds bounds = shp.bounds\n    shp.features.each {f-\u003e\n        println(f)\n    }\n\nDrawing a Shapefile::\n\n    import geoscript.layer.Shapefile\n    import geoscript.style.Stroke\n    import static geoscript.render.Draw.draw\n\n    def shp = new Shapefile(\"states.shp\")\n    shp.style = new Stroke(\"#999999\", 0.1)\n    draw(shp)\n\nReading a Raster::\n\n    import geoscript.layer.GeoTIFF\n\n    def format = new GeoTIFF(new File(\"raster.tif\"))\n    def raster = format.read()\n\n    println \"Format = ${raster.format}\"\n    println \"Proj EPSG = ${raster.proj.id}\"\n    println \"Proj WKT = ${raster.proj.wkt}\"\n    println \"Bounds = ${raster.bounds.geometry.wkt}\"\n    println \"Size = ${raster.size}\"\n    println \"Block Size = ${raster.blockSize}\"\n    println \"Pixel Size = ${raster.pixelSize}\"\n    println \"Band:\"\n    raster.bands.eachWithIndex{b,i -\u003e\n        println \"   ${i}). ${b}\"\n    }\n\nGenerating tiles::\n    \n    import geoscript.layer.*\n    import geoscript.style.*\n\n    Shapefile shp = new Shapefile(new File(\"states.shp\"))\n    shp.style = new Fill(\"wheat\") + new Stroke(\"navy\", 0.1)\n\n    File file = new File(\"states.gpkg\")\n    GeoPackage gpkg = new GeoPackage(file, \"states\", Pyramid.createGlobalMercatorPyramid(origin: Pyramid.Origin.TOP_LEFT))\n\n    TileRenderer renderer = new ImageTileRenderer(gpkg, shp)\n    TileGenerator generator = new TileGenerator(verbose: true)\n    generator.generate(gpkg, renderer, 0, 4)\n\nSee the `web site \u003chttp://geoscript.org\u003e`_, the `groovy docs \u003chttp://geoscript.github.io/geoscript-groovy/api/1.13.0/index.html\u003e`_ or the `cook book \u003chttps://jericks.github.io/geoscript-groovy-cookbook/\u003e`_ or the `examples directory \u003chttps://github.com/jericks/geoscript-groovy/tree/master/examples\u003e`_ for more examples.\n\nYou can also use GeoScript Groovy as a library. If you use Maven you will need to add the OSGeo Maven Repository::\n\n    \u003crepository\u003e\n        \u003cid\u003eosgeo-releases\u003c/id\u003e\n        \u003cname\u003eOSGeo Nexus Release Repository\u003c/name\u003e\n        \u003curl\u003ehttps://repo.osgeo.org/repository/release/\u003c/url\u003e\n        \u003csnapshots\u003e\n            \u003cenabled\u003efalse\u003c/enabled\u003e\n        \u003c/snapshots\u003e\n        \u003creleases\u003e\n            \u003cenabled\u003etrue\u003c/enabled\u003e\n        \u003c/releases\u003e\n    \u003c/repository\u003e\n\nand then include the GeoScript Groovy dependency::\n\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.geoscript\u003c/groupId\u003e\n        \u003cartifactId\u003egeoscript-groovy\u003c/artifactId\u003e\n        \u003cversion\u003e1.22.0\u003c/version\u003e\n    \u003c/dependency\u003e\n\nDocker\n------\n\nIf you want to give GeoScript Groovy a spin with Docker use the following image::\n\n    https://hub.docker.com/repository/docker/jarederickson/geoscript-groovy\n\nTo run the image use::\n\n    docker image build -t jarederickson/geoscript-groovy:latest .\n\nTo build the image locally::\n\n    docker run -it --rm --name geoscript-groovy jarederickson/geoscript-groovy:latest\n\nVersions\n--------\n\n+-----------+----------+-----------+--------+----------+\n| GeoScript | GeoTools | GeoServer | JTS    | Groovy   |\n+-----------+----------+-----------+--------+----------+\n| 1.22      | 30       | 2.24      | 1.19.0 | 4.0.15   |\n+-----------+----------+-----------+--------+----------+\n| 1.21      | 29       | 2.23      | 1.19.0 | 4.0.13   |\n+-----------+----------+-----------+--------+----------+\n| 1.20      | 28       | 2.22      | 1.19.0 | 3.0.13   |\n+-----------+----------+-----------+--------+----------+\n| 1.19      | 27       | 2.21      | 1.18.2 | 3.0.11   |\n+-----------+----------+-----------+--------+----------+\n| 1.18      | 26       | 2.20      | 1.18.2 | 3.0.9    |\n+-----------+----------+-----------+--------+----------+\n| 1.17      | 25       | 2.19      | 1.18.1 | 3.0.7    |\n+-----------+----------+-----------+--------+----------+\n| 1.16      | 24       | 2.18      | 1.17.1 | 3.0.5    |\n+-----------+----------+-----------+--------+----------+\n| 1.15      | 23       | 2.17      | 1.16.1 | 3.0.3    |\n+-----------+----------+-----------+--------+----------+\n| 1.14      | 22       | 2.16      | 1.16.1 | 2.5.8    |\n+-----------+----------+-----------+--------+----------+\n| 1.13      | 21       | 2.15      | 1.16.0 | 2.5.6    |\n+-----------+----------+-----------+--------+----------+\n| 1.12      | 20       | 2.14      | 1.16.0 | 2.4.15   |\n+-----------+----------+-----------+--------+----------+\n| 1.11      | 19       | 2.13      | 1.14   | 2.4.14   |\n+-----------+----------+-----------+--------+----------+\n| 1.10      | 18       | 2.12      | 1.13   | 2.4.12   |\n+-----------+----------+-----------+--------+----------+\n| 1.9       | 17       | 2.11      | 1.13   | 2.4.10   |\n+-----------+----------+-----------+--------+----------+\n| 1.8       | 16       | 2.10      | 1.13   | 2.4.7    |\n+-----------+----------+-----------+--------+----------+\n| 1.7       | 15       | 2.9       | 1.13   | 2.4.6    |\n+-----------+----------+-----------+--------+----------+\n| 1.6       | 14       | 2.8       | 1.13   | 2.4.5    |\n+-----------+----------+-----------+--------+----------+\n| 1.5       | 13       | 2.7       | 1.13   | 2.3.10   |\n+-----------+----------+-----------+--------+----------+\n| 1.4       | 12       | 2.6       | 1.13   | 2.2.2    |\n+-----------+----------+-----------+--------+----------+\n| 1.3       | 11       | 2.5       | 1.13   | 2.1.9    |\n+-----------+----------+-----------+--------+----------+\n| 1.2       | 10       | 2.4       | 1.13   | 2.1.6    |\n+-----------+----------+-----------+--------+----------+\n| 1.1       | 9        | 2.3       | 1.13   | 1.8.9    |\n+-----------+----------+-----------+--------+----------+\n| 1.0       | 8        | 2.2       | 1.12   | 1.8.8    |\n+-----------+----------+-----------+--------+----------+\n\nAPI Groovy Docs\n---------------\n\n`1.22.0 \u003chttp://geoscript.github.io/geoscript-groovy/api/1.22.0/index.html\u003e`_\n\n`1.21.0 \u003chttp://geoscript.github.io/geoscript-groovy/api/1.21.0/index.html\u003e`_\n\n`1.20.0 \u003chttp://geoscript.github.io/geoscript-groovy/api/1.20.0/index.html\u003e`_\n\n`1.19.0 \u003chttp://geoscript.github.io/geoscript-groovy/api/1.19.0/index.html\u003e`_\n\n`1.18.0 \u003chttp://geoscript.github.io/geoscript-groovy/api/1.18.0/index.html\u003e`_\n\n`1.17.0 \u003chttp://geoscript.github.io/geoscript-groovy/api/1.17.0/index.html\u003e`_\n\n`1.16.0 \u003chttp://geoscript.github.io/geoscript-groovy/api/1.16.0/index.html\u003e`_\n\n`1.15.0 \u003chttp://geoscript.github.io/geoscript-groovy/api/1.15.0/index.html\u003e`_\n\n`1.14.0 \u003chttp://geoscript.github.io/geoscript-groovy/api/1.14.0/index.html\u003e`_\n\n`1.13.0 \u003chttp://geoscript.github.io/geoscript-groovy/api/1.13.0/index.html\u003e`_\n\n`1.12.0 \u003chttp://geoscript.github.io/geoscript-groovy/api/1.12.0/index.html\u003e`_\n\n`1.11.0 \u003chttp://geoscript.github.io/geoscript-groovy/api/1.11.0/index.html\u003e`_\n\n`1.10.0 \u003chttp://geoscript.github.io/geoscript-groovy/api/1.10.0/index.html\u003e`_\n\n`1.9.0 \u003chttp://geoscript.github.io/geoscript-groovy/api/1.9.0/index.html\u003e`_\n\n`1.8.0 \u003chttp://geoscript.github.io/geoscript-groovy/api/1.8.0/index.html\u003e`_\n\nProjects using GeoScript Groovy\n-------------------------------\n`geoc: A geospatial command line application \u003chttps://github.com/jericks/geoc\u003e`_\n\n`geo-shell: An interactive geospatial shell \u003chttps://github.com/jericks/geo-shell\u003e`_\n\n`mbtiles server: Restful web services for mbtiles \u003chttps://github.com/jericks/MBTilesServer\u003e`_\n\n`geopackage server: Restful web services for geopackage \u003chttps://github.com/jericks/GeoPackageServer\u003e`_\n\n`geoscript groovy jupyter kernel \u003chttps://github.com/jericks/geoscript-groovy-kernel\u003e`_\n\nPresentations\n-------------\n`GeoScript: The GeoSpatial Swiss Army Knife (FOSS4G 2014) \u003chttp://geoscript.github.io/foss4g2014-talk/#/\u003e`_\n\n`Using GeoScript Groovy (CUGOS 2014) \u003chttp://www.slideshare.net/JaredErickson/using-geoscript-groovy\u003e`_\n\n`Rendering Maps in GeoScript (CUGOS 2012) \u003chttp://www.slideshare.net/JaredErickson/geo-scriptstylerendering\u003e`_\n\n`Scripting GeoServer (CUGOS 2012) \u003chttp://www.slideshare.net/JaredErickson/scripting-geoserver\u003e`_\n\n`GeoScript: Spatial Capabilities for Scripting Languages (FOSS4G 2011) \u003chttp://www.slideshare.net/jdeolive/geoscript-spatial-capabilities-for-scripting-languages\u003e`_\n\nBuild Servers\n-------------\n\nhttps://github.com/geoscript/geoscript-groovy/actions\n\nhttps://build.geoserver.org/job/geoscript-groovy/\n\nLicense\n-------\nGeoScript Groovy is open source and licensed under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeoscript%2Fgeoscript-groovy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeoscript%2Fgeoscript-groovy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeoscript%2Fgeoscript-groovy/lists"}