Commit Graph

39 Commits

Author SHA1 Message Date
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