geobase 1.4.0-dev.0 geobase: ^1.4.0-dev.0 copied to clipboard
Geospatial data, geometry, geodesy, projections, tiling schemes, and vector formats (GeoJSON, WKT, WKB).
1.4.0 #
⚠️ NOTE: Version 1.4.0 currently under development (1.4.0-dev.0).
🧩 Features:
1.3.0 #
✨ New (2024-07-26): The stable version 1.3.0 with centroid, polylabel, point-in-polygon and other cartesian 2D calculations enhanced - read more!
🧩 Features:
- Add visual center point calculations for polygons #237
- Centroid2D as available from sub package geometric #240
- Add point-in-polygon function #236
- Add distance-to-from-point function #238
🛠 Maintenance:
- Add dependency on the
collections
package (forPriorityQueue
). - New sub package for cartesian calculations #239
1.2.0 #
✨ New (2024-05-26): The new documentation website (geospatial.navibyte.dev) for the geobase package documentation published along with the stable version 1.2.0.
🛠 Refactoring:
No functional changes on classes and functions, but major changes on documentation with the publication of the new docs website.
1.1.0 #
✨ New (2024-04-22): Support for Newline-delimited GeoJSON, EWKT and EWKB added. Check out the blog post.
🧩 Features:
- Enhanced coordinate value output for positions and text data formats #98
- Add decodeHex and toBytesHex to geometry objects and builders #227
- Add EWKB encoding and decoding support on geobase #165
- Add EWKT support
- Support for GeoJSON Text Sequences
- Centroid for all geometry objects #223
- Factories to create multi geometries from geometry lists #229
- Item accessor operator and length in geometry and feature collections #230
- True dimensionality for geometry #231
1.0.2 #
🧩 Features:
- Add Extended WKB or EWKB support #224
- Support decoding also EWKB data (no support for accessing an optional srid).
- These changes on WKB decoder internal logic without any library API changes.
- Quite extensive tests.
- Encoding EWKB data not yet implemented (see #165, coming in future version).
1.0.1 #
🐛 Bugs fixed:
🛠 Maintenance:
- Adding trailing commas to avoid "Missing a required trailing comma" message.
- Small documentation fixes.
1.0.0 #
✨ New (2023-10): The stable version 1.0.0 is now ready. See also the article Geospatial tools for Dart - version 1.0 published at Medium.
⚠️ Breaking changes:
- Remove previous deprecations for geobase 1.0.0 #207
- Restructure abstract base classes Positionable and Bounded #213
- Change signature of TransformPosition typedef #216
🧩 Features:
- Handle the special case of bbox or geometries spanning the anti-meridian (longitude 180 degrees) #185
- Merge and split on Box #211
- PositionScheme for generic, geographic and projected position data #214
- Add basic geometry calculation functions #191
- Operators in Position, Box and PositionSeries #215
- Transform and filter positions and position series #218
- Position element manipulation in PositionSeries #219
- Enum for dimensionality or topological dimension #220
🛠 Refactoring:
- Normalize longitude with inclusive limit on east 180 degrees #210
- Move Bounded to coordinates and implement it by PositionSeries #212
- Restructure codes and constants sub packages #221
🚥 Tests:
0.6.0 #
✨ New (2023-09): Optimizing data structures (Position, PositionSeries, Box) used by simple geometries. Fixes, tests and documentation.
🧩 Features:
- Add copyWith (and map) methods to coordinate, meta, feature and geometry classes #189
- Populating and unpopulating bounds in geometries and feature objects #197
- Testing feature and geometry equality #188
- Factories on Position and Box to create from double arrays #199
- Redesigned PositionData supporting positions from coordinate value array and position objects #200
- Coordinates using data structures from typed data #203
- Position from subview of coordinate value array as doubles #204
- PositionSeries and geometries with reversed positions #205
- Get a subseries of positions in PositionSeries #206
⚠️ Breaking changes:
- Allow a position stored as "Position" in Point, and a bounding box as "Box" in Geometry classes #192
- Simplify Feature and FeatureCollection types #195
- Remove deprecated types in geobase version 0.6.0 #194
- Consistent crs and trs references in meta classes #196
- Deprecate PositionArray, PositionCoords and BoxCoords #201
- Refactor SimpleGeometryContent #202
🛠 Refactoring:
- isEmptyByGeometry on Bounded (and feature objects too, not only geometries)
🛠 Maintenance:
- PositionArray, PositionCoords and BoxCoords moved from vector_data to vector (and later deprecated by #201).
- Enhanced class documentation and tests.
0.5.1 #
Small document fixes (readme links to assets), no code changes.
0.5.0 #
✨ New (2023-07): spherical geodesy functions (distance, bearing, destination point, etc.) for great circle and rhumb line paths.
⚠️ Breaking changes:
- The
WkbConf
class removed, addedbuildEmptyGeometries
for WKB decoder. Position
andBox
: tolerance type fromnum?
todouble
(see #146).- Remove inheritance of Scalable2i from Projected #183
Measurable
abstract class removed,isMeasured
defined inPositionable
.- Coordinate values as doubles instead of num #186
🧩 Features:
- Add common geospatial and geodesy functions #106
- Add parse and format functions for dms representations of degrees #173
- Axis order information of coordinate reference systems #178
- GeoJSON output for non-default coordinate reference systems #179
- WKT decoder on geobase #159
- Consistent equals, equals2D, equals3D (and equalsBy) for coordinates, geometries and features #146
- Geometry objects instantiated from instances or iterables of Position objects #171
- Alternative logics to resolve axis order #182
- Handle explicit and implicit bounds in geometries and features on geobase #141
- Add project method for Position class #184
- Project bounding box #96
🛠 Refactoring:
- Enforce "geometry" under "Feature" when encoding GeoJSON text output #91
- Deprecate XY, XYZ, XYM, XYZM, LonLat, LonLatElev, LonLatM, LonLatElevM special classes extending PositionCoords - to be removed for version 1.0 of the package.
🐛 Bugs fixed:
🛠 Maintenance:
- Removed extra internal export files and made internal imports more excplicit.
✍️ In-progress:
- Geographic string representations (DMS) enhancements #176
- DMS lat/lon representatio default separator changed.
0.4.2 #
📚 Documentation updates:
- Readme enhanced with multiple class diagrams.
0.4.1 #
📚 Documentation updates
- An introduction chapter for the readme.
🛠 Maintenance:
- The SDK constraint updated from '>=2.17.0 <3.0.0' to '>=2.17.0 <4.0.0'.
0.4.0 #
0.3.2 #
0.3.1 #
📚 Small documentation updates. Also a link to the Geospatial demos for Dart repository.
0.3.0 #
✨ New: Data structures for simple geometries, features and feature collections. ✨ New: Support for Well-known binary (WKB). Text and binary data formats, encodings and content interfaces also redesigned.
⚠️ Breaking changes:
- Content interfaces, content encoders and text formats redesigned
- Rename writers and content interfaces to generalize #127
- Geometry content written with more specific methods #128
- Allow coordinate value arrays along with position arrays on content interfaces #129
- Simplify Coords enum #130
- Type changes on projections and adapters #151
- Move "basic transforms" from geobase to geocore #152
🧩 Features:
- Combine writers and parsers for formats (GeoJSON, WKT) consistently #125
- Add WKB encoding/decoding support #115
- Text and Binary outputs on writers #126
- Text and Binary outputs on decoders #132
- Coordinate order on box and position consistently #134
- Positions as iterable of coordinate values on geobase #136
- PositionData access (on lists or buffers) #137
- new mini library "transforms" and "projections"
- Simple geometry data structures on geobase #133
- Feature data structures on geobase #138
- GeoJSON text decoder building new geometry and feature data structures on geobase #139(https://github.com/navibyte/geospatial/issues/139)
- Equals, hashCode and toString for geometries and features on geobase #143
- Encode / write methods directly from geometry and feature classes on geobase #144
- Decode GeoJSON and build data structures using new data structures by geobase #140
- Handle explicit and implicit bounds in geometries and features on geobase
- Handle projections and transforms of geometries and features on geobase #142
🛠 Refactoring:
- Optimize reading from iterable of coordinate values #131
- Feature properties and data maps as Map<String, dynamic> instead of Map<String, Object?> #147
- Refactor fromJson / toJson methods on model classes #150
🛠 Maintenance:
- Lint rules without old strong mode, but with new "stricter type checks" #148
- Mark internal classes with @internal #149
📚 Documentation
0.2.1 #
🐛 Bugs fixed:
0.2.0 #
✨ New: Tiling schemes and tile matrix sets (web mercator, global geodetic). Also other improvements on coordinates, and refactorings on the code structure.
🧩 Features:
- Mini-libraries for geobase #109
- Conversion between WGS84 (lon-lat) and Web Mercator Quad tile matrix set #57
- MapPoint2i renamed to ScalableXY, and implementing Projected and Scalable #116
- Use OGC specified screen pixel size / ppi when calculating scale denominator #119
- Add World CRS84 TileMatrixSet #114
- Add zoomIn, zoomOut and zoomOut to Scalable2i #121
🛠 Maintenance:
0.1.1 #
0.1.0 #
Initial version with some code originating from geocore
package:
- 🔢 enums for geospatial coordinate and geometry types
- 🌐 geographic positions and bounding boxes (longitude-latitude-elevation)
- 🗺️ projected positions and bounding boxes (cartesian XYZ)
- 🏗️ coordinate transformations and projections (initial support)
- 📅 temporal data structures (instant, interval)
- 📃 geospatial data writers for features, geometries, coordinates, properties:
- 🌎 supported formats: GeoJSON
- 📃 geospatial data writers for geometries and coordinates:
- 🪧 supported formats: WKT
🧩 Features:
- Separate some common features of geocore to separate common package #86
- Base interface for bounding boxes compatible with RFC7946 #87
- Separate basic point properties as position interface #84
- Formatting to text on Point (and other geometries) more flexible #81
- Coordinate types enhanced #92
- Coordinate value accessors on position classes #94
- Equality and hashcode for (Geo)Position and (Geo)Box classes #89
- Generalize and move project and transform from geocore to geobase #95
- Intersects bounds generalized on geobase #97
- Renewed GeoExtent with spatial and temporal parts #99
🛠 Maintenance: