Our great sponsors
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
openlayers_indoor_map
Open-source indoor venue map built using OpenLayers and QGIS. Based on the Field Museum's digital map.
I made a proof-of-concept text viewer with this in mind - https://github.com/aappleby/wideboard
There's a Wayland compositor called Newm [0] that uses a similar approach [1].
0: https://github.com/jbuchermn/newm?tab=readme-ov-file
You probably know this, but in Google Maps at least, you can use browser zoom (ctrl/cmd +/-) to change the size of labels without zooming into the actual map.
------
Speaking of maps, I got to work a fun zoom project a few years ago: https://map.fieldmuseum.org/
We used https://openlayers.org/ and thought long and hard about how to best handle zooming and variable levels of information density & visual hierarchy. If you zoom all the way out, we just highlight where the building is relative to the surroundings. As you start to zoom in, we start to highlight major exhibitions and entrances. Then as you zoom in more, we start showing recommended paths, smaller exhibitions, etc. The label sizes try to scale up and down at each level, smoothly, in order to balance readability and density.
Eventually you can reach the max zoom level and the labels will just grow bigger and bigger, but the SVGs dynamically shrink so they remain pictograms and not just contextless-lines.
Then if you keep going, you eventually find microscopic easter eggs :)
The code is pretty jank (and abandoned), but it's FOSS vanilla JS/HTML/CSS, and the only dependency is on OpenLayers: https://github.com/arcataroger/openlayers_indoor_map
You probably know this, but in Google Maps at least, you can use browser zoom (ctrl/cmd +/-) to change the size of labels without zooming into the actual map.
------
Speaking of maps, I got to work a fun zoom project a few years ago: https://map.fieldmuseum.org/
We used https://openlayers.org/ and thought long and hard about how to best handle zooming and variable levels of information density & visual hierarchy. If you zoom all the way out, we just highlight where the building is relative to the surroundings. As you start to zoom in, we start to highlight major exhibitions and entrances. Then as you zoom in more, we start showing recommended paths, smaller exhibitions, etc. The label sizes try to scale up and down at each level, smoothly, in order to balance readability and density.
Eventually you can reach the max zoom level and the labels will just grow bigger and bigger, but the SVGs dynamically shrink so they remain pictograms and not just contextless-lines.
Then if you keep going, you eventually find microscopic easter eggs :)
The code is pretty jank (and abandoned), but it's FOSS vanilla JS/HTML/CSS, and the only dependency is on OpenLayers: https://github.com/arcataroger/openlayers_indoor_map
Related posts
- Handling files in enterprise web solutions
- Swiss Maps Are Full of Hidden Secrets
- 5 JavaScript mapping APIs compared
- I'm a senior in my CS major and it's incredible I didn't hear about GIS projects until now. Glad to be here.
- OpenLayers: High-performance, feature-packed library for all your mapping needs