github openstreetmap/iD v2.40.0

6 hours ago

📣 Release Highlights

New rendering style for shared bike and foot paths

The new style indicates a way that is designated for bike and foot traffic in cases where we have established tagging for this kind of infrastructure:

  • highway=path: When bicycle+foot=designated are explicitly tagged, the way is displayed in our new, shared infrastructure style.
  • highway=cycleway: When foot=designated is present, the way is displayed in our new, shared infrastructure style (bicycle=designated can, but does not have to be tagged as it is implicit by the highway=cycleway tag)
  • highway=footway: does not change, regardless of the presence of bicycle+foot=designated tags, because there is no established tagging that fits this new style

Dynamic level of detail for created circular objects

This leads to more accurately round geometries for large circular objects like large roundabouts, etc., and at the same time also reduces the previously sometimes slightly excessive number of nodes produced used on small round objects like circular huts, etc.

Fixed and improved tag-cleanup when changing presets

This improves how tags are handled when the preset of an object is changed. The goal is to prevent straggling tags to remain on the OSM object after changing its preset: For example, when a POI changes in the real world from a restaurant to a shop, it does not make sense for the restaurant's cuisine tag to be preserved in the shop POI.1

Now, only tags are preserved that are also valid tags of the newly applied preset. For the example above, general attributes like the address and phone number would be preserved, but restaurant-specific tags like the cuisine or dietary options would be removed.

As this is a relatively big change compared to how iD previously handled tags when changing presets, please report any bugs, inconsistencies or other oddities you notice.

Full Changelog

✨ Usability & Accessibility

  • Render shared bicycle/foot paths with a dedicated colour (#10256, thanks @k-yle)
  • Expand input element of multi-combo fields while typing to fit content (#12169)
  • When searching presets, include presets when the preset label is included in the search input (#12159, thanks @matkoniecz)

✂️ Operations

  • Create fewer points when circularizing small features (and vice versa): the number of vertices in the resulting circle is now dynamic between a 12 and 32 depending on the radius of the circle (instead of always resulting in 19 nodes) (#12139)
  • Correctly split a way on all selected vertices when three or more nodes are selected (#12120)

✅ Validation

  • Treat most aerialways as part of the routable network when checking other ways' connectivity (#9406)
  • Only consider well known tags containing URLs during website validation (#12178, thanks @bhavyaKhatri2703)
  • Sort full issues list by issue type first (instead of only by distance from map center), such that similar issues are always listed next to each other (#9017)
  • For disconnected routable multipolygon areas: report the relation in the validation warning (#12245)

🐛 Bugfixes

  • Fix title of preset search results not updating correctly (#12050, thanks @bhavyaKhatri2703)
  • Prevent duplicate nodes from being created while using spacebar key to draw a way (#12051)
  • Fix user images and upload help text from showing up as duplicates in upload dialog (#12063)
  • Fix some tags automatically deleted when re-selecting the same preset (#12070, thanks @k-yle)
  • Fix crash when a checkbox-field is rendered using a custom (non-yes/no) value (#12078)
  • Fix a bug that caused step_count to be set to NaN when merging features with non-numeric step count values (#12110, thanks @JaiswalShivang)
  • Fix a bug that caused duplicates of new notes to appear when such a note is dragged on the map (#9092)
  • Prevent keyboard shortcuts from triggering an additional input after their action is performed (#9071)
  • Include railway and building features with lifecycle status only in past/future features category (#9058)
  • Disable autocomplete on changeset comment box on mobile Firefox to work around buggy/glitchy behavior of the input field (#9011)
  • Fix crash when trying to delete a single-node way (#9007)
  • Make sure the available options of multi/semi-combo fields are updated properly when a previous tag change caused a change of the feature's preset (#12217)
  • Handle OSM API responses with 200 status code, but a runtime error in the response (#6454)
  • Keep natural=coastline tag on outer way of created multipolygon when combining areas (#11818, thanks @Kaushik4141)
  • Show correct cursor on headings of quality assurance results in the sidebar (#12276, thanks @Quantum-Cucumber)
  • Fix exception when a onewayCheck field is present on a non-way feature (e.g. a ferry route) (#12272)
  • Make sure that disable_features parameter from URL hash is not overwritten by locally cached value from last session
  • Fix feature filter falsely hiding boundary relation members while in dragging mode when other features are hidden (#12267)
  • Make sure long autocomplete-suggestions in input fields do not scroll the input field beyond the cursor location in Firefox

🚀 Presets

  • Standardize tooltips in combo boxes: always show (full) raw tag, don't duplicate the already rendered titles, and show descriptions from wiki/taginfo where available (#12010, thanks @tordans)
  • Use full width for the dropdown box for the values of the access field (#12065)
  • Preserve the order of options when a combo field accepts both static options as well as autosuggestions from taginfo and display additional tag values from taginfo as raw-options only (#12117)
  • When removing tags while changing presets: include all tags associated with localized, multiCombo and directionalCombo fields (#12075, #11696)
  • Preserve all feature tags when changing to a new preset that includes the old preset's primary tags as a field (#12071)

🔨 Development

  • Replace sinon with vitest's built in spy/mock library (#12058)
  • Add type annotations to context.js module (#11589, thanks @k-yle)
  • Drop netlify-cli dependency and run it during CI via npx (#12237)

Footnotes

  1. Note that the previous release already tried to fix this, but had to be reverted due to some bugs in the first implementation. ↩

Don't miss a new iD release

NewReleases is sending notifications on new releases.