13 ms·
Serverless maps at 1/700 the cost of Google Maps API
- moneywoes 4y agoWhat’s the catch?
- teruakohatu 4y agoThere isn't a catch. If you only want to serve map tiles, this is the cheapest way to do it. If you want fancy features like being able to use a UI to make custom map styles, vehicle routing and satellite overlay, then MapBox and Google are still your friend.
- moneywoes 4y agoWhat if I want to add custom data to the map like say a police crime filter on the top. Can I still use this? Or do I need felt Very knew to make sorry
- winbat 4y agoIf you have any geospatial data, you can tile it with tippecanoe [0], which gives you an mbtiles file. Protomaps lets you easily convert the mbtiles file into a protomaps file which you can then use. Protomaps doesn’t limit you to any particular type of tiles, it’s just a format which allows you to read tiles out of a single file with HTTP range requests. [0] https://github.com/mapbox/tippecanoe https://github.com/mapbox/tippecanoe
- bdon 4y agoHi, thanks for the mention! The Mapbox repo has an older version of tippecanoe; there's a newer version actively being improved by Felt at http://github.com/felt/tippecanoe http://github.com/felt/tippecanoe , and they've also funded my addition of the Protomaps format (PMTiles) as a direct output. No conversion step required anymore!
- bdon 4y agoAs the developer of this system, I concur with this; Protomaps is focused on map tiles, and can be used with other solutions such as http://geocode.earth http://geocode.earth for search. A small detail: I don't believe this is the absolute cheapest way to deliver map tiles. Renting an unmetered bandwidth server is always going to be the cheapest way to host content, but unmanaged servers don't give you SSL termination, infinite storage, or an edge cache. Protomaps is designed as the right compromise between self-hosted operational+development costs and SaaS-like delivery.
- teruakohatu 4y agoThank you for your hard work on this.
- singularity2001 4y agoFor vehicle routing you can add GraphHopper
- bdon 4y agoAuthor here - the catch is that the data you store and serve is usually not as rich and complete as Google's, of course. The solution as described in the post is for serving tile archives, and where you get the tile archive is up to you - I have a commercial offering (and am working on an open source one too), and there's various other FOSS projects for tile creation.
- GeorgeHoneywood 4y agoPMTiles looks excellent, I think the range request idea will go far. Just wanted to let you know that the "Live Example Page" link on the page seems to 404.
- bdon 4y agoThanks, should be fixed now!
- severak_cz 4y agoI have tested Protomaps in of my project and I can say this is good as tileset datasource. E.g. if you already have some map data in your app and needs basemap to display under them Protomaps is your solution. The catch is that you have to host it yourself (which is pain if you want to update it - otherwise it's just upload and forget).
- TotempaaltJ 4y agoThe real meat of this story: > A web application with 50,000 map loads using the Google Maps API will cost $350 per month. > A similar amount of traffic running through a Protomaps CDN install on Cloudflare, with an average of 20 tiles per session, costs fifty cents in Cloudflare Workers request fees. $350 versus $0.50! Who's going to be the first to build a (maybe Google Maps-compatible?) API on top of this and sell it for a fraction of the cost? Edit: Looked around a bit and Protomaps already offers a hosted map through Github Sponsors here: https://github.com/sponsors/protomaps https://github.com/sponsors/protomaps
- bdon 4y agoAs mentioned in the post there's a _free_ API for non-commercial use that I maintain, and you can make commercial use of it by becoming a GitHub Sponsor: http://github.com/sponsors/protomaps http://github.com/sponsors/protomaps But being "Google Maps compatible" will never be possible as long as the Google Maps client library and data are proprietary.
- TotempaaltJ 4y agoThat's awesome, just saw that myself! This is a super cool project. Fwiw with "Google Maps compatible" I didn't mean showing Google's Maps, I was thinking more a drop-in replacement to (some subset of) Google's client library.
- bdon 4y agoHmm, I haven't heard of any open source projects re-implementing Google's client library, and I imagine it would be difficult to keep parity with a closed-source project. Most open source efforts have consolidated around MapLibre GL https://maplibre.org https://maplibre.org which is a maintained fork of Mapbox GL before their switch to a source-available license.
- londons_explore 4y agoMost Google Maps client library users use only a few basic features - "display slippy map here with a pin centered on here" type thing. Then just stub out any other API call with "alert('Not implemented, but PR's welcome!')" And as far as webmasters are concerned, switching from google maps to your maps involves just switching out the <script> tag for a different one.
- tuananh 4y agothe live example url is broken :(
- bdon 4y agoWhoops, i broke the link in the GitHub repo; but I just fixed it on my phone! Thanks for the heads up.
- pirsquare 4y agoGoogle Map 10X their price on a single price change. Never trust Google Cloud or run any production servers with them. They have zero empathy for you. Just today, we got screwed by Google Cloud (as a 4 yrs customer) when they abruptly shutdown our production servers just because we didn't fill up a form on-time. My story: https://twitter.com/Ryan_Liao/status/1634103410525077504 https://twitter.com/Ryan_Liao/status/1634103410525077504 (happens today) [Link Updated]
- KingOfCoders 4y agoYes we we're caught by this some years ago and switched to Stadia Maps (very happy).
- kunley 4y agoThe story looks like deleted..
- pirsquare 4y agoThanks! Link updated to my own tweet. I don't know why my post got removed. It's no diff from previous gcloud horror stories.
- dachryn 4y agoa 400 month customer is really a tiny fish, don't expect special treatment without support packages. Do you even have an enterprise contract with them? The bronze contract can be had from 0 spend, and gives the option to pay through invoicing and have support. Or are you just going through credit card which is intended for hobby use? I am not defending them, but this is totally on you. What was the missing information? Lack of identity verification or credit card verification? Again that's on you. You should have also received a warning in the cloud console and if you hvae the cloud app on your phone, there as well.
- awestroke 4y agoIf you can be banned from the platform at any time just for having the audacity of using your credit card, maybe they should have a big yellow warning box when signing up with a credit card
- einpoklum 4y agoCan someone give a better description of how this initiative relates to OpenStreetMaps? The website says that the "tile dataset [is] based on OpenStreetMap data" - so, what's the added value in the commercial tier? And - how, if at all, does this initiative contribute back to OSM as a project?
- bdon 4y agoHi, the value add in the commercial offering on top of raw OSM is described here: https://protomaps.com/docs/faq#openstreetmap https://protomaps.com/docs/faq#openstreetmap I also maintain open source tooling for anyone to replicate and extract OSM on-demand, as well as a free download portal: https://github.com/protomaps/OSMExpress https://github.com/protomaps/OSMExpress https://app.protomaps.com/downloads https://app.protomaps.com/downloads
- einpoklum 4y agoInteresting! I note that: > OpenStreetMap ... standard tile layer ... openstreetmap-carto ... is based on dynamic rendering of raster images, instead of vector tiles that can be customized on the client. so, does OSM really not make vector tiles available? That's too bad.
- wcedmisten 4y agoOSM is really a dataset. They do offer a raster tile server, but it's intended to support community mapping (improving the dataset), and not necessarily for end users using a map for other purposes. Basically they want you to host your own tile server using the OSM dataset. There are also commercial offerings that do this for you, but not for free.
- bdon 4y agoTiles, vector or raster, to be consumed for general use are not really in the scope of the OpenStreetMap project. This is surprising to many because it's the first thing you see on OSM.org; the tiles there are for the explicit purpose of feedback to data editors, and make a best-effort to synchronize the instantaneous state of the database in the tiles, unlike Protomaps which delivers a snapshot. Paul Norman has a project called Tilekiln to adapt vector rendering for this use case on OSM.org: https://github.com/pnorman/tilekiln https://github.com/pnorman/tilekiln
- 867-5309 4y agofirstly let's predict when osm will become as universally acceptable as gm
- anthk 4y agoOSM needs no data plan, just the GPS signal and updated maps downloaded from either Organic Maps (the easy way); or OSMand, if you plan to do serious tasks on mapping your town for instace.
- zild3d 4y agoto be fair, doesn't google maps offer the same? Have downloaded offline maps of cities while traveling without a data plan
- anthk 4y agoDowlading maps it's far easier under Organic/OSMand. You choose the country and/or the region, and download them. That's it.
- 2Gkashmiri 4y agolook up streetcomplete and everydoor. They are much more targetted towards helping improve OSM than OSMAND.
- honeybadger1 4y agoI have tried to love the 3rd party maps, but I always go back to Google because of traffic updates. Nothing else comes even remotely close and when you need to get somewhere on time, it's just too crucial.
- kaapipo 4y agoThis is an API, not a user-facing application.
- Doctor_Fegg 4y ago/r/fuckcars
- alex_suzuki 4y agoUnrelated to the actual product: lack of margin on the sides make it an uncomfortable read on mobile.
- bdon 4y agoThanks, this should be fixed now.
- alexmuro 4y agoThe thing this article doesn't say is that maplibre-gl v2 supports directly querying pmtiles with http range requests so you don't even need lambda or cloud flare workers to make x/y/z routes in front of the file. So instead of 50c, this is essentially free. If you are going to to set up that infrastructure you could just use an mbtiles file which has been around for years. The interesting thing to me is that this stuff is all built on the open source technology of mapbox, and it seems like a real threat to large parts of their business model. Interested to see how it plays out.
- maptime 4y agoMy guess is Mapbox would worry more about competitors in the routing and Addressing space than The biggest danger with Open tiles is a basemap is the gateway to other data services with higher costs and an easier path to a defendable technical moat. Swapping a basemap can literally be a 10 minute job
- bdon 4y agoThe solution I described in the blog post is an optional layer on top designed for high traffic deployments, see here: https://protomaps.com/docs/cdn https://protomaps.com/docs/cdn As most storage systems like S3 aren't free and have per-request fees, the price is pretty comparable to this CDN deployment. Protomaps is very intentionally built with little in common with Mapbox; the main shared parts are using the same Protocol Buffers vector tile format, because there's no reason to write another one; and compatibility with the fork of Mapbox GL 1 (MapLibre GL). See https://protomaps.com/docs/faq#mapbox https://protomaps.com/docs/faq#mapbox
- alexmuro 4y agoFirstly, I just want to say thanks for the reply, but more so thanks for your work, its moving opensource mapping forward. In my work we are looking at switching from mbtiles hosted with tilserver-gl(https://github.com/maptiler/tileserver-gl https://github.com/maptiler/tileserver-gl) to pmtiles to remove a server process. But we were self hosting already and we are already using maplibre-gl 2. I can see why the implementation in the blog post would be better for high traffic deployments (ours isn't). It also points out to me I don't understand how a CDN would handle range request for hosting the pmtiles file directly, it probably doesn't? As far as the mapbox stuff,in my mind, pmtiles is a direct competitor (successor) to the mbtiles format, which was a revolution in comparison to everything that came before it. A successor I welcome because it makes it even easier for me as a developer to self host and not be dependent on a SaaS to run my maps. The modern opensource map stack wouldn't exist without mapbox and I'm personally grateful to them for that. Most people who use pmtiles will use mapbox's opensource style spec to style them, and descendants of their open source code to render them. But as a developer now its an obvious choice to not use their services after years of using them. However I'm not doing high traffic stuff and they never made much money off me anyway.
- somishere 4y agoThis is great. I hadn't heard of it but currently building a research mapping interface for a non-profit and will use it. Interested to know if anyone has suggestions for public aeriel/ satellite tiles. I use ESRI via a dev account which is largely great (extensive hi-res) / best value (??) I've found so far - in a semi exhaustive search. Also the Allen Coral Atlas basemap, CC'd from Planet, which is limited to reefs (and 5m) but fantastic for the mission, not just the licensing. But I'm sure there are alternative solutions. Not in need of up-to-date imagery, but would love to find e.g. a publically released AWS tileset that is updated on a biyearly basis or so ... Am I asking too much :))
- c0nsumer 4y agoCan any of you suggest a nice tutorial or something for rendering maps for self-hosting at much higher zoom levels? Many of these examples are for larger areas where zoom level 10 is sufficient, but I make hobby maps of mountain bike / hiking trails where the displayed area is only ~10km wide at the most with lots of fine detail. Thus, my maps tend to be shown at zoom levels 12-18, which is much higher than any of the free tilesets. (Ideally I'd like to take a sane style, tweak some things like making paths clearer and offsetting the text labels, then making tiles. The Thunderforest maps are exactly what I want, but tiny and local and self-hosted.)
- pbronez 4y agoThis might be what you’re looking for: https://protomaps.com/docs/pmtiles https://protomaps.com/docs/pmtiles Looks like protomaps supports up to zoom level 14 for free: https://app.protomaps.com/downloads/small_map https://app.protomaps.com/downloads/small_map
- c0nsumer 4y agoThanks, but that's the problem, the data downloads they offer are not zoomed enough. So I want to know how to go closer. This presumes you already have tiles.
- bdon 4y agoThe z0-14 tilesets from https://app.protomaps.com/downloads/small_map https://app.protomaps.com/downloads/small_map should be good enough for street-level mapping with overzooming. You can email me at brandon@protomaps.com if this doesn't fit your needs yet.
- c0nsumer 4y agoThanks, I'll give it a look, but I need a different style as well. This is the sort of thing I'm looking to completely self-host: https://trailmaps.app/ramba/ https://trailmaps.app/ramba/
- 4y ago
- favaq 4y agoServerless? Then what's this 104.26.2.120 server that I'm connecting to?
- yafbum 4y agoPretty cool demo, what I wonder about is how the quality is and how long they can keep updating their tiles. My experience last time I did something similar was that the OSM data grows fast, the import and rendering takes longer and longer, and something tends to break in the process or create rendering problems in some random countries if you don't spend time checking. A more obvious quality issue for example: on their demo, Arabic text renders wrong (left to right instead of right to left, it'd be like printing kroY weN instead of New York)
- bdon 4y agoHi, thanks for the pointer, the Arabic rendering should be fixed now on the demo.
- chainwax 4y agoThis looks absolutely fantastic. I've been tinkering around off and on with the Strava API, laying my (or my bike club's) ride lines on top of a map to share with friends. Doing this with Google Maps has been more costly than I expected. I'll check this out after work!
- zeitg3ist 4y agoIn these discussions I rarely see Apple Maps mentioned, but I just checked and MapKit JS includes 25,000 requests per day with a $99 yearly Apple Developer subscription. Considering the cost of the alternatives, even if you don’t care about iOS development, it might be worth it to get one just for MapKit.
- underbluewaters 4y agoThis has been transformative for the project[0] I'm working on where I need to host a lot of ocean environment data using vector tiles. I've been able to build out a data upload and tiling pipeline similar to Felt using tippecanoe + pmtiles without a lot of trouble. It's so cheap to run and host we intend to provide a data hosting service free to our users with a reasonable soft limits. Using something like MapBox Tiling Service would have been a couple orders of magnitude more expensive and make the project infeasible. Really exciting stuff. [0]: https://seasketch.org https://seasketch.org
- clementmas 4y agoI have a bunch of styles based on the OpenMapTiles schema. Is it possible to swap the underlying data with PMtiles?
- juliangoldsmith 4y agoDoes anyone know whether OpenAddresses is actually usable for an API? A few years back, I built something to do reverse geocoding based on Google Maps's prices. I never actually released it because I wasn't confident the coverage was good enough. I guess it might be worth dusting it off and seeing if someone finds it useful.