Geodesk

Latest version: v0.2.1

Safety actively analyzes 685525 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.2.1

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

0.2.0

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](https://github.com/clarisma/geodesk/blob/main/doc/migrating.md) 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.

0.1.10

Bug Fixes

- Fixed `Box.metersAroundLonLat()` (95, thanks tobinam!)

- `gol query`: CSV output fills empty cells to maintain proper column structure (clarisma/gol-tool108)

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.

0.1.9

Bug Fixes

- `OsmPbfReader` now shuts down cleanly when reading a corrupt source file (clarisma/gol-tool104) -- 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-tool105)
*Note: We recommend re-building any GOL with more than 16K tiles*

Other Changes

- `MapMaker` now uses the standard OSM Carto style by default (clarisma/geodesk-py17)

0.1.8

Bug Fixes

- `query`: Newlines in tag values are now properly escaped in GeoJSON output, as well as other output formats (clarisma/gol-tool93; clarisma/gol-tool101)

Other

- Upgraded JUnit from version 4.12 to 4.13.2

0.1.7

Enhancements

- `FeatureLibrary` now supports `AutoCloseable` (clarisma/geodesk85)

Bug Fixes

- `Tags.toMap()` returns an empty collection instead of `null` for features without tags (clarisma/geodesk84)

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

- `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-tool100)

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.