strandedkitty / streets-gl Goto Github PK
View Code? Open in Web Editor NEW๐บ OpenStreetMap 3D renderer powered by WebGL2
Home Page: http://streets.gl
License: MIT License
๐บ OpenStreetMap 3D renderer powered by WebGL2
Home Page: http://streets.gl
License: MIT License
If a parking area is mapped, all the highways passing throughout it are not shown.
Every time a new tab is opened, all the texture files has to be transferred again. This is very slow and inconvenient to verify editing. Can they stay persistent in local storage? (Don't know how browser works) At least for the session.
If we take a look on www.openinframap.org there are a lot of intersting generic objects which might be rendered as well
There is Tordanik of osm2world which has a lot of experience in tags and 3D object placement. Maybe it's worth to get in touch?
To generate geometry for hipped and similar roof shapes in runtime this project uses a straight skeleton algorithm implementation ported from reinterpretcat's C# implementation: https://github.com/StrandedKitty/straight-skeleton
It seems like the algorithm tends to fail on buildings with a lot of right angles and holes. Basically, there are three types of failures:
To temporarily fix this problem I've implemented a fallback to the flat roof shape, but it only works for the first two cases which are easily detactable.
Though I don't know if looking into this is worth the effort.
all driveways and all streets seem to have lane_markings, is that the correct default?
at least if a width is known, which is too small for two lanes, then don't draw them.
or never for driveways and other highway=service?
looks like this also depends on the surface, though almost all residential roads in germany don't have lane markings, even with surface=asphalt
Like in f4maps, when we have landuse=cemetery
we may render a grid of tombstones of different shapes.
Sometimes there are small drains etc. that give structure to a area like here in Rostock. Would be nice to see them also in 3D and maybe with local adapted DEM?
Also how about fountains that might be a water source?
You might be interested in this project: https://github.com/a-b-street/osm2streets
It takes care of all the heavy lifting (logic) of interpreting the layout of roads, including the lanes, the turn lanes, cycle lanes, sidewalks etc., calculating the intersection areas etc.
You got pretty far too, but I expect it to be somewhat of a time sink / can of worms once you get down on the details. So, hopefully this project will help you.
For example, on my hardware, I do not know how to get a "middle mouse click". I could probably figure out, but if the UI is more configurable, I would be able to set the keys to something more obvious for my platform.
By the way, I am excited to see this project. I hope it lives on.
As I can, I will figure out ways to help.
By the by, I am using firefox 112.0.2 on Ubuntu 22.04.2 LTS.
I wanted to take a look of how Streets GL rendered the Gundam (F4 for comparison here):
Based on aerial imagery F4 looks more similar to reality (Bing imagery):
maybe trees should be smaller by default? In my city also they look too bulky
p.s. have you considered enabling "Discussions" (e.g. https://github.com/streetcomplete/StreetComplete/discussions/) so we can discuss things there are not proper bugs?
A memorial attached to a building outline is rendered as a massive obelisk that starts from the ground: example
I would expect such a big object to be rendered for a historic=monument, not historic=memorial.
Hi vHawk,
me again with roofs, sorry. In #18 I had the building heights, but sometimes we work only with building:levels. In this case I have a building with two floors: way/230178929
I had to create weird building:part shapes to render the main facade, that has two different colours for every floor (can be seen in the linked Commons image), different from the colour of the three other facades. So I created a building:part for the roof with building:min_level=2 (here)
The roof seems to have been added with building:min_level=1 tho (the triangle in the second floor):
Older cities have sometimes thick old city_walls usually made of bricks like here in Rostock. Would be nice to see that prominent barriers it in the rendering :-)
There are retaining walls, that realise a hard height shift in reality. Usually they hold / keep away ground from a higher level from a lower level. Would be nice to see this objects, but yes they affect your DEM as well.
Flat rooves are rare in the UK on houses, A better default would probably be to assume gabled.
Additionally flat rooves in the UK on houses are unlikely to be covered with plant equipment like the textures used. asphalt rooves are much more common.
https://www.google.com/search?q=flat+roof+uk&rlz=1C1ONGR_en-GBGB987GB987&sxsrf=APwXEddAL1jFB0yAdU5hvCtoHyv_qSoMKg:1683127166109&source=lnms&tbm=isch&sa=X&ved=2ahUKEwj72OOmudn-AhXEUMAKHSUJA8AQ_AUoAXoECAEQAw&biw=1537&bih=797&dpr=1
When a building has building:parts only those are rendered, but the outline which doesn't have a part is not included.
Compare churches here.
https://demo.f4map.com/#lat=59.4362195&lon=24.7407079&zoom=18&camera.theta=54.454&camera.phi=6.302
https://streets.gl/#59.43631,24.74125,35.75,356.25,713.98
Even if the building's height's is set, it's still not rendered if there are any parts
https://www.openstreetmap.org/way/301781529
Hi,
public_transport=stop_position is mapped as a bus shelter in the middle of the road. I would expect the bus shelter to be rendered for public_transport=platform only (example)
Hi, it would be cool if orchards could be rendered with aligned rows of the trees? Like here in Schwerin
Just to keep track of this issue initially discussed in issue #5 but for public_transport=stop_position
[quote]
There is no common sense where to map a node highway=bus_stop. Some prefer it as a node on the street, some others as a node beside the street: both are seen as valid.
I also think that it should not be rendered as a bus stop shelter but rather as a pole or simple bus stop sign which does not bother even when rendered on the street? What and where shall a pole/icon be rendered if there is only a node highway=bus_stop on the street and nothing else?
[/quote]
See also: community forum
This place looks like it's in the middle of the forest: https://streets.gl/#45.66838,7.96047,68.75,13.25,298.97
even if it's not: https://www.openstreetmap.org/#map=18/45.66830/7.96104
I guess is a problem in handling big multipolygon landuses?
these sides of the roof should be in shadow, maybe the normals are being smoothed?
We are seeing large numbers (over 3 million so far today) of requests to /api/0.6/relation/NNN/relations.json
from streets.gl users, which appear to be in violation of the usage policy which states that the API is provided in order to edit the map data and should not be used for read-only purposes or projects.
As far as I can tell the site only makes these requests when users turn off caching but it seems a substantial number of users must be doing that.
One thing I'm not clear on is how the cache in question (which I believe is the tiles.streets.gl request which redirect to a digital ocean endpoint) is generated - is that pre-populated from a planet dump? or does that fill on demand by making it's own API requests?
There are tunnel=building_passage ways, which cross buildings and result in a tunnel to be used by motorcars or pedestrians.
Any chance to use them to alter the existing buildings?
I'm not sure what exactly might be causing this, but the roof sharing in these buildings is inconsistent for some reason:
Link to the location: https://streets.gl/#16.67498,-22.93461,35.50,332.50,420.15
I don't now what the best combination of (missing) values for layer and/or level would be to have the subway rendered/not rendered
As a user making changes to the map I would like to be able to easily refresh the data for an area without having to reload all the textures speeding up the ability to review changes to the underlying map.
I'm trying to debug some buildings. The DEM is not high resolution enough locally with steep ground differences, where there are also many large area carparks at base, podiums and skyscrapers contributing to the inaccuracy. So I want to see whole buildings on a flat surface.
Unlike F4Maps, there doesn't seem to be a toggle for elevations. Is this a deliberate choice? (I don't know how this rendering works) Or add a new "layer"/scene if not doable in the same view.
This is an awesome project! I noticed that roads drawn to indicate roads through parking lots get hidden beneath the parking lot render. It would be really cool if they can be displayed on top of the parking lot instead, to generate a more realistic feel.
This roof:shape isn't rendered, it would be cool to have it. Wiki documentation: https://wiki.openstreetmap.org/wiki/Tag:roof:shape%3Dside_hipped
Here some thought :
Sometimes a terrain is poorly described in detail by the height bitmap because the variation are too brutal (for example an embankment, a retaining wall).
This is sadly out of OSM, but a realistic and accurate geographical description of reality should have a bitmap that is accurate enough especially if in proximity of buildings.
In France we have the LIDAR HD initiative which could provide more detailed bitmap.
This is pretty big and there is no obvious way to do it, let alone the data for it.
Hi,
I would ask if its possible to add nice specific defaults for buildings that only have a building type, but nothing set for roof and levels or material?
I suggest:
building:colour should be used to tint the colour of the material
same for roof:material / roof:colour
I have a problem with this relation (Streets GL URL), I don't understand if I did something wrong or if is a problem with the renderer.
The last floor (the second: way252607457) is min_height=3 + height=5.7
the roof is min_height=5.7 + height=8.7 (w247047014)
shouldn't this be fine?
UI needs to have zoom in/out and perhaps other navigation buttons.
On my laptop's trackpad it's almost impossible to zoom in(it zooms in just a few pixels at a time), and completely impossible to zoom out.
Zoom buttons would solve this problem.
Hi, doesn't it make sense to render planned buildings or buildings under construction in a special way? Maybe with transparency in a ghosty shine or like a construction building with steel skeleton?
While not part of the essential public infrastructure, some mappers love micromapping, which might give the srendering interesting details:
You might check out https://wiki.openstreetmap.org/wiki/3D_Model_Repository if you want to partner with them and use existing / contribute modells?
roof:shape = half-hipped seems not to be supported.
Some buildings have entrances mapped. Could you render doors with a plausible placement at the corresponding wall?
Please consider adding support for roof:orientation. It's currently used 641,637 times.
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.