Commit Graph

315 Commits

Author SHA1 Message Date
Dustin Carlino
9d237f314b dont conflict between synthetic OSM IDs created by map_editor and by map clipping 2019-09-29 12:43:02 -07:00
Dustin Carlino
1a678f6e72 revamp osm turn restriction handling. capture the 'via' to disambiguate things, and match to roads way sooner. not persisting to MapFixes again. 2019-09-27 11:05:19 -07:00
Dustin Carlino
23166b1aa8 switch to turn restriction enums, so we can easily use IDs in map_editor 2019-09-24 18:58:06 -07:00
Dustin Carlino
536df84844 rename raw_data layer of stuff for easier importing, disambiguation 2019-09-23 15:00:55 -07:00
Dustin Carlino
1495cc2970 remove redundancy of osm IDs on raw stuff 2019-09-23 12:08:00 -07:00
Dustin Carlino
deaa555565 cutover Original{Road,Intersection} to just use OSM IDs. adjust a few
other places to ensure unique-per-map synthetic OSM IDs
2019-09-23 11:50:04 -07:00
Dustin Carlino
9cc20cd87c add a new map that includes a few light rail stops, for the hackathon 2019-09-21 08:41:01 -07:00
Dustin Carlino
1e73baa078 start remembering osm_node_ids for intersections 2019-09-20 15:17:54 -07:00
Dustin Carlino
b3bfd6a3f2 stop mangling roundabouts. it'll conflict with the next change, and its a hack that should be correctable by manual intervention now... 2019-09-20 14:56:22 -07:00
Dustin Carlino
0ae0a88abb actually, serialize MapFixes as json for now. will switch to binary when this is large later, but for now, this is easier to handle schema changes and debug. 2019-09-19 14:39:31 -07:00
Dustin Carlino
3eb9acf0aa plumb parking lane hints around through tags too; simplifies a few places 2019-09-19 13:30:07 -07:00
Dustin Carlino
dd02010614 switched to my own CLI parsing in convert_osm, away from structopt. compilation time down from 6.7s to 4.5s, and parsing is more clear now! 2019-09-18 16:37:22 -07:00
Dustin Carlino
6f1ac3969e organizing osm keys 2019-09-17 17:14:09 -07:00
Dustin Carlino
e52fa1fc1a recording and applying fixes to create new synthetic intersections and roads 2019-09-17 16:16:19 -07:00
Dustin Carlino
1e4f36dec1 duplicate OSM ids in tag maps universally, to simplify some other places 2019-09-17 15:37:11 -07:00
Dustin Carlino
eee5981c14 stable IDs for buildings in raw layer too. stop futzing with ID problems there. 2019-09-17 13:11:08 -07:00
Dustin Carlino
83834f7d40 actually, deferring remove_disconnected has problems.. still need to remove cul-de-sacs early. also, remove the two synthetic maps... will make them again from scratch once the raw_data format is stable. unused in the meantime. 2019-09-17 10:47:47 -07:00
Dustin Carlino
0e406afe0f store name in raw map; simplifies some plumbing elsewhere 2019-09-17 10:27:32 -07:00
Dustin Carlino
18baf7ae49 remove disconnected roads from raw map later, not in convert_osm. that way, if MapFixes disconnect anything, it gets removed later 2019-09-17 09:41:38 -07:00
Dustin Carlino
030191ef31 fixed OriginalRoads, which were pretty much always wrong (not split from
the original OSM way). also handle cul-de-sacs.
2019-09-17 09:29:19 -07:00
Dustin Carlino
47e38f6fa6 strip out really useless OSM metadata... slightly smaller files, less noise in various debug modes 2019-09-13 15:28:54 -07:00
Dustin Carlino
c3ae6bf8f8 ditch quadtrees in synthetic crate. if anything, switch later to
viewer's World
2019-09-11 13:34:41 -07:00
Dustin Carlino
43c2c72e71 importing street sign dataset to override bad parking categories from blockface. the signs look overeager... so disabling 2019-09-08 17:23:53 -07:00
Dustin Carlino
44799c0717 refactor a Counter type 2019-09-05 18:44:24 -07:00
Dustin Carlino
1910d06bc7 infer clipping polygon from entire .osm if no polygon is specified 2019-09-02 12:37:40 -07:00
Dustin Carlino
3fd59ebdb5 fix #2 - better error for clipping polygon that doesnt match osm 2019-09-02 11:53:54 -07:00
Dustin Carlino
ba2b5fc831 compute and render driveway lines 2019-08-30 12:38:07 -07:00
Dustin Carlino
a5fc3b092f simplify dataflow a bit in convert_osm 2019-08-26 15:45:28 -07:00
Dustin Carlino
ead5593448 work around overlapping offstreet parking hints, so that all maps can be fully reconverted 2019-08-26 14:56:55 -07:00
Dustin Carlino
9fac44e28b fix roundabout handling. clearing out hints, because many no longer
apply with the back-and-forth gps/pt2d stuff... reasonable to reset
efforts anyway, now that I'm considering patching in OSM edits instead
2019-08-26 14:40:47 -07:00
Dustin Carlino
c545e5d86e some bug with previous commit messing up roundabout handling... quick detour to only have HashablePt2D for Pt2D, never for LonLat 2019-08-26 14:10:34 -07:00
Dustin Carlino
114a76893a now raw_data::Road 2019-08-26 13:59:10 -07:00
Dustin Carlino
9156cbd434 raw_data::Intersection too 2019-08-26 11:18:39 -07:00
Dustin Carlino
ce4369be27 raw_data::Building too 2019-08-26 10:36:00 -07:00
Dustin Carlino
6af2c5c0e0 raw_data::Area up-front stores a Polygon 2019-08-25 19:28:59 -07:00
Dustin Carlino
29eb463a6f base gps_bounds off of boundary polygon only. temporarily allow some out-of-bound coordinates, and deal with them during clipping. this means the osmosis boundary polygon is required. 2019-08-25 19:07:12 -07:00
Dustin Carlino
1936f5f75e match offstreet parking KML to buildings 2019-08-25 14:00:25 -07:00
Dustin Carlino
f78c58e11d remove clipping dep from convert_osm, switch to geo-booleanop 2019-08-15 23:20:11 -07:00
Dustin Carlino
96db77e8b2 stop importing traffic signal data from king county. OSM's data is higher-quality and already attached to specific nodes. 2019-08-15 14:19:11 -07:00
Dustin Carlino
4e83f492d8 upgrade rand, get rid of now unneeded serde1 feature, in hopes of fixing feature mismatch between deps 2019-08-15 12:14:35 -07:00
Dustin Carlino
758c5494d8 remove old unused deps 2019-08-09 13:34:40 -07:00
Dustin Carlino
453204129c some instructions to import a new .osm. don't require a clipping
polygon. small tweaks to map construction to make Austin work.
2019-07-15 16:43:57 +02:00
Dustin Carlino
8cf1b74c3d notes for a new article on the map model. no pictures yet. also no
autoformatting...
2019-07-07 16:35:21 -07:00
Dustin Carlino
9f9db35c38 capture raw turn restriction data from OSM, hacky way to debug them 2019-07-03 17:16:00 -05:00
Dustin Carlino
5fa824f504 preps for interpreting turn:lanes from OSM 2019-07-02 15:03:18 -05:00
Dustin Carlino
7a49c585cf remove building_type and stop reading the residential permit shapefile 2019-06-18 14:58:57 -07:00
Dustin Carlino
da85927d03 change Hints to store based on gps points, so hints are universal, not per map 2019-06-12 14:55:48 -07:00
Dustin Carlino
0adeac1d53 remove the single point associated with intersections, now that we're
actually going to be mucking with geometry. it wasnt doing anything
useful anyway. also a round of clippy.
2019-06-12 10:10:04 -07:00
Dustin Carlino
35b7c18df9 remove elevation from map model. never been used, no anticipated need for it 2019-06-12 07:25:31 -07:00
Dustin Carlino
98e073d8be save hints from debug_initialmap, use them when constructing the real
map
2019-06-11 17:41:47 -07:00
Dustin Carlino
4e2d16af29 consistently using file extensions of .json and .bin, merging duplicate abstutil io functions accordingly 2019-06-11 14:30:11 -07:00
Dustin Carlino
35b3e4b7be round of clippy / unbreaking the build 2019-05-29 13:01:33 -07:00
Dustin Carlino
0d107df0da recalculate bounds after clipping and removing stuff. neighborhoods break otherwise. 2019-04-15 11:28:02 -07:00
Dustin Carlino
05e1398a3d fix up road clipping and enable it permanently. chose to disconnect
intersections that would be connected by a road that starts or ends OOB.
result looks great!
2019-04-15 11:04:04 -07:00
Dustin Carlino
72ae49e25f draw real map bg by default now 2019-04-13 16:22:37 -07:00
Dustin Carlino
e873f79f67 removing old code for area clipping 2019-04-13 15:54:13 -07:00
Dustin Carlino
9d46cb1c0f actually, just try a crate to just do polygon intersection. seems to
work great!
2019-04-13 15:08:19 -07:00
Dustin Carlino
366267fcbf try clipping areas a different way. disabled, but close to working well. 2019-04-13 13:25:00 -07:00
Dustin Carlino
11a1c3543e clip buildings that're partly out-of-bounds 2019-04-12 13:05:59 -07:00
Dustin Carlino
94b5307828 use the new SharedSidewalkCorner code for turn geometry, at least 2019-04-11 16:38:06 -07:00
Dustin Carlino
d207c3c33a rip out parcels entirely; unused for long time and no anticipated uses 2019-04-11 11:40:37 -07:00
Dustin Carlino
5ca359998c upgrade some dependencies and list data source licenses in README 2019-03-11 16:04:47 -07:00
Dustin Carlino
f249c6b2d9 call Timer.done automatically using Drop trait. use throwaway less 2019-02-27 12:15:04 -08:00
Dustin Carlino
b02807ceee use quadtree to speed up fix_ramp step 2019-02-22 10:15:13 -08:00
Dustin Carlino
c2791a6ead using Warn in all of geom 2019-02-20 10:36:58 -08:00
Dustin Carlino
e4e07e7ba6 make it easier to debug areas 2019-02-18 15:56:15 -08:00
Dustin Carlino
e1259587cb updating OSM source. some tweaks to make things work. 2019-02-17 15:58:04 -08:00
Dustin Carlino
a52bea9835 some steps to closing off incomplete areas better... mostly stuff to
quickly iterate on this problem later
2019-02-15 09:03:02 -08:00
Dustin Carlino
0c81234b56 script to reimport and reprecompute a single map. add golf course areas. 2019-02-14 19:05:29 -08:00
Dustin Carlino
b40770edae adjust clipping instead of leaving stuff in sometimes 2019-02-12 15:56:23 -08:00
Dustin Carlino
b8eec25116 store Polygon in Building natively 2019-02-12 12:28:12 -08:00
Dustin Carlino
4dd7dabde5 display boundary polygon, actually 2019-02-11 22:24:19 -08:00
Dustin Carlino
e68d6225c8 clipping roads based on original boundary polygons. buggy, so disabled. 2019-02-11 22:13:49 -08:00
Dustin Carlino
e2de3e208c use FindClosest quadtree helper for residential bldg permit matching 2019-02-11 15:35:06 -08:00
Dustin Carlino
0a3f2676f0 more timer measurements for convert_osm, and make sure to erase
precomputed maps when re-converting a map
2019-02-11 14:22:05 -08:00
Dustin Carlino
ea3170a9a9 make more multipolygons work by dealing with closed ways 2019-02-11 13:08:18 -08:00
Dustin Carlino
8693bbc1e3 import residential building dataset 2019-02-10 19:24:34 -08:00
Dustin Carlino
ec01207369 try upgrading rand and serde again 2019-02-10 15:57:28 -08:00
Dustin Carlino
51399e19ed organize convert_osm lib better. also make clippy build everything
again.
2019-02-10 15:52:21 -08:00
Dustin Carlino
c6229e0de6 make cemeteries and lake washington (with inner ways) work 2019-02-10 14:45:38 -08:00
Dustin Carlino
8eaf09034f handle mulitpolygons with incomplete clipped info 2019-02-09 21:48:21 -08:00
Dustin Carlino
f693316290 parse OSM multipolygons, like bodies of water, correctly, when they're
completely present in the .osm
2019-02-09 21:03:44 -08:00
Dustin Carlino
2282c5658d make geom types Ord now 2019-01-31 14:29:47 -08:00
Dustin Carlino
7519fdf584 using strong Distance types in many more places 2019-01-30 15:54:54 -08:00
Dustin Carlino
0c6f7c424d removing dimensioned from last few crates 2019-01-30 14:29:42 -08:00
Dustin Carlino
4e89b0fcfe filter out cul-de-sacs earlier, so convert_osm works again 2019-01-28 13:19:42 -08:00
Dustin Carlino
f018158aa3 remove copyright comment from remaining files 2019-01-20 13:57:55 -08:00
Dustin Carlino
0c32faa40c moving neighborhood to map_model crate, so convert_osm can stop depending on sim 2019-01-17 15:29:00 -08:00
Dustin Carlino
76dc85d5c8 remove unnecessarily boxed closures, and use generics instead 2019-01-17 15:22:31 -08:00
Dustin Carlino
61128f098b make my own retain for btreemap. also refine the loop-road filtering in
the experimental road merger
2019-01-17 15:09:09 -08:00
Dustin Carlino
be9a9b86fe dont modify geometry of ways touching roundabouts, now that we have raw roads pointing to intersections 2019-01-17 12:03:08 -08:00
Dustin Carlino
761008b3ac make raw roads directly refer to intersections 2019-01-17 11:30:58 -08:00
Dustin Carlino
3422877d3d adding a stable ID for raw roads and intersections. way easier to refer to things in the midst of deletions. 2019-01-17 11:10:05 -08:00
Dustin Carlino
dfe50dcee4 reasonable support for roundabouts... collapse it to a single
intersection, which usually gets treated like a stop sign, and has
reasonable geometry
2019-01-16 15:05:44 -08:00
Dustin Carlino
e8e119dbbf remove all the polyline shifting/polygon variants that might fail 2019-01-15 15:25:00 -08:00
Dustin Carlino
daa55026ae making shift left/right for polyline too 2019-01-12 14:13:15 -08:00
Dustin Carlino
47b5d2e4aa upgrade all other deps, except for piston/winit stuff 2019-01-11 12:36:20 -08:00
Dustin Carlino
da20cc277d upgrade osm-xml and simplify OSM reference resolving a bit 2019-01-11 11:05:07 -08:00
Dustin Carlino
c09fa98f57 upgrade a few dependencies 2019-01-11 10:55:58 -08:00
Dustin Carlino
d95099efbe basic installation instructions, and tweaks to scripts so that things
work better out-of-box
2019-01-11 10:04:56 -08:00
Dustin Carlino
de5c02a6c4 preps for merging intersections again... notes and not passing Map
during first few phases of construction
2018-12-11 12:26:21 -08:00
Dustin Carlino
dbfd410b0a force synthetic intersections into being border nodes too 2018-12-10 15:45:34 -08:00
Dustin Carlino
f48757c5e7 clippy pt2 2018-12-08 19:56:54 -08:00
Dustin Carlino
91b2b07fbd remove more extern crate's; import macros directly 2018-12-06 11:22:12 -08:00
Dustin Carlino
375a923a9d try removing most extern crate's 2018-12-06 11:00:13 -08:00
Dustin Carlino
f64f411093 upgrade all crates to 2018 in Cargo.toml. this requires switching to
crate:: paths everywhere. not yet fiddling with 'extern crate's
2018-12-06 10:57:31 -08:00
Dustin Carlino
6a0cd7f71e rust 2018: run the new fmt, delete the unneeded script 2018-12-06 10:05:50 -08:00
Dustin Carlino
e150ce3aef new test to make sure raw->map conversion is also deterministic, not just convert_osm 2018-11-28 09:36:42 -08:00
Dustin Carlino
e755aeb4ef merging intersections for a hardcoded set of short roads 2018-11-28 09:19:36 -08:00
Dustin Carlino
149758d5ae use traffic signal data from new kml, not old shp that's no longer online 2018-11-27 13:10:51 -08:00
Dustin Carlino
e8dc01fd98 moving convert_osm test to new runner 2018-11-23 15:07:08 -08:00
Dustin Carlino
ced04798b4 basic controls for time travel, showing state in OSD 2018-11-22 11:53:35 -08:00
Dustin Carlino
29e1f3f6c0 starting a plugin to scrape agents... 2018-11-22 11:38:00 -08:00
Dustin Carlino
5bc9992fc0 using blockface kml in convert_osm to prescribe parking lanes 2018-11-21 22:43:14 -08:00
Dustin Carlino
20b79038f4 dont clone bounds by default 2018-11-21 14:55:26 -08:00
Dustin Carlino
117adb7f1a consolidating all of the kml parsing code 2018-11-21 13:20:41 -08:00
Dustin Carlino
b22cfe7c9b gets tests to at least build again, by commenting out some of them 2018-11-20 14:36:11 -08:00
Dustin Carlino
7ddbd753f4 storing neighborhoods as GPS 2018-11-09 14:12:20 -08:00
Dustin Carlino
27406a5a5c rotating stop signs (really an excuse to start using the geo crate in geom...) 2018-10-30 16:04:46 -07:00
Dustin Carlino
60246dc7f1 woops, fix timer API change 2018-10-30 15:47:23 -07:00
Dustin Carlino
8a1ee5c32b slight improvements to Timer API and output 2018-10-30 15:17:04 -07:00
Dustin Carlino
23a1adfd95 using timer more thoroughly in convert_osm 2018-10-30 14:55:55 -07:00
Dustin Carlino
bb9c98b54e splitting into two Bounds types 2018-10-29 14:16:30 -07:00
Dustin Carlino
3a62ed8695 refactor get_bbox 2018-10-28 18:43:36 -07:00
Dustin Carlino
a45521e1a6 using Timer with read_binary 2018-10-28 17:17:35 -07:00
Dustin Carlino
245d1707db handling few new OSM highway types 2018-10-28 14:09:37 -07:00
Dustin Carlino
a61abca478 extract areas from OSM relations 2018-10-26 14:29:07 -07:00
Dustin Carlino
94863b7bcc bring in footways... actually disable it, they'll need more work 2018-10-18 12:20:54 -07:00
Dustin Carlino
d897ebfd4b fixing up broken tests... at least making them build :\ 2018-10-17 13:42:07 -07:00
Dustin Carlino
d02c5004f9 clean up Pt2D::from_gps API 2018-10-17 13:14:10 -07:00
Dustin Carlino
21dcb14123 importing neighborhoods from geojson 2018-10-16 09:18:09 -07:00
Dustin Carlino
19bcf0199e update map paths in tests 2018-10-13 17:43:52 -07:00
Dustin Carlino
e4dc075871 WIP trying to solve problem of driving traces not matching up sometimes 2018-10-13 15:41:40 -07:00
Dustin Carlino
f7f9b5ab70 plugin to find and show chokepoints 2018-10-13 15:24:14 -07:00
Dustin Carlino
8b5b7d806e moving maps to a subdirectory inside data/ 2018-09-24 14:40:16 -07:00
Dustin Carlino
dba3893ee5 handle linear waterway areas 2018-09-16 15:38:33 -07:00
Dustin Carlino
304b4e929e detecting parks, swamps, waterways from OSM 2018-09-16 14:02:42 -07:00
Dustin Carlino
e65f3aecc7 update to rust 1.29, re-run format 2018-09-15 16:54:00 -07:00
Dustin Carlino
99fe9f170c fixing up tests 2018-09-07 14:08:36 -07:00
Dustin Carlino
143084a8a9 parse gtfs during map conversion 2018-09-07 11:54:27 -07:00
Dustin Carlino
36525da7d8 using a quadtree to prune parcel intersections 2018-08-06 13:34:17 -07:00
Dustin Carlino
82902199a2 moving parcel grouping into convert_osm, which is run with --release anyway 2018-08-06 13:10:48 -07:00
Dustin Carlino
5ad6f53607 use new dimensioned version, letting us serialize maps and clean up
hacks elsewhere
2018-08-01 14:05:38 -07:00
Dustin Carlino
cce85994f6 dont need a sort anymore... actually, can't run the determinism test
right now
2018-07-29 15:51:06 -07:00
Dustin Carlino
3ed1bba5c9 fixing encapsulation and delegation of stuff in sim layer 2018-07-25 18:36:04 -07:00
Dustin Carlino
3e72f39121 planning how to do live road edits 2018-07-25 18:19:39 -07:00
Dustin Carlino
9200a5ef3d use pretty assertions 2018-07-24 16:23:25 -07:00
Dustin Carlino
14eac3c486 compute bounds at the better time 2018-07-22 18:53:35 -07:00
Dustin Carlino
70c571c9bc fixed the disconnected partition removal algorithm; it was just plain wrong 2018-07-22 18:28:14 -07:00
Dustin Carlino
82fb302ddd fixing nondeterministic map conversion 2018-07-22 17:14:07 -07:00
Dustin Carlino
5b018fdf06 adding tests for map conversion determinism 2018-07-22 17:09:12 -07:00
Dustin Carlino
1c85188a64 WIP removing disconnected chunks of map. leaves orphaned intersections
still, so disabled.
2018-07-22 16:31:31 -07:00
Dustin Carlino
7d1ec62a1d organizing convert_osm code slightly 2018-07-20 11:52:45 -07:00
Dustin Carlino
51fa14d934 parsing shapefiles again for traffic signals 2018-07-20 11:27:57 -07:00
Dustin Carlino
a082fbb511 moving stuff to geom crate 2018-06-28 20:35:00 -07:00
Dustin Carlino
7f09f22bcf making a line struct 2018-06-28 17:14:27 -07:00
Dustin Carlino
987f039404 LonLat to Pt2D more explicit 2018-06-28 14:19:59 -07:00
Dustin Carlino
ff526a6854 split out HashablePt2D 2018-06-28 13:55:43 -07:00
Dustin Carlino
82bac55275 use cbor for maps 2018-06-26 09:45:01 -07:00
Dustin Carlino
8de92c095a OSM tags as a hash, now that serialization is easy 2018-06-26 07:35:34 -07:00
Dustin Carlino
bc92c3ca8d replacing the pb with serde stuff 2018-06-25 18:56:57 -07:00
Dustin Carlino
ee90ce1ed8 cleaning up redundant extern crates 2018-06-25 09:14:44 -07:00
Dustin Carlino
923883883b updating README and trimming license declarations 2018-06-03 17:56:53 -07:00
Dustin Carlino
065c2ce9ba Importing everything since the initial import 2018-04-10 17:51:37 -07:00
Dustin Carlino
1863289f6d Initial import of A/B Street prototype. 2018-03-13 08:06:03 -07:00