{"id":43816665,"url":"https://github.com/jericks/wkg","last_synced_at":"2026-02-06T00:34:58.683Z","repository":{"id":143378122,"uuid":"74708255","full_name":"jericks/wkg","owner":"jericks","description":"Well Known Geometry","archived":false,"fork":false,"pushed_at":"2023-11-30T01:14:58.000Z","size":5179,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-01-29T09:35:40.060Z","etag":null,"topics":["antlr","geometry","geospatial","java","wkt"],"latest_commit_sha":null,"homepage":"http://jericks.github.io/wkg","language":"Java","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/jericks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2016-11-24T22:15:48.000Z","updated_at":"2022-04-19T01:12:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"d3386b37-469c-43b0-9e75-2776ddd00d54","html_url":"https://github.com/jericks/wkg","commit_stats":{"total_commits":43,"total_committers":1,"mean_commits":43.0,"dds":0.0,"last_synced_commit":"46b107715434ea3260659319e7261cd2f5e51f53"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jericks/wkg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jericks%2Fwkg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jericks%2Fwkg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jericks%2Fwkg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jericks%2Fwkg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jericks","download_url":"https://codeload.github.com/jericks/wkg/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jericks%2Fwkg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29140315,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T23:14:48.546Z","status":"ssl_error","status_checked_at":"2026-02-05T23:14:35.724Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["antlr","geometry","geospatial","java","wkt"],"created_at":"2026-02-06T00:34:58.115Z","updated_at":"2026-02-06T00:34:58.675Z","avatar_url":"https://github.com/jericks.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Github Action](https://github.com/jericks/wkg/actions/workflows/build.yml/badge.svg)](https://github.com/jericks/wkg/actions/workflows/build.yml)\n\nWell Known Geometry\n===================\nWell Known Geometry (WKG) is a Java Library that reads and writes Geometries to and from well known text (WKT) and well known binary (WKB).\n\nIt does not use the Java Topology Suite (JTS) because it supports Geometry types that JTS does not yet support.  \n\nIt can parse EWKT or WKT with a spatial reference system identifier. \n\nIt can parse Geometry with XY, XYZ, XYM, or XYZM coordinates.\n\nIt can read and write WKB and [EWKB](http://lists.osgeo.org/pipermail/postgis-devel/2004-December/000710.html).\n\nExample Geometries in WKT:\n\n    POINT (1 1)\n\n    POINT Z (1 2 3)\n\n    POINT M (1 2 3)\n\n    POINT ZM (1 2 3 4)\n\n    SRID=4326;POINT (1 1)\n\n    LINESTRING (101 234,345 567)\n\n    POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10),(20 30, 35 35, 30 20, 20 30))\n\n    MULTIPOINT (10 40, 40 30, 20 20, 30 10)\n\n    MULTIPOINT ((10 40), (40 30), (20 20), (30 10))\n\n    MULTILINESTRING ((0.0 0.0, 1.0 1.0, 1.0 2.0), (2.0 3.0, 3.0 2.0, 5.0 4.0))\n\n    MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), ((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),(30 20, 20 15, 20 25, 30 20)))\n\n    GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))\n\n    CIRCULARSTRING (1.0 1.0, 5.0 5.0, 2.0 2.0)\n\n    COMPOUNDCURVE(CIRCULARSTRING(1 0, 0 1, -1 0), (-1 0, 2 0))\n\n    CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1))\n\n    MULTICURVE ((5.0 5.0, 3.0 5.0, 3.0 3.0, 0.0 3.0), CIRCULARSTRING (0.0 0.0, 2.0 1.0, 2.0 2.0))\n\n    MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1)),((10 10, 14 12, 11 10, 10 10),(11 11, 11.5 11, 11 11.5, 11 11)))\n\n    POLYHEDRALSURFACE (((40 40, 20 45, 45 30, 40 40)),((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),(30 20, 20 15, 20 25, 30 20)))\n\n    TIN (((0 0, 1 0, 0 1, 0 0)), ((0 0, 0 1, 1 1, 0 0)))\n\n    TRIANGLE ((0.0 0.0, 0.0 1.0, 1.0 1.0, 0.0 0.0))\n\nUse\n---\nYou can use the **org.cugos.wkg.WTKReader** to read Geometry from a WKT string.\n\n```java\nimport org.cugos.wkg.WKTReader;\nimport org.cugos.wkg.Point;\n\nString wkt = \"POINT (1.0 2.0)\";\nWKTReader reader = new WKTReader();\nPoint point = (Point) reader.read(wkt);\n```\n\nOnce you have parse a WKT String into a **org.cugos.wkg.Geometry** you can write it back to WKT using the **org.cugos.wkg.WKTWriter**.\n\n```java\nimport org.cugos.wkg.WKTWriter;\nimport org.cugos.wkg.Coordinate;\nimport org.cugos.wkg.Dimension;\nimport org.cugos.wkg.CircularString;\n\nWKTWriter writer = new WKTWriter();\nCircularString cs = new CircularString(Arrays.asList(\n    Coordinate.create2D(1, 1),\n    Coordinate.create2D(5, 5),\n    Coordinate.create2D(2, 2)),\n    Dimension.Two)\n)\nString wkt = writer.write(cs);\n```\nYou can also read and write WKB and EWKB.\n\n```java\nimport org.cugos.wkg.WKTReader;\nimport org.cugos.wkg.Geometry;\n\nimport org.cugos.wkg.WKBWriter;\nimport org.cugos.wkg.WKBReader;\nimport org.cugos.wkg.WKB.Endian;\nimport org.cugos.wkg.WKB.Type;\n\nWKTReader reader = new WKTReader();\nGeometry geometry = reader.read(\"POINT (2 4)\");\n\nWKBWriter writer = new WKBWriter(Type.WKB, Endian.Big);\nbyte[] wkb = wkb.write(geometry);\n\nWKBReader wkbReader = new WKBReader();\nGeometry point = wkb.read(wkb);\n```\n\nYou can also read and write GeoJSON.\n\n```java\nimport org.cugos.wkg.GeoJSONReader;\nimport org.cugos.wkg.GeoJSONWriter;\nimport org.cugos.wkg.Geometry;\n\nGeoJSONReader reader = new GeoJSONReader();\nGeometry point = reader.read(\"{\\\"type\\\": \\\"Point\\\", \\\"coordinates\\\": [122.34, -43.56]}\");\n\nGeoJSONWriter writer = new GeoJSONWriter();\nString geoJSON = writer.write(point);\n```\n\nLicence\n-------\nWell Known Geometry is open source and licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjericks%2Fwkg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjericks%2Fwkg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjericks%2Fwkg/lists"}