Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: clarisma/geodesk

Version 2.0.0

29 Sep 12:32

Choose a tag to compare

This release supports Version 2.0 of the Geo-Object Library file format.

Important: GOL 2.0 is incompatible with GOL 1.0. To create GOLs from OSM data, use GOL Tool 2.0 (downloadrepo).

We've prepared a Migration Guide to ensure your upgrade goes smoothly.

Breaking changes

  • Requires GOLs created with GOL Tool 2.0

  • Removed Feature.isPlaceholder() (the concept of placeholder features no longer exists in GOL 2.0)

  • Removed the Filters class (previously deprecated)

  • Removed rarely-used auto-load functionality (resolves #87)

  • Mercator.xFromLon() and Mercator.yFromLat() (and related Mercator functions) now return int instead of double, and throw IllegalArgumentException if longitude or latitude are invalid; valid latitudes that fall outside the Mercator-projection range (+/- ~86 degrees) are clamped (#103)

  • Box.ofWSEN() now also checks and clamps longitude/latitude values (#86)

Enhancements

  • Added ability to open GOLs via Features.open()

  • GOLs can now optionally store IDs for all nodes (#57)

  • Numeric parsing of tag values is now lenient ("55mph" returns 55), matching the behavior of the C++ and Python SDKs (#64)

Performance enhancements

  • Queries are typically 6% faster due to efficiency improvements in the GOL 2.0 file format

Bug fixes

  • Fixed: Parent relation iterator may fail for large GOLs (#80)

Deprecations

  • Opening a GOL via new FeatureLibrary() is deprecated. Use Features.open() instead.

Documentation

Version 1.1.0

05 Aug 09:02

Choose a tag to compare

Enhancements

  • Queries based on a feature's ID (but see documentation for important notes on performance)

Bug fixes

  • Fixed strict-mode Decimal parsing (#102)

Version 1.0.2

26 Mar 16:14

Choose a tag to compare

Performance improvements

  • Improved parallelism to speed up queries on systems with high core count (#96)

Other

  • Switched documentation to Markdown style

Version 0.2.1

17 Sep 12:56

Choose a tag to compare

This release completes the transition to the streamlined API (introduced in 0.2).

Version 0.2

13 Apr 17:21

Choose a tag to compare

This release introduces the streamlined API we've announced in 0.1.10.

Most importantly, we've simplified the type system. OpenStreetMap features are represented as nodes, ways and relations, and GeoDesk has corresponding Node, Way and Relation interfaces, which derive from the Feature supertype. In 0.2, these subtypes still exist as marker interfaces, but their specialized methods have moved to the supertype. This means that all features can simply be treated as a Feature, which removes the need for casting and awkward generics. When working with feature sets, you'll no longer need to declare Features<?> or Features<Node> -- you'll simply use Features.

This change aligns more closely with how users think about OSM data. Most points-of-interest can be modeled as nodes, ways or relations -- for example, a museum could be marked as a single point, a simple polygon (as a closed way) or a building with a courtyard (requiring a multipolygon relation). In those cases where the OSM type matters, use .isNode(), .isWay() or .isRelation() (or type()).

We've prepared a Migration Guide to ensure your upgrade goes smoothly.

Breaking changes

  • The Features interface is no longer generic. Iterating over Features always
    returns Feature objects.

  • The typed methods (memberNodes(), parentRelations(), etc.) have been
    removed. To constrain a type, use members().nodes(), parents().relations(),
    or include the feature type in a query string (members("n"), parents("r")).

  • All classes from com.geodesk.core (such as Box and Heading) have moved to com.geodesk.geom

Enhancements

  • Applying spatial filters is now much simpler. Instead of using the Filters factory class, filters can now be invoked directly on the Features object.

    So instead of

    biotopes.select(Filters.coveredBy(area))

    simply use

    biotopes.coveredBy(area)

    Note that several spatial filter methods have changed names:

    contains() -> containing()
    crosses() -> crossing()
    intersects() -> intersecting()
    overlaps() -> overlapping()
    touches() -> touching()

    These changes make your code read more naturally:

    bridges.crossing(river)
    adminAreas.touching(county)

    This change also resolves the ambiguity concerning contains():

    • Features.contains(Object) checks if the given feature is part of this feature set.
    • Features.containing(Feature) returns the features whose geometry contains the given feature.

Deprecations

  • The Filters factory class has been deprecated and may be removed in future releases.
    The preferred way to use filters is to call the filter methods on Features, as discussed above.

Version 0.1.10

16 Feb 10:48

Choose a tag to compare

Bug Fixes

Deprecations

  • We will introduce a simpler, streamlined API in Version 0.2. Specifically, methods from Node, Way and Relation will migrate to the Feature superclass, eliminating the need for casting and use of awkward generics (Features<?> becomes just Features). The most common filters will be accessible directly from Features (roads.select(crosses(river)) becomes roads.crosses(river)). These changes are part of our broader effort to align the Java and Python toolkits and make it easier for developers to transition between them.

Version 0.1.9

10 Dec 17:08

Choose a tag to compare

Bug Fixes

  • OsmPbfReader now shuts down cleanly when reading a corrupt source file (clarisma/gol-tool#104) -- this bug caused gol build to hang on truncated .osm.pbf files.

  • gol build: Fixed encoding bug that caused access to certain way-nodes to fail (clarisma/gol-tool#105)
    Note: We recommend re-building any GOL with more than 16K tiles

Other Changes

Version 0.1.8

26 Aug 13:20

Choose a tag to compare

Bug Fixes

Other

  • Upgraded JUnit from version 4.12 to 4.13.2

Version 0.1.7

24 Mar 12:26

Choose a tag to compare

Enhancements

  • FeatureLibrary now supports AutoCloseable (#85)

Bug Fixes

  • Tags.toMap() returns an empty collection instead of null for features without tags (#84)

  • build: Fixed bug which caused analysis to fail if none of the strings in a batch meet the minimum string count (clarisma/gol-tool#99)

  • build: Buildcontext.getTileCatalog() explicitly unmaps the metadata segment; an active mapping could prevent the created GOL from closing properly in cases where GC does not run (clarisma/gol-tool#100)

Version 0.1.6

03 Mar 13:03

Choose a tag to compare

Performance Improvements

  • gol build: Building planet-size GOLs completes faster and consumes less storage for temporary files

Bug Fixes