Bryan Housel
7c918ba161
Allow Relation.replaceMember to optionally preserve duplicates
...
(closes #4696 )
2018-01-18 16:52:23 -05:00
Bryan Housel
be46e85ec0
Move insert way pairing code from osmJoinWays to actionAddMember
...
(tests for actionAddMember now passing!)
2018-01-16 17:41:14 -05:00
Bryan Housel
221158e918
WIP: Add insertHint to actionAddMember, actionSplit
2018-01-15 23:13:59 -05:00
Bryan Housel
03fa6e7be9
Add tryInsert option to osmJoinWays
2018-01-15 22:02:43 -05:00
Bryan Housel
0382ce7d4b
Updated function doc
2018-01-14 21:45:25 -05:00
Bryan Housel
8dbb6eb20c
Return reversal actions performed by osmJoinWays
...
(see #4688 )
2018-01-13 01:45:46 -05:00
Bryan Housel
0fd801d750
Prefer to join member ways in a way that preserves their order
...
(re #4589 )
Strongly prefer to generate a forward path that preserves the order
of the members array. For multipolygons and most relations, member
order does not matter - but for routes, it does. If we started this
sequence backwards (i.e. next member way attaches to the start node
and not the end node), reverse the initial way before continuing.
2018-01-12 17:23:56 -05:00
Bryan Housel
c908807f64
Render oneway=alternating, oneway=reversible with dual arrows
...
(closes #4291 )
2018-01-04 13:40:49 -05:00
Bryan Housel
9f1b71bb7e
Add support for junction=circular (same as junction=roundabout)
...
(closes #4637 )
2018-01-02 13:27:11 -05:00
Bryan Housel
96afbbd785
Refactor vector math functions from geo.js to vector.js
2017-12-28 01:08:11 -05:00
Bryan Housel
2e2b037e36
Move a bunch of commonly used vector and projection math functions into geo
...
- geoVecAdd
- geoVecSubtract
- geoVecScale
- geoZoomToScale
- geoScaleToZoom
2017-12-18 15:05:42 -05:00
Bryan Housel
2edbcc4b82
Match any *:direction key, rather than hardcoding a list
2017-12-11 15:17:17 -05:00
Bryan Housel
ee3083b113
Support rendering camera:direction
2017-12-11 11:46:11 -05:00
Bryan Housel
8e19474293
Render directional points (e.g. benches, cameras, signs) as vertices
2017-12-11 10:48:04 -05:00
Bryan Housel
34c98b94e6
Move directions code from vertices to node.js
2017-12-09 12:53:08 -05:00
Bryan Housel
855c112ae0
Convert lodah-es and d3 to named imports for osm
2017-09-25 14:14:49 -04:00
Bryan Housel
4904b7a253
Recognize more kinds of concrete surface as "paved"
2017-08-10 11:11:54 -04:00
Bryan Housel
8de3429f2b
Fix misspelling
2017-08-06 23:59:16 -04:00
Bryan Housel
10659505e2
Add code to treat a few special tags as areas instead of lines
...
even in the absense of a proper `area=yes` or `areaKeys` tag.
(closes #4194 )
2017-08-06 23:39:58 -04:00
Bryan Housel
89013627fb
Don't consider untagged multipolygons as old multipolygons
...
Also add a lot of old-style multipolygon tests
(closes #4009 )
2017-05-04 12:16:04 -04:00
Bryan Housel
795fe29cdd
Only show connected vertex if it connects an interesting line
2017-04-26 00:34:48 -04:00
Bryan Housel
f92320c166
Ignore uninteresting tags in old-style multipolygon code
2017-04-21 09:40:05 -04:00
Bryan Housel
af757d31be
General usability improvements
...
* Reevaluate all featuers stroke widths for shadow, casing, stroke
* Shadow width is important to make sure all features are easily clickable
* Casing width is important to see oneway arrows
* Make sure all line styles have normal and low-zoom variants
* Show directional arrows for all waterway types
2017-03-16 16:16:35 -04:00
Bryan Housel
1a8cfcc8b1
Changeset refactor
...
(closes #2633 )
* move osmChangeJXON from osm service to osmChangeset
* cleanup putChangeset for code clarity
* adjust params for callbacks (pass changeset around instead of changeset_id)
* add commit.reset() to reset changeset object after successful save
* improve checks for changeset tags (trim whitespace, etc)
2017-03-15 11:03:43 -04:00
Bryan Housel
f783fe4942
Create osmChangeset object, inherit from osmEntity
2017-03-11 01:12:37 -05:00
Bryan Housel
8ecff8b8bc
Add osmNode#isConnected
...
This is used to draw vertices
* where multiple parent ways meet
* where a single way self intersects (but not the closing node of a loop)
We were using Graph#isShared or osmNode#isIntersection, but this is slightly
different to handle self-intersecting ways.
2017-01-23 23:44:04 -05:00
Bryan Housel
04971478cb
Add osmNode#isEndpoint
2017-01-23 21:03:34 -05:00
Bryan Housel
ec2c2e6612
Ensure isDegenerate can be called for all entities
2017-01-23 14:17:41 -05:00
Bryan Housel
f109efda7b
Fix close() for single node ways
2017-01-12 15:56:46 +05:30
Bryan Housel
73e27c9657
Now that updateNode preserves circularity, provide close/unclose functions
...
This lets us break closed ways at their connecting node in the few situations where
we actually want that behavior (disconnect action for circular non-area ways)
2017-01-09 19:41:38 -05:00
Bryan Housel
8676dd6e4c
Changes to removeNode and add tests
2017-01-09 18:38:28 -05:00
Bryan Housel
7b86afc9de
Changes to replaceNode and add tests, also stricter isClosed
2017-01-09 18:16:30 -05:00
Bryan Housel
f510038791
Changes to updateNode and add tests
2017-01-09 17:33:46 -05:00
Bryan Housel
f1cdde0f92
Changes to addNode and add tests
2017-01-09 17:33:26 -05:00
slhh
7817d6dff1
Prevent duplicate consecutive nodes in addNode, updateNode, and
...
replaceNode, and add some comments.
2016-12-24 18:32:28 +01:00
Bryan Housel
722eb3ae4b
perf: call geoPolygonIntersectsPolygon monomorphically to avoid deopts
2016-11-10 11:17:28 -05:00
Bryan Housel
b07bf8eaa2
Extract lane parsing code from way.js into lanes.js
2016-10-12 00:10:46 -04:00
Bryan Housel
f50e80d0b5
Refactor Intersection, Multipolygon from geo to osm
2016-10-11 23:09:27 -04:00
Bryan Housel
07fa5fcc34
Refactor Entity, Node, Relation, Tags, Way from core to osm
2016-10-11 22:41:24 -04:00