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.