Commit Graph

370 Commits

Author SHA1 Message Date
Dustin Carlino
4ceb190f6c Add a polygon for Redmond/Kirkland 2020-09-27 12:49:21 -07:00
Dustin Carlino
371d26f707
Bring in alleyways from OSM! [rebuild] (#351) 2020-09-27 12:20:27 -07:00
Dustin Carlino
84891f8b96 Some map fixes to prepare for alleyways:
- Temporarily workaround snap_cycleways crash in Xi'an
- Fix interpretation of blank turn restrictions. https://www.openstreetmap.org/way/739621435 was missing a right turn, which was causing vehicles to do this crazy loop to go from Madison EB to Lake Wash SB.
- Ignore turn restrictions when they don't match the number of lanes. https://www.openstreetmap.org/way/428090702 and similar need some updating.

Regenerate all data, but give up on lakeslice running fully. Going to
sacrifice that one for a bit to get new roads imported.
2020-09-27 11:21:35 -07:00
Dustin Carlino
5a3bee0264
A first attempt to snap separately mapped cycleways to main roads. Emit (#348)
an extra KML file during importing to debug; don't bring into the main
map yet. #330

Not regenerating yet
2020-09-25 15:22:47 -07:00
Dustin Carlino
f610c66572 Remove the weird shifting/angle inversions from DrivingSide. First step
of #311. Tested to not break righthand maps.
2020-09-04 10:01:06 -07:00
Dustin Carlino
4005adecf8 Refactor: create a Direction enum, in preparation for two-way cycletracks on one side of a road. 2020-08-24 13:30:13 -07:00
Dustin Carlino
2c5bbd3e7e Use alternate language building names and amenities, when available. Fixes #271.
Tested in Shinjuku. No substantial file size increase for any maps.
2020-08-20 10:39:28 -07:00
Dustin Carlino
2ebf463635 Handle buildings tagged as parking garages in OSM. 2020-08-19 17:19:54 -07:00
Dustin Carlino
d427893843 Model parking lots with extra un-renderable spots. This fixes #150, lots
without aisles, and #265, multi-story garages.
2020-08-19 17:19:54 -07:00
Dustin Carlino
2e93fdbf54 Fix parking aisle loops that cross the parking lot polygon. Closes #242 2020-08-18 15:12:12 -07:00
Dustin Carlino
83e84c10af Handle more errors in importer. Got the entirety of Taiwan to import...
but the water polygons are so sad. :(
2020-08-15 09:36:23 -07:00
Dustin Carlino
11cefb118a And the same thing for OriginalIntersection
Actually, don't need to regenerate map data. Thanks to the magic of
zero-cost wrapper types, the binary format is the same.
2020-08-13 11:48:13 -07:00
Dustin Carlino
843d24b6ed Refactor: OriginalBuilding should just be OsmID. The purpose of
OriginalBuilding was to refer to buildings in a stable way across
different maps and across OSM updates. Recently, OsmID and friends
appeared. The double layer of wrapping is an annoying API.

Not regenerating map data yet; about to do the same thing for
OriginalIntersection
2020-08-13 11:37:06 -07:00
Dustin Carlino
58849d3d15 Small refactor: in most places, we can actually use String as the error type; Box<dyn Error> is only useful when errors of different types are propagated.
Nowhere in abst do we care about handling different errors differently
2020-08-13 07:12:06 -07:00
Dustin Carlino
3b49353df2 gracefully degrade if we cant make TurnGroups for a traffic signal. this
gets SF, Tokyo, and London to import!!!
2020-08-12 11:05:19 -07:00
Dustin Carlino
62bb82886d blaze through all the crazy errors in intersection_polygon, just
recording errors and falling back to circular geometry and not trimming
roads

also filter out highway areas like
https://www.openstreetmap.org/way/132705692, woops!

Manchester and NOLA now import...
2020-08-12 09:36:46 -07:00
Dustin Carlino
eb74e05407 missed a few right_shift calls in importer. and speed up traffic signal
matching while I'm there
2020-08-12 08:34:35 -07:00
Dustin Carlino
43a6edbc28 regenerate everything, prep for release. [rebuild]
lakeslice still gridlocks and lots of bus routes cut out. not the
happiest release.
2020-08-08 21:33:11 -07:00
Dustin Carlino
ecd5d86009 handle bus stops right at intersections 2020-08-08 19:32:18 -07:00
Dustin Carlino
52e89315d7 in lieu of understanding bus platforms, add a shoulder to some roads with bus stops, now that we know what side of the road with some confidence. fixes 45th and I5. 2020-08-08 18:39:40 -07:00
Dustin Carlino
6c525d625d match transit stops to side of the road based on the orientation of the points in the route. don't use this just yet...
not regerating yet either
2020-08-08 17:44:28 -07:00
Dustin Carlino
94f83dcc6a step 1 of much more sane bus route/stop matching: just get the order of points in a route in a good order
not regenerating yet. this eliminates some routes that were previously
imported (but who knows, maybe not successfully)
2020-08-08 16:51:40 -07:00
Dustin Carlino
d1e9e38e82 refactor for #231: use typed OSM IDs everywhere, dedupe URL code
have to regen, the binary format has changed
2020-08-08 16:09:36 -07:00
Dustin Carlino
49e8ab3680 try to get seoul to import 2020-08-08 09:32:43 -07:00
Dustin Carlino
62ed91925a random fixes in the map importer to try to import a bunch of new cities.
not too successful, but made progress.
2020-08-07 10:24:58 -07:00
Dustin Carlino
128e649236 fix zordering of harbor island, broken in the osm reader refactor a few weeks back
fresh osm. breaks lakeslice, but I'll fix tomorrow. progress in
south/west seattle.
2020-08-06 18:11:09 -07:00
Dustin Carlino
5eefdaef18 still import maps with badly broken OSM geometry. warn loudly, don't
attempt to trim the roads, put a funny circle there instead.
2020-08-06 08:29:08 -07:00
Dustin Carlino
a2bf0ee59f gather footways, service roads, and cyclepaths into kml side input files to start experimenting with snapping to roads. a small step towards #242, #169, #161, #139, etc 2020-08-05 15:19:52 -07:00
Dustin Carlino
3c24b7aa5a pull in spawn times for seattle from gtfs. looks wrong, but it's a
start.
2020-08-05 14:46:37 -07:00
Dustin Carlino
588a20e8d3 reduce warnings in map importer 2020-08-03 16:22:02 -07:00
Dustin Carlino
2979f8117f handle .osm with missing bounds and no clip 2020-08-01 08:51:19 -07:00
Dustin Carlino
b4ad7400df stop drawing center lines for one-ways. while regenerating maps, also
bring in natural=scrub, and rename the krakow map
2020-07-31 20:48:26 -07:00
Dustin Carlino
ec52adce77 dont infer parking on roads in krakow that dont allow pedestrians 2020-07-31 10:33:59 -07:00
Dustin Carlino
71b68cc639 don't assume off-side sidewalks on dual_carriageway=yes. don't infer
parking on tiny roads. fixes some geometry in krakow. #230

(unrelated: add a debug layer to show parking blackholes, to work on
bike connections)
(also unrelated: better error message for #256)
2020-07-31 10:07:29 -07:00
Dustin Carlino
2b9123d261 fix border intersection geometry when the road is too short. closes #251
while regenerating, also pick up landuse=grass as a park area. noticed
missing in krakow.
2020-07-28 13:41:12 -07:00
Dustin Carlino
e1e265db14 tighten up Polygon constructors to enforce an outer ring... in most
cases now.
2020-07-27 14:03:55 -07:00
Dustin Carlino
fe41928cc8 explicitly allow osm highway types, instead of trying to deny stuff.
part of #231. handles construction much better.
2020-07-25 17:06:09 -07:00
Dustin Carlino
0c15b06922 detect invalid .osm with duplicate nodes/ways/relations in parser. closes #212 2020-07-25 15:00:52 -07:00
Dustin Carlino
7a00839553 ditch osm-xml, make a new osm parser from scratch based on roxmltree.
skip unreferenced objects, make the output extremely easy to consume.
also fix timers in importer. this helps with #212, although the actual
problem there is weird.

regen everything. some parking lots change a bit, but not horribly, and
that code needs some attention anyway.
2020-07-25 13:52:41 -07:00
Mateusz Konieczny
a4a545cc79
handle more OSM tags - especially POIs (#244)
also, add graveyards like cemeteries
2020-07-25 07:01:55 -07:00
Dustin Carlino
fc761ae032 stop bringing in railway=rail for seattle. it's cosmetic only, and it messes up some geometry in south seattle and causes gridlock. not worth it yet. 2020-07-24 20:22:33 -07:00
Dustin Carlino
643073b4d5 for #231, pass data between osm_reader and split in a way less horrible way 2020-07-24 19:33:35 -07:00
Dustin Carlino
bebfac1322 for #231, split out parking methods in convert_osm 2020-07-24 19:20:31 -07:00
Dustin Carlino
f1ef02b907 store Tags in map_model objects, to reap its benefits anywhere in the codebase. serialization format doesnt change! 2020-07-23 07:43:50 -07:00
Dustin Carlino
29bebbc883 dont treat highway=platform as a road. all of the cases encountered
before #226 happened to be disconnected from other roads, so they were
filtered out later.
2020-07-22 14:15:31 -07:00
Dustin Carlino
fe94357332 interpret traffic signals placed on ways for #119 2020-07-22 13:48:35 -07:00
Dustin Carlino
5d2b770258 Model living streets a bit more carefully.
- don't infer parking lanes there
- sidewalks on both side of a one-way
- handle maxspeed with kmph
- no maxspeed on living_street is 20 kmph

still not regenerating maps
2020-07-22 13:09:35 -07:00
Dustin Carlino
404b6e589b import railway=rail as light rail track. nothing should really use it, but it helps visually recognize areas with lots of notable railways. railways under construction not included yet, so some of the lines in krakow just sort of end.
not regenerating maps yet
2020-07-22 11:35:04 -07:00
Dustin Carlino
38b8557c82 bring in living streets from OSM, interpreting them as normal roads with
access restrictions. makes old town in krakow look much better and
brings in stay healthy streets in seattle. also commit some code related
to footways that isn't exercised yet.
2020-07-21 17:18:56 -07:00
Dustin Carlino
35b761ec21 get sydney to import 2020-07-20 20:54:08 -07:00
Dustin Carlino
2279f2a873 filter out service roads and footways under construction. also grab
fresh osm. fixes #147
2020-07-20 15:55:27 -07:00
Dustin Carlino
f91a73e12a tighten up polygon_with_holes API 2020-07-20 09:41:47 -07:00
Dustin Carlino
2f2245e90f add service roads for buses. closes #203 [rebuild] 2020-07-19 15:29:13 -07:00
Dustin Carlino
3a1ef311a7 use my new best friend earcutr to make sure people dont get lost when editing a traffic signal 2020-07-17 10:00:45 -07:00
Dustin Carlino
1c39de50f7 use earcutr for polygon triangulation. this finally allows for
multipolygons with holes!
2020-07-16 15:33:01 -07:00
Dustin Carlino
f59ca734e2 also scrape stop->platform associations from stop_areas. fixes cap hill light rail stop finally for #190! the pioneer square south stop is seemingly still messed up 2020-07-15 22:17:45 -07:00
Dustin Carlino
d94c03392f keep the first contiguous run of stops inside the boundary for #190 2020-07-15 21:16:36 -07:00
Dustin Carlino
7a1081971d pretty darn robust border matching: by path distance, not some VFD crow.
for #190
2020-07-15 19:04:24 -07:00
Dustin Carlino
b942510f67 slightly better border matching for buses. dont count on any ordering in
the route relation. include intersections that get copied as
possibilities.
2020-07-15 17:27:09 -07:00
Dustin Carlino
fb44451621 better errors making routes. also consider role=forward/backward for
border matching.
2020-07-15 15:55:43 -07:00
Dustin Carlino
891a1746d6 try to figure out border endpts for routes for #190. just visualize
them, dont enforce connectivity yet. so many problems...

regenerate stuff, to unbreak map binary format
2020-07-15 15:35:57 -07:00
Dustin Carlino
b626eb12ad better errors when matching stops/platforms fails. need to use stop_area
in convert_osm layer.
2020-07-15 13:51:16 -07:00
Dustin Carlino
91a9a9a1bc start revamping bus route data model for #190. routes are one-way. make
buses appear at the first stop and vanish at the last.

not regenerating anything yet
2020-07-15 13:15:32 -07:00
Dustin Carlino
ea9c523da4 detect buildings inside areas marked with amenities. picks up franklin high school, for example, which has a huge number of trips in soundcast but wasnt previously marked as an amenity 2020-07-15 10:35:01 -07:00
Dustin Carlino
969135d93b filter out structures inside the Holocaust-Mahnmal for #119; they're tagged as buildings 2020-07-15 09:51:57 -07:00
Dustin Carlino
4a118c8103 import berlin city centre for #119 2020-07-15 09:42:45 -07:00
Dustin Carlino
a5cf34ff59 refactor the osm tags helper 2020-07-14 09:03:37 -07:00
Dustin Carlino
85b45caf1a stop warning for roads without names if they use 'noname=yes'. related
to #147
2020-07-13 10:40:45 -07:00
Dustin Carlino
c2bd5fcf6f more helpful errors for routes. fixes #186 2020-07-13 10:15:34 -07:00
Dustin Carlino
b058d5d926 cargo fmt and regenerate map data 2020-07-13 10:11:48 -07:00
Mateusz Konieczny
885fdefb5d
playing with processing modifications (#183)
* WIP set up plumbing for calculating building info in the Raw layer and using it later for #154

* WIP playing with processing modifications

* experiment with some possibilities for tag processing

* fix an embarassing typo

* enable busses in work-home traffic

* refactor, add multiuse

* seed more parking in Kraków

* parse integers properly - thanks for a help!

* rebalance generated trips

* add hack providing some background traffic

more realistic traffic

even mess realistic people

* attempt to further reduce parking deficit

* add TODO

Co-authored-by: Dustin Carlino <dabreegster@gmail.com>
2020-07-13 09:56:05 -07:00
Dustin Carlino
0c283d0da7 finish up the grand geom stabilization with ring and some docs.
regenerated everything from scratch. one effect is more parking
blockface gets matched onto border roads, but that's fine.
2020-07-11 16:05:26 -07:00
Dustin Carlino
07ed1fec95 more polyline work... get rid of Warn<>. extremely spammy and hasn't
been helpful in ages.
2020-07-11 15:17:16 -07:00
Dustin Carlino
cce624edd8 start the big one: Polyline::new 2020-07-11 13:42:19 -07:00
Dustin Carlino
0dd3199f7a cut down variations of pt2d<->gps. mostly we want to forcibly convert.
possible semantic change: soundcast border matching now includes ALL
borders, even if the center is slightly OOB
2020-07-11 12:02:12 -07:00
Dustin Carlino
f8ace3c0ab per-city config to let bikes use bus lanes, for #184
while I'm regenerating maps anyway, grab fresh seattle osm with more
lane fixes. and parallelize a slow point matching step -- 10x speedup
for austin
2020-07-11 11:08:23 -07:00
Dustin Carlino
3639379313 importer option to assume onstreet parking on some residential roads, if OSM doesnt say anything. give 50% of residential roads in krakow some parking. fixes #171
also clean up the seattle sidewalks dataset for now; the matching code
is quite bad, and not planning to use this anytime soon
2020-07-09 15:14:08 -07:00
Dustin Carlino
906a647ade better error messages for turn restrictions. fixes #146 2020-07-07 07:37:02 -07:00
Dustin Carlino
b701fcf114 also dedupe building points coming from a relation, for #130 2020-07-06 07:29:20 -07:00
Dustin Carlino
56cb59c3ac rip out gtfs code, cutover to osm. will revisit this later; gtfs and osm probably disagree on routes and stops, and gtfs has schedule. but for now, just osm. 2020-07-03 17:33:32 -07:00
Dustin Carlino
1175826f3d scrape bus info from OSM into the RawMap layer. don't use it yet. 2020-07-03 12:00:42 -07:00
Dustin Carlino
315ab5c8e6 partly refactor some of the intensely nested osm_reader code 2020-07-02 21:24:47 -07:00
Dustin Carlino
2733d3e791 pull down fresh OSM data, with some fixes along mlk. handle west seattle
bridge being tagged differently. also note some streets in CHAZ/CHOP
disappeared, because they're tagged as pedestrian ways currently. also
forced to pull down fresh traffic signal data to keep lakeslice running
2020-06-27 22:27:03 -07:00
Dustin Carlino
ae6c099bd5 start bringing in private broadmoor roads. omit from the CH, so trips will just fail without a path for now. 2020-06-27 16:19:48 -07:00
Dustin Carlino
2881341b63 make parking lots hideable. dont snap parking and sidewalk hints to
light rail. not regenerating all the maps again yet to avoid some churn
2020-06-26 17:02:14 -07:00
Dustin Carlino
eab0988bd8 hello light rail! just import the tracks, represent as a new lane type.
make clipping handle starts and ends separately
2020-06-26 16:47:18 -07:00
Dustin Carlino
d254d49591 discard way less buildings, and match driveways away from intersections
more carefully
2020-06-25 16:34:44 -07:00
Dustin Carlino
24835cf673 skip OSM ways with no points, and ignore junction areas. fixes #84 2020-06-23 14:32:27 -07:00
Dustin Carlino
8de9ba0536 stop grabbing parking lot capacity 2020-06-06 14:37:09 -07:00
Dustin Carlino
b69d155812 clipping parking aisles to the lots, in most cases 2020-06-03 10:51:59 -07:00
Dustin Carlino
b497a9926f start rendering parking aisles. lots of issues to cleanup, but VERY
solid start
2020-06-02 13:30:37 -07:00
Dustin Carlino
30eafea94a start representing OSM parking lots in the map model and rendering layer 2020-06-01 12:51:14 -07:00
Dustin Carlino
549cba977e grab fresh osm. notable fix near nickerson fixes a sim crash. also put islands on top of water, woops. 2020-05-29 09:51:14 -07:00
Dustin Carlino
ad2a216b06 by a miracle of biology, save green lake from being covered in algae 2020-05-29 08:18:17 -07:00
Dustin Carlino
0f8161f006 restore the upper bridge, but mark it under construction 2020-05-27 16:52:39 -07:00
Dustin Carlino
c3a718fb08 make it a little easier to debug multipolygons, and handle riverbanks 2020-05-26 12:00:13 -07:00
Dustin Carlino
490df9675c draw islands. in particular, harbord island! 2020-05-21 18:15:48 -07:00
Dustin Carlino
7a7f6f25d9 restore the lower bridge, bus-only. grab fresh osm, with lotsa west
seattle fixes
2020-05-21 17:53:10 -07:00
Dustin Carlino
65a69612e0 few adjustments to get Manhattan initially imported. not making
permanent yet
2020-05-18 11:42:44 -07:00
Dustin Carlino
1a24fc7fab refactor osmosis polygon reader 2020-05-17 09:49:03 -07:00