nate-wessel / bike-map Goto Github PK
View Code? Open in Web Editor NEWOSM-based map with bike-specific visual hierarchies
License: Other
OSM-based map with bike-specific visual hierarchies
License: Other
I have the data, I just need to simplify/generalize it
Using elevation contour lines as in the Cincinnati map hasn't worked well for such a flat city. When colors are distinct enough to distinguish between contours, they interfere with easy reading of the colored lines.
My current working hypothesis is that it will be best to assume flatness unless slopes need to be indicated. I've extracted slopes from a smoothed version of the DEM and drawn contours around slopey areas. These are indicated with dark grey against a lighter grey background.
What I want to do now is to somehow indicate the direction of these sloped areas.
Some are polygons, some points, etc. all should be rendered as points.
Retail is a common destination and the scale of the buildings indicates street speed and form.
What should the trip distance/spatial distribution be?
based on travel survey data? Based on data density? Uniform density?
nate@nate-laptop:~/bike-map$ python3 merge-edges.py
finished checking 2.11% of 246811 nodes
as yet unhandled exception
321121783 Edge osm_id:29197151, db_uid:84106 Edge osm_id:29197151, db_uid:84114
finished checking 24.92% of 246811 nodes
as yet unhandled exception
848274609 Edge osm_id:71270919, db_uid:290082 Edge osm_id:71270919, db_uid:290052
finished checking 47.81% of 246811 nodes
as yet unhandled exception
4615764701 Edge osm_id:466858100, db_uid:548845 Edge osm_id:466858100, db_uid:548863
Traceback (most recent call last): nodes
File "merge-edges.py", line 66, in <module>
assert edge_cursor.rowcount == 2
AssertionError
The alleys seem like a nice and perhaps even necessary feature - but they shouldn't be shown if they are useless deadends.
I'm not sure yet how to do this.
There are many places where the bins for street hierarchy seem to break at visually/logically inconvenient places. That is, a street or part of the network that seems functionally/visually continuous may be broken into multiple values in the hierarchy. Some examples:
We need to find a way of aggregating these into more coherent/continuous entities.
I need to decide on a representative route-selection strategy and ensure this is properly instantiated in the OSRM bike.lua profile, or create such a profile. Another alternative is to define several strategies and let uses choose with some degree of interactive preference specification.
OSM data for Toronto has hundreds of split ways representing larger streets where they are divided by traffic islands:
This is usually done to help with car routing, but they are ugly and inappropriate at the scale of this map. They should somehow be merged/simplified into a single way. Some of this can be done directly in OSM where appropriate, but most of the changes will need to be made algorithmically while processing the data.
Split ways can be detected as oneway pairs having the same name, especially if they connect at a shared node to a two-way with the same common name.
There may also be cases where it would be innapropiate to merge ways, such as some parts of Spadina, Queensway, University, etc. We would need to specify some sort of distance threshold past which merging wouldn't happen. We wouldn't want to eliminate the Spadina Crescent or Queens Park!
I had this crudely implemented before, but now it is not being handled.
I want to keep motorways and on-ramps on the map for context, but I don't want them to dominate visually or maintain continuity when seen from a distance. I.e. this is bad:
My thought was that their color could fade out as distance increases from a point of connection with the street network. I had some trouble implementing this in pure SQL with recursion.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.