Skip to content

Releases: clarisma/geodesk-py

Version 0.2.1

14 Nov 11:19
Compare
Choose a tag to compare

Internal Changes

  • Migration of codebase to GeoDesk for C++

Version 0.2

17 Sep 11:12
Compare
Choose a tag to compare

Breaking changes

  • Features: Renamed filter methods (to match the naming conventions in
    GeoDesk for Java):

    • contains() -> containing()

    • intersects() -> intersecting()

    • crosses() -> crossing()

Enhancements

  • Support for Python 3.13

  • Support for ARM-based MacOS (experimental)

Bug fixes

  • within now correctly excludes areas whose edges lie on
    the test area's boundary, yet are not inside the test area (#57)

  • Removed dependency on pre-Python 3.13 API (#59)

  • Formatting of numeric values in GeoJSON (#60)

  • Fixed floating point conversion for strings that contain
    a partially-valid number

  • fixed TagIterator regression

Version 0.1.11

28 Aug 08:47
Compare
Choose a tag to compare

Bug fixes

  • Fixed opcode generation for complex queries (#53)

Other

  • Dropped support for Python 3.7

Version 0.1.10

03 Apr 13:24
Compare
Choose a tag to compare

Enhancements

  • New geometric filters: max_area(), min_area(), max_length(), min_length()

Other

  • Upgraded dependencies to GEOS 3.11.3 / Shapely 2.0.3

Version 0.1.9

29 Feb 14:12
Compare
Choose a tag to compare

Performance Improvements

  • parents_of() for nodes is now significantly faster

Bug fixes

  • Queries with negative clauses (e.g. [!k], [k!=v]) now work correctly (#13 & #52)

Version 0.1.8

21 Feb 10:33
Compare
Choose a tag to compare

Enhancements

  • Implemented type hints for improved autocomplete in IDEs

  • lonlat() and latlon() can now create lists of coordinates

  • Coordinate() and Box() clamp latitude to valid range

Bug fixes

  • Fixed regex matching of tag values (#48)

Version 0.1.7

03 Feb 14:21
Compare
Choose a tag to compare

Enhancements

  • Multiple tag queries can now be combined (#45)

  • Topological filters can now be applied to empty sets

Bug fixes

  • parents_of() implemented

  • nodes_of() returns empty set for anonymous nodes

  • Fixed crash when a GOQL query is applied to an empty set (#46)

Version 0.1.6

23 Jan 11:57
Compare
Choose a tag to compare

Enhancements

  • from_mercator() support for shapes (#41)

  • lon and lat are rounded to 7 digits, conforming to the default precision used by OSM (for Coordinate and Feature objects)

  • Enhanced support for Features metadata:

    • indexed_keys
    • strings
    • Tile.size

Bug fixes

  • nodes.parents now returns ways, not just relations (#43)

  • intersects() now supports anonymous nodes (#44)

  • tags now returns empty tags for anonymous nodes instead of None

Version 0.1.5

17 Jan 10:45
Compare
Choose a tag to compare

Enhancements

  • Formatters now support the following attributes:

    • id
    • linewise
    • precision
    • pretty
  • Line-by-line GeoJSON is now supported -- .geojsonl or .geojson(linewise=True) (#3)

  • IDs in GeoJSON can now be customized by providing a formatter function via id (#37 partial)

  • GeoJSON is now compact by default; for more human-readable (but bulkier) output, use .geojson(pretty=True)

  • Support for geometry collections

  • Support for anonymous nodes -- e.g. ways.nodes.geojson (#36)

  • __repr__() now prints the contents of a Formatter

Bug fixes

  • Area-ways are now in correct format for GeoJSON and WKT (#34)

  • Formatter: Fixed coordinate rounding bug

  • area, length and shape can now be used with feature sets that contain anonymous nodes

Version 0.1.4

10 Jan 11:12
Compare
Choose a tag to compare

Enhancements

  • within(): A polygon is now considered to be within itself, which conforms
    to the OGC definition

Performance Improvements

  • Spatial filters that apply to large areas are now 4x to 30x faster,
    thanks to optimizations that short-cut relational tests

Bug fixes

  • Features.__contains__() now correctly uses filter bboxes

  • intersects() properly detects edge case where a candidate polygon
    contains only a single polygon of a test multi-polygon (#31)

  • Fixed a scaling bug that caused areas to be calculated incorrectly above 65
    degrees latitude (#20 & #32)