geobase 1.0.0-dev.2 geobase: ^1.0.0-dev.2 copied to clipboard
Geospatial data, spherical geodesy, projections, tiling schemes, and vector formats (GeoJSON, WKT, WKB).
1.0.0 #
NOTE: Version 1.0.0 currently under development (1.0.0-dev.2).
⚠️ 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
🛠 Refactoring:
- Normalize longitude with inclusive limit on east 180 degrees #210
- Move Bounded to coordinates and implement it by PositionSeries #212
🚥 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: