Releases: basonjui/hexagon-grid-system
v1.1.3 - Hexagon Grid System
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)
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
What's Changed
Full Changelog: v1.0.0...v1.0.1
v1.0.0 - GeometryApi v1 first release: major bug fixes, optimizations, and changes
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)
Full Changelog: v0.7.6...v0.7.7
v0.7.6 - Connect, query, & batch insert with PostgresJDBC
v0.7.4 - optimize heap memory usage
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
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
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:
- 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
.
- 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).
- 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/.