Skip to content

Releases: basonjui/hexagon-grid-system

v1.1.3 - Hexagon Grid System

09 Jul 18:39
Compare
Choose a tag to compare

Full Changelog: v1.1.2...v1.1.3

MAJOR

GeometryApi is now renamed to Hexagon Grid System

  • Renamed main packages
  • Renamed test packages
  • Renamed App.java -> Api.java
  • Refactored references of "geometryapi" to "hexagongrid"
  • Update POM version to v1.1.3

v1.1.2 - Supports writing Tessellation to PostgreSQL (PATCHED)

09 Jul 17:34
Compare
Choose a tag to compare

Full Changelog: v1.1.1...v1.1.2

BUG FIX for endpoint /database/tessellation causing error when run with Maven

  • Fix dependency issue caused by maven-shade-plugin
  • Add port config option for Spark

v1.0.1 - Remove SparkApplication (unused) & upgrade/clean up Maven POM

06 Jun 20:02
0cdd061
Compare
Choose a tag to compare

What's Changed

  • [REFACTOR] Remove SparkApplication; Clean pom.xml; Some code optimization by @basonjui in #15

Full Changelog: v1.0.0...v1.0.1

v1.0.0 - GeometryApi v1 first release: major bug fixes, optimizations, and changes

05 Jun 17:42
3a01090
Compare
Choose a tag to compare

What's Changed

  • Bump postgresql from 42.5.0 to 42.5.1 by @dependabot in #8
  • Bump spark-core_2.12 from 3.3.0 to 3.4.0 by @dependabot in #9
  • Merge branch 'develop' to 'master' by @basonjui in #10
  • [MAJOR CHANGE] upgraded pom.xml to Java 17; refactor many packages in geometryapi by @basonjui in #11
  • [PATCH] Bug fixes and refactors by @basonjui in #12
  • Update geometryapi to version 1.0.0 by @basonjui in #13
  • Prepare for v1.0.0 release by @basonjui in #14

Full Changelog: v0.7.7...v1.0.0

v0.7.7 - PostgresJDBC (stable)

26 Sep 12:50
Compare
Choose a tag to compare

v0.7.6 - Connect, query, & batch insert with PostgresJDBC

21 Sep 10:52
Compare
Choose a tag to compare

v0.7.4 - optimize heap memory usage

31 Aug 11:45
Compare
Choose a tag to compare

Generally, the current algorithm to generate a tessellation is quite... bad (even after this release).

We generate and store all the hexagons in heaps until all hexagons are generated. Even worse, the API returns the hexagons in GeoJSON format, which is extremely inefficient in terms of data transfer.

So a bunch of things were being done, but the most impactful optimization was to stop generating the GeoJSON and insert the hexagons into a PostgreSQL database using JDBC.

Full Changelog: v0.7.3...v0.7.4

v0.7.3 - optimized Tessellation

22 Aug 11:24
Compare
Choose a tag to compare

What's Changed

  • Optimize Tessellation algorithm: reduce required rings to produce grid map by @basonjui in #5
  • Clean up unused code by @basonjui in #6

Full Changelog: v0.7.2...v0.7.3

v0.6.1.1 - GeoJSON standards conforming

15 Jun 03:36
Compare
Choose a tag to compare

v0.6.1.1 release notes

After reviewing GeoJSON standards from the official GeoJSON specifications, I noticed that there were a few problems with v0.6 release:

  1. GeoJSON coordinates were not correctly implemented
    "The order of elements must follow x, y, z order (easting, northing, altitude for coordinates in a projected coordinate reference system, or longitude, latitude, altitude for coordinates in a geographic coordinate reference system)." - geojson.org, positions.

The correct coordinates value in GeoJSON is: longitude, latitude, but was implemented as latitude, longitude.

  1. GeoJSON namings were confusing (methods & variables)
    Self-explanatory, basically, GeoJSON uses a lot of nested arrays for Coordinates, and without a standard, they became incredibly confusing and meaningless.
    So, instead, I used a new naming system:
  • Follow GeoJSON standardized terms for Geometry object (i.e. Positions)
  • Descriptive variables names for GeoJSON data structure (i.e. ArrayArrayPositions - Array of Array of Positions).
  1. Comments to explain GeoJSON terms

v0.6 release notes

This is a major release, it is an initial version of a ready-to-scale local API that computes Hexagon's coordinates and return data in GeoJSON format.

API input

The /api/hexagon route takes in the following parameters (sample geographic coordinates, radius is randomed though):

{"latitude": 108.28125, "longitude": 65.94647177615738, "radius": 2}

API output

It then parse the JSON data into the program, then computes a Hexagon's coordinates of each vertex and returns all the vertices in a full valid GeoJSON data output:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              107.28125,
              64.2144209685885
            ],
            [
              109.28125,
              64.2144209685885
            ],
            [
              110.28125,
              65.94647177615738
            ],
            [
              109.28125,
              67.67852258372626
            ],
            [
              107.28125,
              67.67852258372626
            ],
            [
              106.28125,
              65.94647177615738
            ],
            [
              107.28125,
              64.2144209685885
            ]
          ]
        ]
      },
      "properties": {}
    }
  ]
}

You can test the above generated hexagon data output on https://geojson.io/.