42 Commits

Author SHA1 Message Date
Chaitanya Kadu
552c6b6148 preserve step_count/… while joining ways (#10926)
* preserve the sum of certain tags (`step_count`, `parking:*:capacity`) during _join_ operation
* preserve total value of `parking:*:capacity` tags during _split_ operation by distributing it proportionally to the resulting ways
* the abstract osm entity now accepts a list of tags to override during the merging, but otherwise is agnostic about how tags can be merged: the concrete merging resolution might depend on the concrete action that was performed
2025-04-17 14:13:53 +02:00
Kyℓe Hensel
ef88e1c7ca fix destination_sign relations not updated when splitting a way (#10646) 2025-02-17 11:46:42 +01:00
Martin Raifer
f3a985f78b ways with more than 2000 nodes: prevent lockup and provide validator-fix (#8808)
* add validation & fix for way vertices limit imposed by OSM API (try to choose splitting locations at existing intersection vertices if possible)
* fix splitting of closed ways at two or more nodes:
  this bug resulted sometimes in one extra split point in the result, or one of the split  vertices to be left unsplit
2025-02-11 20:08:38 +01:00
Martin Raifer
f89beef46d add a few more test cases: split carriageway route; route with alternate 2024-03-05 17:19:45 +01:00
Martin Raifer
296ce859cf allow splitting of closed roundabout for certain rel types 2024-03-05 14:23:02 +01:00
Martin Raifer
11dfbe804c fix splitting of (route) relation member ways
instead of fully re-sorting the whole relation every time a member is split, perform a local operation: This works under the assumption that the relation is already sorted properly. The new way is inserted into the relation before or after the existing member, depending on how the old/new way connect to their neighboring members.

for cases where two ways form a loop, a additional look-ahead is implemented to disambiguate the order
2024-03-04 19:02:31 +01:00
Martin Raifer
97442403cf drop validator which checks for old style multipolygons
these have long been [fixed](https://blog.jochentopf.com/2017-08-28-polygon-fixing-effort-concluded.html) in OSM

see wiki: https://wiki.openstreetmap.org/wiki/Old_style_multipolygons
2024-02-29 13:28:22 +01:00
Kyℓe Hensel
f7cbdfb9e5 fix incorrect earth radius constants (#9793) 2023-08-02 18:13:49 +02:00
Thomas Petillon
3ff06f9045 Fix relation handling on way split
Depending on which way is the longest, the new way is inserted into the
relation before the existing one. This case must be explicitly handled
for the relation to remain correct.
2021-12-06 21:25:23 +01:00
Quincy Morgan
5ddcfb0ced Add parameter to specify which way should keep the history when splitting ways (re: #7795)
Fix code tests
2020-09-14 11:27:20 -04:00
Bryan Housel
a333a341ec Don't require areaKeys to be setup for actionSplit tests to pass 2020-02-04 15:45:11 -05:00
Bryan Housel
e19bcb77d5 Require init() call before coreContext starts doing things
(closes #7304)
2020-01-29 19:27:12 -05:00
Bryan Housel
a72865e4d8 Treat anything with a from/via/to like a restriction
(closes #6221)

Applies to actions like splitting, connecting, extracting a via node, etc
2019-04-29 21:58:10 -04:00
ockendenjo
cec442012a Add test for route going round loop in other direction 2018-12-18 22:09:20 +00:00
ockendenjo
8aaa387d4e Add tests for hat route splitting #4876 2018-12-18 21:39:35 +00:00
Bryan Housel
f8bbb995ac Properly split ways which are members of a via way turn restriction
(closes #4861)
2018-03-10 15:20:20 -05:00
Bryan Housel
be9bbd9271 Add tests for member ordering: node, way, relation 2018-01-18 15:21:38 -05:00
Bryan Housel
d6afd399fc Revised and expanded actionSplit tests to cover route splitting 2018-01-18 14:34:34 -05:00
Bryan Housel
03fa6e7be9 Add tryInsert option to osmJoinWays 2018-01-15 22:02:43 -05:00
Bryan Housel
07262fa711 Add tests for #4589 2018-01-09 23:57:44 -05:00
Bryan Housel
748abdb950 Code formatting 2018-01-09 17:46:15 -05:00
Bryan Housel
b3842d97f4 Remove lodash from the test suite
(closes #4378)
2017-10-18 14:37:39 -04:00
Bryan Housel
01bfc67ea5 After splitting a way, update all matching relation members
(closes #4140)
2017-07-10 18:35:30 -04:00
Bryan Housel
9b7d79a3fe Use live bound object for presets object, change context.presets() getter 2016-11-14 15:44:02 -05:00
Bryan Housel
f800e5afbc Remove unnecessary window parameter to Context 2016-11-10 15:19:03 -05:00
Bryan Housel
87950fd472 Fix lib export, flatten names in tests and docs 2016-10-04 21:56:09 -04:00
Bryan Housel
7ca6d06254 Replace iD global with iD.Context() module (#3254) 2016-07-19 10:15:32 -04:00
Kushan Joshi
4609282e04 Making spec/actions lint free 2016-06-14 16:34:52 +05:30
Kushan Joshi
6ef52256f3 Migrating to lodash v4 2016-05-17 12:37:25 +05:30
Sajjad Anwar
dffeedffc9 Moved area-keys to data, and process it during runtime 2014-10-23 15:52:29 -07:00
John Firebaugh
14bfc52e33 Remove repetition of entity IDs in tests
There were several places where the key and entity id
didn't match up.
2013-10-31 15:57:47 -07:00
John Firebaugh
16d3346147 Split only the line of a node shared by a line and an area 2013-09-30 16:54:03 -07:00
John Firebaugh
011dc140a3 Handle multipolygon corner case when splitting (fixes #1799) 2013-09-30 16:17:16 -07:00
tyr
6afe3adfbe more clever splitting of closed ways
if a way is closed, iD needs to choose a second node to
split the way at.

This algorithm looks for a node that is both far away from
the initial node in terms of way segment length and nearby
in terms of beeline-distance. This assures that areas get
split on the most "natural" points (independent of the number
of nodes).

For example: bone-shaped areas get split across their waist-
line, circles across the diameter.
2013-09-29 07:43:20 -07:00
John Firebaugh
af7d003b88 Don't overload constructor parameters 2013-04-01 15:58:10 -07:00
John Firebaugh
93dd4a2658 Multiselect vertex/way to control splitting 2013-03-29 15:32:19 -07:00
John Firebaugh
2bd6178f07 Split on self-intersections 2013-03-29 15:32:19 -07:00
John Firebaugh
bbd4cb80b6 Split ways at intersections (fixes #750) 2013-03-29 15:32:19 -07:00
John Firebaugh
b1daf85cfd Tooltips for disabled operations (fixes #573) 2013-03-29 12:29:07 -07:00
John Firebaugh
f1079a644a Fix relation role in Split (#694) 2013-02-08 20:44:14 -08:00
John Firebaugh
0af51a0ef6 Improvements to Split
* Split a closed way at selected and antipode point (fixes #651)
* Split an area into a multipolygon (fixes #572)
2013-02-06 16:00:19 -08:00
John Firebaugh
c86792a77b SplitWay -> Split 2013-02-01 17:31:32 -05:00