Releases: jillesvangurp/geogeometry
GeometryType.clazz() & GeoGeometry.headingFromTwoPoints
- new
clazz()
function onGeometryType
to point at the correct Geometry implementation class. Useful for writing custom serializer/deserializer logic for json parsers that don't know what to do with theGeometry
interface. - new
GeoGeometry.headingFromTwoPoints
function that calculates the compass direction a line between two points is headed.
New maven repo: jillesvangurp.com
No functional changes since 3.1.1.
Since that release, this is a kotlin multiplatform distribution with packages for -jvm
and -js
(currently). Unfortunately,
multiplatform does not currently work with jitpack.io
which I use on other projects. 3.1.2-3.1.4 on jitpack don't work unfortunately.
So, as a workaround, I currently distribute jars via my website. To add the repository, add something
like this to your build.gradle.kts
file:
repositories {
mavenCentral()
maven { url = uri("https://www.jillesvangurp.com/maven") }
}
and then add the dependency:
implementation("com.github.jillesvangurp:geogeometry:3.1.5")
Older versions are still available on jitpack. If you are interested,
there's an open bug for this.
Fix jitpack release
Attempt to fix the broken publish step (works fine locally).
Improved multi platform build
More build refactoring. Still trying to iron out some issues with jitpack.io
Multi platform build
Lots of refactoring on the build to enable multiplatform builds. This should still push a jar to jitpack.io but will now also produce a npm package in the build directory (not published currently).
Maintenance release
- refactor build script
- get rid of testng
Geojson model classes & bbox fix
This release addresses a few long standing pain points. And in case you are wondering, I'm getting ready to use this framework after not having worked on this for quite some time. So expect more updates in the next months. I already added a few issues as a 'note to self'. If you want to work on this, let me know.
- We now have geojson model classes. These may be used with your favorite json serialization framework and are awesome for copy pasting stuff to geojson.io. I've also added a few convenient methods for turning sets of geohashes into feature collections, getting a polygon from a bbox, etc. This makes debugging stuff a lot more straightforward. And yes, I'm considering seeing if I can make leaflet and kotlin-js play together for some awesome development tool. Sadly my chronic lack of time is an obstacle for this.
- Don't worry, this library is still cross platform and has no other dependencies than the kotlin std lib and should continue to work on kotlin-native, kotlin-js, and kotlin-jvm. The project I'm currently working on might end up depending on this for a mobile app with cross platform IOS/Android libraries.
- Bounding boxes now follow the geojson conventionn of
[westLongitude,southLatitude,eastLongitude,northLatitude]
. This affects a lot of the algorithms. Let me know if you encounter new bugs. This was a nasty one to fix and forced me to wrap my head around shit I figured out in 2012. - Consequently, readability of a lot of the code has been improved by e.g. relying on extension functions and properties of the type aliases we have.
- This may have a slight impact on runtime performance. However, I've done no bench marking to confirm this. Let me know if you have issues with this.
Minor dependency updates
No functional changes; just did some updates to misc dependencies (mostly test related)
Kotlin Port
- Code ported to Kotlin. I had no other goal with this than to amuse me and to clean up some code. But Kotlin is awesome for code like this.
- Build now uses gradle.
- Introduced GeoJson type aliases and cleaned up a lot of Kotlin related warnings
- Remove runtime dependencies on Java specific packages. My intention is to be able to use this in multi platform kotlin projects. So no more guava, commons-lang or
java.lang
/java.util
dependencies - Should mostly be backwards compatible with Java but beware minor API changes. All the key methods are in companion objects and annotated with
@JvmStatic
which means they look just like they used to from Java. - note. I've not yet cut a release and will probably do some more changes before that happens. Check the legacy-java branch if you need the old 2.x releases.
tag release for jitpack
v2.12 improve and clarify logic for linesCross