24 ms·
OpenStreetMap's New Vector Tiles
- DemocracyFTW2 2y agoOne clear advantage of the new SVG format is, apparently, that Arabic script is now, finally!, rendered the way it was always intended—left-to-right with unconnected letters /s
- rafram 2y agoYeah, I’m curious if that problem is baked into the SVG, or if the renderer has a “don’t screw up Arabic” option that’s disabled by default. You’d think nobody would design software that way, but Photoshop has that option, and it really is turned off by default!
- Symbiote 2y agoThey are just Unicode strings in the vector tiles (which are their own format, nothing to do with SVG). It's this particular demo that is missing basic Arabic support. string_value: "شارع المدينة القديمة" I can't read Arabic, but I know if I see "ل ا" then it's broken — "ال" is correct: https://isthisarabic.com/ https://isthisarabic.com/ Someone's already made an issue: https://github.com/pnorman/osmf-shortbread-todo/issues/9 https://github.com/pnorman/osmf-shortbread-todo/issues/9 Found via what seems to be the announcement of this demo/preview service: https://community.openstreetmap.org/t/vector-tiles-on-osmf-hardware/121501/14 https://community.openstreetmap.org/t/vector-tiles-on-osmf-h...
- SigmundA 2y agoMapbox Vector Tiles are not SVG, its is similar to geoJSON but encoded in protobuf. The renderer is going to typically be WebGL based in the browser written in javascript. https://wiki.openstreetmap.org/wiki/Vector_tiles https://wiki.openstreetmap.org/wiki/Vector_tiles https://maplibre.org/maplibre-gl-js/docs/ https://maplibre.org/maplibre-gl-js/docs/
- memsom 2y agoI wish they were SVG, that would make rendering them less of a headache. There is still no good library which takes in a MVT tile and spits out the appropriate PNG or JPEG for rendering in via a tile base mapping engine. There is still no good cross platform mapping engine that can render vector tiles in a way that is easy to consume. There are certainly engines on specific platforms, but unless we use something like Leaflet or OpenLayers it is hard to make it work with native APIs on, say Windows, MacOs, Linux, iOS or Android without needing to adding a whole browser engine on top of your app.
- dvdkon 2y agoThere are plenty non-web vector map renderers, but they generally provide a full GUI widget, not a simple "extent -> png" function. I don't think creating that would be too much work, though: Just set one of those libraries to render to a texture. Maplibre Native even seems to have a headless "render to PNG" backend: https://github.com/maplibre/maplibre-native/tree/main/platform/linux https://github.com/maplibre/maplibre-native/tree/main/platfo...
- mxfh 2y agoIf I would like to print vector-tile based maps to pdfs for handout's or something, is there any CPU renderer, server- or client-side that could output SVGs instead of rasterizing on GPU to bitmap at some point? I havent yet come across any renderer that would do this even partially, even before opening the whole can of worms that is text rendering. Closest thing I'm aware of might be ArcGIS Maps for Adobe Creative Cloud but would need something that's more like a library and preferably FOSS.
- InsertUser 2y agoRecent versions of QGIS support vector tiles in the MVT format (like these ones). So with a suitable style you should be able to create a layout using vector tiles and print. Assuming you meet the relevant attribution/license requirements for the various bits you choose of course. I don't think any usage policy has been published for these tiles yet. Unfortunately there are some translation issues with styles for MVT sources so you might need to do a bit of fixing if you don't want to go the route of a paid plan with MapTiler (third party provider) who have a plugin. There's also a list of "print map" generators of varying types here: https://wiki.openstreetmap.org/wiki/OSM_on_Paper https://wiki.openstreetmap.org/wiki/OSM_on_Paper
- rob74 2y agoSo while showcasing the brand-new vector tiles, they accidentally also showcased a pretty significant bug? Should have picked some city with non-latin script that's written left-to-right... er, maybe Athens?
- InsertUser 2y agoThey released them for testing purposes, originally on a test server and now a soft launch on OSMF hardware. https://community.openstreetmap.org/t/vector-tiles-on-osmf-hardware/121501 https://community.openstreetmap.org/t/vector-tiles-on-osmf-h... The author of the blog post chose an area that doesn't render well. The various issues are being flagged in the relevant repositories as they are found.
- KameltoeLLM 2y ago[flagged]
- ajsnigrutin 2y ago> Imagery should appear much sharper and switching the language of the labels should become possible. So, every eg. city-shape-vector (well.. polygon) will cary the metadata/text of the name of that city in every defined language?
- tantalor 2y agoNo but you could fetch tiles with only the text you need to patch the tiles you already have.
- roelschroeven 2y agoLarge cities already contain the name in many languages. See Paris for example: https://www.openstreetmap.org/relation/71525 https://www.openstreetmap.org/relation/71525 The usefulness of being able to switch the language depends on the availability of translations of course. It might give editors an incentive to add more translations for place names.
- maxerickson 2y agoThe tiles aren't necessarily a 1:1 translation of the data. The official tiles will probably be close though.
- M2Ys4U 2y agoIf there's a Wikidata QID associated with it then one can also use that to look up names in other languages
- sp8962 2y agoJust to nip this in the bud, OpenStreetMap in general doesn't contain "translations" it contains the exonyms that are commonly in use for geographic objects. Most of the time things only have a name in the local language so there will be no value for other languages in the OSM data. Transliterations are a bit of a grey area in this context, but are definitely more useful than actual translations which tend to be garbage. Further point: the data available in the vector tiles is defined by the vector tile schema and by far doesn't contain "everything".
- emursebrian 2y agoThis will be great for custom maps. I am on QGIS 3.30 and many of the street labels at 1:31860 scale show up in red and are not aligned correctly.
- maliker 2y agoIt's been fascinating to watch the open source community build out vector map tile capabilities. I was doing some web GIS work back in roughly 2018, and Google/Apple's streaming vector maps performed like magic and something we would have loved to use if we could afford it. Shortly thereafter the core tech was available in open source, and then there were even free hosted solutions. Now our leaflet maps have great vector layers for free. Thanks open source!
- NelsonMinar 2y agoI'm a little surprised it's taken this long for OSM to get there, the basic technical pieces were available over a decade ago. I don't mean to complain about the free map service, it's excellent, and I recognize they focus more on the editing and data ownership. Serving is hard and expensive. Mostly I wonder how much MapBox's dominance for a few years disrupted other efforts.
- Firefishy 2y agoThe new stack has some unique feature like the vector tiles being minutely updated directly from OSM mapping changes. There are still issues to fix as it is still only a technical preview.
- kibwen 2y agoDoes this reduce the operating costs of hosting OSM-based maps, since presumably they require less CPU spent on rendering and vectors consume less storage/bandwidth?
- speedgoose 2y agoYes, vector tiles are much easier to self host. You have for example https://protomaps.com/ https://protomaps.com/ or https://openmaptiles.org/ https://openmaptiles.org/ or https://versatiles.org/ https://versatiles.org/ (random order).
- hamiltont 2y agoYes and No. No because the official OSM tile layer is heavily subsidized by Fastly (€720k last I checked) and rendering by AWS (€40k) Yes because technically it would use fewer resources thus easier on AWS+Fastly and also easier to self-host In last risk assessment I read closely(1) OSM noted "If we lost [Fastly] sponsorship, we would likely cut off all third-party access to the standard tile layer and run a small number of Varnish servers." As I understand it, primary drivers for vectors was not cost more improving internationalization, generally enabling client-side rendering decisions, and driving a modern toolchain that would net multiple follow-on benefits I'm a bit behind, there is more recent info available at (2) 1.https://operations.osmfoundation.org/2024/01/25/owg_budget.ods https://operations.osmfoundation.org/2024/01/25/owg_budget.o... 2. https://osmfoundation.org/wiki/Finances https://osmfoundation.org/wiki/Finances
- treyd 2y agoI wonder if it would be feasible to distribute tile data in a DHT. There is a single source of truth that could seed the DHT and users would share the load of serving the data. It'd have to be opt-in on individual nav devices for privacy and battery reasons, but anyone running their own OSM proxy would have an incentive participate.
- gloflo 2y agoWay too much latency I am sure.
- Foofoobar12345 2y agoExciting update! How does the new vector tile system handle performance on low-end devices with large datasets?
- sp8962 2y ago... it doesn't? One of the downsides of MVTs and the typical max zoom level of 14 is that that they do require more local resources than simply rendering a 256x256 bitmap. For OSM the question is naturally would a complete migration (aka turning off raster tile support) exclude any noticeable number of people from contributing. But right now that decision is still a long way off, the vector tile service hasn't even been integrated in osm.org yet.
- boramalper 2y agoAlso see: OpenFreeMap — free OpenStreetMap vector tile hosting https://openfreemap.org/ https://openfreemap.org/
- lxgr 2y agoWow, this looks incredibly polished! Is this based on the same vector tech stack at all, or is it a completely parallel development?
- hyperknot 2y agoNo, it's a totally different stack. Have a look at GitHub as well, it tells in detail how it's done.
- amai 2y agoOpenFreeMap is not providing: - search or geocoding - route calculation, navigation or directions - static image generation - raster tile hosting - satellite image hosting - elevation lookup - custom tile or dataset hosting https://github.com/hyperknot/openfreemap?tab=readme-ov-file#limitations-of-this-project https://github.com/hyperknot/openfreemap?tab=readme-ov-file#...
- tetris11 2y ago(Low effort comment) I wonder if this means OSMAnd and OrganicMaps will now finally team up to deliver the ultimate FOSS Map app
- fsflover 2y agoThere is Organic Maps already.
- szszrk 2y agoAnd it works really well. The smooth zoom in is amazing.
- sriacha 2y agoHow so?
- tetris11 2y agoThe fantastic offline routing and metrics of OSMAnd placed into a lightweight and snappy OrganicMaps interface would be a huge win for me.
- worble 2y agoAt the very least I hope it means they can share map tiles between them so I don't have to use gigabytes of space on the same map
- sp8962 2y agoNo it doesn't.
- sp8962 2y agoBoth apps mainly use downloaded/"offline" preprocessed map data in their own formats. MVT format vector tiles are not remotely suitable for navigation or search (not ruling out that something could be hobbled together, but it would be a bit of a stretch).
- 2y ago
- gregoriol 2y agoIs there a tool to capture vector tiles to raster files? Some tools like Apple's MapKit don't support vector tiles yet, and it could be interesting to use one single map base and be able to just generate the raster, instead of having a specific raster server
- fingerlocks 2y agoApple’s MapKit most definitely supports vector tiles, because you are given a CGContext to draw with. You just have to implement the MVT spec (it’s small)
- gregoriol 2y agoThe idea is to use "MapKit" for maps, not to override it and draw everything yourself... The fact that it's possible doesn't mean it's a good idea. It is however possible to use Maplibre, Mapbox or some other libraries which I think do support vector tiles.
- fingerlocks 2y agoIt’s not a lot of work, like at all. And unlike mapbox/libre you’re are still within UIKit so you can leverage all the existing UI tooling on top of your vector layers. It much more performant, ergonomic, and requires no external dependencies.
- chris_wot 2y agoI am absolutely amazed that Apple don't support this yet. I had thought mapping was a competitive advantage for them...
- durkie 2y agoSomething like https://github.com/maptiler/tileserver-gl https://github.com/maptiler/tileserver-gl can serve raster tiles from a vector tile dataset
- Someone 2y ago> Imagery should appear much sharper and switching the language of the labels should become possible. I expect that to work sub-optimally. Label dimensions are far from guaranteed to stay the same if you change language, and label dimensions interact with map layout, even influencing what to show. If your labels grow larger, they may end up covering too much of the map or even overlapping. If they grow smaller, users may wonder why a city that was omitted before because of space constraints doesn’t show in the empty space created.
- dheera 2y agoI hate it when city and street names disappear on Google Maps as you zoom in and out. Sometimes a street or business name only appears at one particular zoom level and not higher or lower. Just show the name of every street damnit. I don't care about crowding. Standing at an intersection staring at an unlabelled map is a useless map.
- enriquto 2y ago> Just show the name of every street damnit. But why? Google Maps is not a navigation aid. Its purpose is not to help you know the name of the street you are in. It's a tool for paying customers to steer you towards their shops. If all you need to do is follow a path towards a certain shop, they don't need to show you the names of the streets.
- LeifCarrotson 2y agoGoogle Maps is a navigation aid that's also used to sell ads. People don't open the app to look at the ads. They open it to navigate, and if it can't be used for that purpose they won't open it at all. It is infuriating to me when a Wendy's ad is given more visual importance in color and size on the app than the actual place I want to find. But it doesn't seem to bother a lot of other people. Somewhere further in the direction of more advertisements is a point where a significant number of normal people will stop using Maps as a navigation tool, and somewhere further still is a point where more advertisements will become less profitable and will be rejected by even the developers. But we're nowhere near that point yet. Until then, I'll keep using a combination of Garmin Explore, OsmAnd, and Maps depending on how much I care about topo data, traffic status, reviews, search results, and ads. I'm setting up an Owntracks so I can replace the Timeline data that they're removing customer access to, and contributing to OpenStreetMap, but still using Maps.
- Eduard 2y agois there already a live version of this? Because for me, there doesn't seem to be an option for activating vector tiles on https://www.openstreetmap.org/ https://www.openstreetmap.org/
- maxerickson 2y agoSee https://community.openstreetmap.org/t/vector-tiles-on-osmf-hardware/121501 https://community.openstreetmap.org/t/vector-tiles-on-osmf-h...
- Eduard 2y agothank you very much; on the link provided, I found this demo: https://pnorman.github.io/tilekiln-shortbread-demo https://pnorman.github.io/tilekiln-shortbread-demo https://github.com/pnorman/tilekiln-shortbread-demo https://github.com/pnorman/tilekiln-shortbread-demo
- marklit 2y agoSorry, I just added a link to a live demo in the post: https://pnorman.github.io/tilekiln-shortbread-demo/ https://pnorman.github.io/tilekiln-shortbread-demo/
- Tepix 2y agoThis is a very welcome new development! I look forward to even better looking maps. I'm just a bit puzzled by the "my workstation" section :-). There doesn't seem to be any relation to the rest of the article, not even high system requirements to do the things discussed after that.
- zawaideh 2y agoThe other issue is that the arabic font is not rendering correctly in the vector version. It's rendering left to right (instead of right to left) with characters broken up instead of linked.
- sp8962 2y agoThe whole point of vector tiles is that the rendering is local and controlled by a style configuration (except for the tile schema) that can be changed. So the brokenness you are seeing is either in the style or the library that is rendering the contents locally.
- dnpls 2y agoit looks like the selected font doesn't support arabic text, producing the disconnected characters.
- mapmeld 2y agoIt's likely an issue with displaying Arabic text in WebGL, since that needs to handle all of the possible options for each letter in the text-shaping.
- SSLy 2y agoIndeed, but that is probably not going to help end users of apps.
- sp8962 2y agoWell nobody claimed things are going to get simpler. It is difficult to beat raster tiles in that respect. vector tiles split up responsibility for what you get visually over multiple moving pieces with different provenance and operators.
- lxgr 2y ago> It is difficult to beat raster tiles in that respect. Intuitively, why can't the local vector rasterizer do whatever the server-side tile rasterizer does, especially if both are fully custom?
- deleted 2y ago[deleted]
- timwis 2y agoDoes anyone know if vector tiles could carry adequate data to facilitate reverse geocoding (address lookup)? E.g. the polygon of a building containing its street address in its metadata. I’m surprised I haven’t seen that before, as reverse geocoding services can get expensive, though I wonder if it’s because I’ve misunderstood how vector tiles actually work.
- durkie 2y agoYes, they could. You can attach whatever metadata you want to a vector tile feature.
- lxgr 2y agoPossibly, but why would you want to do this client side? This seems like the type of operation that makes much more sense in "OSM space", not vector graphics space.
- sp8962 2y agoSure you could .... but to find something you would need to have the tile in question so you would need to calculate the tile to retrieve, and then find the object at the location (which is roughly equivalent to rendering the tile). Doesn't seem to make sense when you can just run a nominatim or photon instance locally. Not to mention that currently you would typically have to add additional address data to the mix to get the quality of commercial geocoding services which makes the doing it via tiles even less attractive.
- shpx 2y agoI can't believe they still haven't added a 2x pixel density version of the default map style. It's $CURRENTYEAR and we all have high pixel density phones. No one uses 1080p displays anymore. The default blurry version makes any page using OSM feel amateur.
- Doctor_Fegg 2y agoRaster tiles hosted at tile.openstreetmap.org are not intended for widespread production use, they’re principally for mapper feedback. If you have a business need for something that doesn’t look “amateur” you should arguably be using a third party OSM-based service or hosting your own tiles.
- Firefishy 2y agoWe don't offer 2x raster tiles because we simply don't have the resources to do it while keeping the tiles minutely updated and open access. We serve around 60k req/sec on a tiny donation backed budget. The raster tiles are primarily for our OSM mappers to see their map changes rendered quickly to improve the feedback loop.
- junaru 2y ago> No one uses 1080p displays anymore. I live in a bubble, the post.
- KameltoeLLM 2y ago[flagged]
- kiwijamo 2y agoFunnily enough I have 3x 1080p monitors in front of me. Maybe I am "no one". :)
- HumblyTossed 2y agoHow soon before mobile apps can start using these?
- puddingvlaai 2y agoI'm a bit conflicted with vector tiles. I haven't found a good combination of style and tile generator (schema) that provides the same level of detail as the original raster tiles provide. The article has screenshots that very much demonstrate this difference. The first screenshot has, for example, a lot of POIs (statues, shops, theaters, viewpoints), highways that are different when they are bridges, different colors for grass vs parks, different line widths for different highways, sports fields, building and neighbourhood names, arrows denoting one-way streets, building parts, stairs, trees, and a lot more. The second screenshot has none of that, aside from a single trolly station and a single street name (which is also rendered incorrectly). I've tried a lot of vector styles (all openmaptiles styles, the base protomaps styles, all mapbox styles) and generators (protomaps, openmaptiles, mapbox). None of them come close to the amount of detail as the raster OSM tiles while still being as readable. I've never found anyone as bothered with this as I am. Vector styles are cool as they zoom and pan very smoothly, and their style is fairly easily editable. But, for any map where you actually want to see map data instead of using it as a base map for your own data, vector maps fall short. Maybe it is just because of computational limits. I can imagine that displaying the same amount of detail as the OSM raster tiles would require too many resources: both on the client side and for tile generation. It would be nice if OpenStreetMap would try to mimic their raster style closer, instead of providing just another low contrast, low detail base map. I hope this release of open vector tiles will facilitate more detailed vector maps!
- mycall 2y agoI've been successful with using https://maputnik.github.io/editor https://maputnik.github.io/editor in the past for disabling lots of features, so I imagine it could do the opposite and enable all the layers and features you want to see on a vector map.
- puddingvlaai 2y agoI've tried that, but the openmaptiles spec and protomaps spec just don't provide enough details to be able to display a detailed map like the OSM raster tiles. That's not to say that maputnik isn't great; it is! It's an awesome frontend to the complex style files.
- andrepd 2y agoWhat was that interlude about the computer's specs lol, I thought it was going somewhere but it didn't.
- moffkalast 2y agoI think what he implies is that he's hosting it locally on that, in which case the high specs are a weird flex because the demo map runs like absolute molasses for me. Maybe it's high load or the guy doesn't have much upload speed, but it showcases that overzooming low level tiles renders really bad square lines when the high detail layers refuse to download.
- jkrubin 2y agoI saw some morecantile/mercantile in the article, so I will plug a side project of mine “utiles” for anyone needing tile util(e)s: https://github.com/jessekrubin/utiles https://github.com/jessekrubin/utiles Was fun to write and I learned loads!
- orthoxerox 2y agoOne thing I appreciate about the default raster-based maps is how snappy they are. Zooming in and out on OSM is much faster than on Google/Apple/Yandex/Bing maps. Of course, vector-based maps mean I can finally use OSM for countries that use Ethiopic/Arabic/Hebrew/Georgian/Armenian/Hanzi/Indic writing systems.
- eMPee584 2y agohttps://marble.kde.org/ https://marble.kde.org/ has had their own implementation of a streaming vectorOSM layer for nine years and I was eagerly waiting for something akin to materialize in other OSM map applications for quite a while.. Downloading hundreds of megs of map data in big whole-country chunks always was a space issue in android OSM apps. Very glad a standard is finally being established and looking forward to it getting picked up and polished.. Great work! : )
- bityard 2y agoI went looking for the Marble app on Android and it's not in the Play store or on f-droid. The link to the Play store from the website is a 404. Did they abandon it?
- eMPee584 2y agoSidenote: the most infuriating thing about google maps widgets has been the removal of the scale by default. All them transportation apps with their embedded map views have been of annoyingly limited use for multimodal navigation.. without a scale it just leaves me guessing whether a distance can be considered walkable .. Then I was flabbergasted when leaflet copied this crucial design decision.. yet my efforts to convince the leaflet team to reconsider reverting the default (because defaults are rarely changed downstream) utterly failed: https://github.com/Leaflet/Leaflet/issues/8902 https://github.com/Leaflet/Leaflet/issues/8902 .. awefully reminds me of the design trend for thin scrollbars and tiny touch targets being enforced in GUIs all over, mostly without an easy option even to configure it.. WONTFIX in KDE f.e. https://bugs.kde.org/show_bug.cgi?id=416003 https://bugs.kde.org/show_bug.cgi?id=416003 come on.. Hopefully with AI, we'll soon enter an era of liquid software where everything can be dynamically changed at will. Oh the future, behold xD
- ggm 2y agoIf this means I can get fatter/thicker/larger text labels on my maps, I'm all for it. As it stands, it feels like tiles have precomputed text embedded, which is never at a size I can handle. Old eyes are inflexible.
- piereranse2000 2y ago[flagged]
- redmajor12 2y agoDoes anyone know how to download the OSM placemarks (museum, fort, bus stop, etc) for use in another GIS program like AlpineQuest or even the desktop?
- GrayShade 2y agoThere are a couple of ways. I've done it by downloading an extract from https://download.geofabrik.de/ https://download.geofabrik.de/, using GDAL (ogr2ogr) to convert it to GPKG, then opening it in QGIS and friends. https://github.com/osmzoso/osm2sqlite https://github.com/osmzoso/osm2sqlite is another option, which I've never used.
- spacetracks 2y agoI'm interested in applying transforms to vector tile coordinates at render time. What libraries do you recommend for that? I have zero experience with map rendering but I understand coordinate transformation well. I'd like to render a log azimuthal earth. I know I'll need to pull tiles at different scales and stitch them together, just not sure which library to use to make that easy.
- wind12 2y ago`open('7006.mvt.json', 'w').write(...)` (from section `Analysis-Ready Data`) should either be import pathlib pathlib.Path('7006.mvt.json').write_text(...) or the historical alternative with open(...) as f: f.write(...)