Commit Graph

23 Commits

Author SHA1 Message Date
John Firebaugh
f8a68c879f Adjust tree for force-rebased entities
Previously, entities that already existed in the rtree prior to the rebase
option would end up duplicated in the tree afterward.

Fixes #2637
2015-05-09 14:38:41 -07:00
Bryan Housel
cb0e8ab66c Initial support for Multi Fetch GET
It will also be much faster to fetch the remote entities in batches
rather than one at a time through LoadEntity.

One bonus/hazard with Multi Fetch GET is that it will get deleted entities
with `visible=false`, rather than returning a HTTP Status Code 410 (Gone).

This will be the only way that we can really do proper undeletion
(Incrementing the current version by 1 is not guaranteed to work.  And
if a way is moved, fetching way/full will tell us whether the childnodes
are part of the way, but not necessarily whether they exist or not.)

We must be careful never to merge deleted entities into the real graph.
e.g, a deleted node will not have a 'loc' attribute, so code that assumes
every node must have a `loc` will be broken.

So because deleted entities are very special, the output from `loadMultiple`
should only be used for conflict resolution for now.
2015-03-03 20:54:09 -05:00
Bryan Housel
1c3d198b96 add force option for rebase to overwrite existing entities
related: openstreetmap/iD#2467
2014-12-04 19:50:32 -05:00
Bryan Housel
b0841c1eda missing memo argument (fixes #2421) 2014-10-23 22:21:17 -04:00
John Firebaugh
5f1e40561a Fix performance regressions in tree.js (fixes #2396) 2014-10-13 16:34:38 -07:00
tyr
b71c98cfca protect against relation loops, part 2. fixes #2096 2014-01-10 11:12:10 +01:00
tyr
2cf4c20a47 don't load parent multiple times into tree when multiple childs are changed
when an action (e.g. moving a way) caused multiple child elements
of the same parent to be changed, their parent was also loaded into
the tree multiple times during `tree.intersects()`.

this fixes #1978
2013-11-19 11:27:29 +01:00
John Firebaugh
ffdeef398d Rewrite tree logic
The main problem with the existing logic was that it
did not update the extents of relations when previously incomplete members were loaded.

It was also overly stateful; the various queues and flags
are no longer required.

Fixes #1928.
Fixes #1540.
2013-10-28 16:57:18 -07:00
John Firebaugh
e0e08115e5 Pass entity array to Tree#rebase 2013-10-28 16:34:08 -07:00
John Firebaugh
6782d9af04 Remove mysterious math 2013-07-22 15:30:09 -07:00
Vladimir Agafonkin
3cedc84c74 fix accidental error 2013-07-21 19:15:13 +03:00
Vladimir Agafonkin
75a5f35a1c use rbush bulk insertion for graph entities 2013-07-21 19:11:36 +03:00
Vladimir Agafonkin
454eecae8f replace RTree with RBush 2013-07-21 17:20:14 +03:00
Ansis Brammanis
a0e8292067 fix tree bug where removes would fail
the width or height of the rtree rectangle created by extentRectangle
would be negative. These rectangles insert ok, and are found by search,
but they cannot be removed.

issue #1370
2013-04-24 19:27:43 -04:00
John Firebaugh
c50c3121d8 Make Graph#entity strict
Use Graph#hasEntity for the previous behavior.
2013-04-24 09:27:37 -07:00
Ansis Brammanis
bf1aaf2172 don't include just created parents in modified 2013-02-27 17:50:42 -05:00
Ansis Brammanis
8e6e860f87 Fix removing from tree 2013-02-19 18:06:18 -05:00
Ansis Brammanis
8c1e0212f9 Fix rebasing and test 2013-02-13 16:08:39 -05:00
Ansis Brammanis
64c8ef626f Add general test for spatial tree 2013-02-13 15:10:48 -05:00
Ansis Brammanis
b80bbc1fbe Add tree test 2013-02-13 14:40:37 -05:00
Ansis Brammanis
9a4d4ab9c5 Retry queued entities after rebase 2013-02-13 14:16:18 -05:00
Ansis Brammanis
9c65e58cc1 Tree handles entities with missing children 2013-02-13 10:23:30 -05:00
Ansis Brammanis
6baf6a6dd4 Move intersection tree to iD.Tree 2013-02-12 18:18:58 -05:00