Shared publicly  - 
Good bye, Google Maps… thanks for all the fish

TL;DR: We at StreetEasy decided to build our own maps using, among other tools, OpenStreetMap, TileMill, MapBox and Leaflet, instead of paying hundreds of thousands of dollars per year to Google. And yes, the money pushed us into doing it, but we're happier with the result because we now control the contents of our maps. (and now there is a follow up post too )

We were all happy...
Our site, StreetEasy (, has been using Google Maps embedded in our pages for the last 6 years. We're a real estate portal, so most of our pages have maps in them. So when Google announced they new usage limits (see , we were a little worried.

25,000 free map views per day, and $4 per CPM (1,000 views) beyond that. On Christmas day, when everybody was opening their presents, we did ten times that. On a good day, we do 600K-700K pageviews (

We did the math and came up with numbers that reminded me of Oracle licensing in 1999. Six, seven, eight hundred thousand dollars. We met with Google salespeople, expecting to negotiate better terms, and they were nice, and they offered us discounts, but only to about half of what we've calculated.

In our opinion, their price was off by an order of magnitude. It's very, very hard to work out a $2 CPM cost in any site's business model, when most of the time, if you're lucky, you're making $1 CPM off your pages. And yes, StreetEasy does much better than that, and it would not have bankrupted us, but it would have also meant giving away a significant chunk of our profits.

It was not just the money!
$200,000 to $300,000 a year is, at the very least, the same as hiring a very good engineer for a year (and paying all the taxes and benefits and costs and still having a lot of money left). It was enough money to finally push us into doing our own maps.

Because despite Google Maps being such an awesome product, it had it's downsides. One is that your site looks just like every other site with maps on the Internet (and I know you can customize their colors now, but that costs even more!). Another is that you have no control over your maps, so when you're trying to point out the location of this wonderful apartment, Google might thing it's a good idea to cutter the map with random local businesses (and yes, they've gotten better at it, but often it's just noise). Or they might have bad data, and there's very little you can do about it except report it and wait. (I've always been annoyed at "Classon Pointe" being shown in the middle of Harlem, probably a mistake by some mapping data company decades ago, again, something that has been corrected, but that highlights the problem)

I've always wanted to have our own maps, but thought it would be impossible, or at the very least, a huge amount of work. Something not worth considering, given the rest of a long list of things we also wanted to build on StreetEasy. But with a potential invoice for a third of a million dollars hanging over our heads, we had enough "carrot" (or is it "stick"?) to revisit our priorities. At the very least, we should do more research and see what our options were.

Looking beyond GMaps
Our first option was, of course, Bing Maps. I'm sure Microsoft is having a great time helping all the Google Maps Refugees, and I have no doubt they would have offered us a very cheap licensing deal, but it still meant using someone else's maps, and leave us with license renegotiation risks a year or two down the road. But it was an option.

Then, my coworker +Jordan Anderson, sitting quietly across my desk, pointed out that his "other job", the site he had built with a friend before joining StreetEasy, the fabulous Ride The City (, did not use Google Maps, but their own tiles, and an open source JS library to display them.

A couple of days later, at a NYC Big Apps hackathon where we were showing off our public APIs, I met +Javier de la Torre (from and he showed me his awesome product, CartoDB ( and gave me a few more pointers. And I saw what +Alastair Coote was doing for his taxi app and got excited with the possibilities.

I spent the next week reading and browsing and searching, discovering the wonderful world of digital cartography, and being amazed at how far the open source tools had advanced in the last few years.

The world of Open Source Cartography
We now had a great tile renderer, Mapnik (, that was at the core of pretty much every mapping tool out there. Great "geo" and "gis" functionality for Postgres, in the form of PostGIS ( A few javascript libraries to present the results inside web browsers, such as Leaflet (, Open Layers ( and Modest Maps (, and other libraries to abstract your mapping backend behind a common API, such as Wax ( or Mapstraction (

But then I discovered the "second generation" of tools, built on top of what I just listed on the previous paragraph, and it blew my mind. Things like CartoDB or TileMill ( or Web Map Studio (

TileMill, in particular, was just amazing, and Carto CSS ( made map design look like something I could actually do!

And of course, OpenStreetMap (, the Wikipedia of mapping. An open source (well, technically, Creative Commons) data set, covering the entire globe, with lots of details (sometimes too much detail, like the voltage and gauge of a subway line!). It has a few errors here and there, but you can go and fix them yourself (as I've done

The path we took
I settled on Leaflet for the front end, mostly because it was small, fast, clean code with a good API that resembled Google Maps v2. It's a good thing that when we first implemented maps on StreetEasy, we did it through ruby that generated the JS code, so all I had to do was "implement an new backend". If I were to do it today, I might use Wax or Mapstraction instead, to ensure I could change map APIs if I had to.

It was fairly easy to implement most basic features. Showing a map, adding markers, adding polygons, info popups (we had our own code for that, just had to hook it on the right events). I spent a couple of days getting our "polygon editor" to work (something I plan to contribute back to Leaflet as soon as I have time to clean up the code). And of course, the dreaded "does it run on IE?" time (I ran into some issues with onload events on script tags, but that was all).

I installed Postgres and PostGIS, downloaded OSM extracts from, because there is no point in downloading gigs and gigs of worldwide data when all I care about is the area around NYC. Imported it using osm2pgsql ( and started playing with TileMill.

I discovered the work of Mike at Stamen (for example and was inspired by it. Found a couple of TileMill projects ( and to better understand how to organize them. Ran into High Road (, a set of queries that makes OSM roads much more manageable and stylable.

And I spent days and days tweaking maps. Just to get to a point where we were not unhappy with our maps. Something that was good enough to flip the switch.

We added building outlines from NYC Open Data (, and our own neighborhood boundaries to decide where to put the labels (and trust me, we have the best boundaries for NYC).

As soon as I had something that didn't cause my coworkers to vomit, I uploaded the tiles to S3 and started testing it on our site. A few days later, and a lot more map tweaks, we started using the new maps for some of our users. And as of Jan 10th, we flipped the switch for all pageviews on our site.

We decided to host our tileset with MapBox (, from the great guys at Development Seed.. We could have unpack the mbtiles file produced by TileMill and just upload them to S3 (see, but we went ahead and paid for MapBox, in part because it means less servers to worry about, in part because we want to support the guys that brought us TileMill, and in part because of the promise of more cool features down the road. And most importantly, because they promised to help us make our maps look nicer, and they know about nice maps.

Take a look at the results:

Where to now?
If I haven't made it clear, we're not completely happy with how our maps look, but we were happy enough to go ahead. We want to make them look great, with more data (such as subway stations) and better labels and lots of other little things. Development Seed will help us with that, and we've been learning a lot ourselves.

We'd also like to have a "live mapnik server", producing tiles on demand (and caching the results, duh) to make it easier to tweak our maps. Right now it takes a couple of days to go from OSM import to tile rendering to uploading multi-gigabyte files and finally showing them on the site. A live server would let us change a stylesheet and see the results right away.

We will try to contribute back to all these open source projects as much as we can. I already have some code for Leaflet for polygon editing and encoding, for example, and we've started doing edits on OSM.

What about geocoding?
You'd probably noticed I didn't talk about geocoding (the "art" of converting a street address into a set of coordinates in a map, in case you didn't know). That's part of what Google offers as part of their Maps APIs.

Well, at StreetEasy we built our own geocoder for NYC, using the City's database of streets and buildings. So it's not something we had to worry about as part of this transition.

But in case you need to do some geocoding, there are plenty of tools (for example that use OSM data.

The Year of the Open Map
I think that someone at Google got their pricing wrong by an order of magnitude. Large companies might be willing to pay that kind of licenses, but this is not the CMS market in 1998, where people would pay half a million for a Vignette license and another million for Oracle. There are so many open source options out there that the value of proprietary solutions has come down dramatically.

And if Google keeps pushing companies into experimenting with these open source solutions, it's only going to get better. I think 2012 is going to be the year of the Open Map. And I'm happy to be part of the front lines.

UPDATE I've posted a follow up with some clarifications at
Spencer Cooley's profile photorihana reea's profile photoAaron Klapheck's profile photoIgor Podolsky's profile photo
I agree with you on the pricing, even though I don't suffer any direct consequences because of it, I've read enough to get the uneasy feeling that the "bean counters" are now in control at Google, or, at least they now wield more power, there are some really horror stories about Google App and Map pricing. And true, it's their maps and app engine and they can price whatever they want, but, don't know, but it just looks like an old school licensing deal move, like you correctly mention. Very 90's Microsoft/Oracle-ish.

And regarding the 2012 as the year of the map, well, nothing like price shock to shake up the market, for better or worse.
Couldn't agree more.

Great post, thanks for sharing the obstacles you and the team faced. I remember back when Google announced (couple months ago) that they were going to charge for some of their APIs. Take for example, their "translate" API, they came up with prices for X number of CHARACTERS processed/translated. That technology is, in my opinion, almost impossible to implement with OpenSource software (or not?) since it involves massive computations applying AI and very big large data sets for it.

Charging for that, and many other APIs. I wonder if they actually "planned" this from the beginning. It just doesn't make any sense to offer many services for free just like that.
+Andrés Robalino Your comment reminded me of something I read back in the day, when Microsoft started giving away IE for free, to undercut Netscape Navigator, the same question was asked, How con Microsoft give away IE for free? Something unheard of back then. Well we all know how that turned out, and how long it has taken for IE to lose market share.

So yeah -- my opinion is yes, it was planned all along. Eric Schmidt was born out of Bell, Xerox, Novel, Sun, etc -- don't let that nerdy look fool you.
Thanks for this post. This is a ton of legwork for research into this subject.
Great post. Lots of interesting information and your site looks really nice. Small nit: Update your About page. "All our listings and buildings are mapped out with GoogleMaps". ;-)
This is a terrific post, and what you've produced looks wonderful. One problem I have with using people's google maps alternatives, is that I still want the address to trivially appear on my phone. If there was someway I could easily click to have a point on the map appear in another window, on Google Maps, or even click right and have you guys add it to my google map's starred positions, that would make your site that much more usable for me. (Though in Phoenix, sigh, I am not actually going to be using your site very often.)
This is spot on, we were in the same position. For our minor use, we would be shelling out around $80k to google this year. I took the impetus (and a free Dell Poweredge 2950) and rolled our own map server, styled it up using TileMill, and am very happy with the results. mod_tile is fast, mapnik2 renders non-cached maps quickly, and it's way cheaper. The only rough part is coming up with a routing server, for us services that use Google's routing engine...
+Paul Maunders The issue with even using MapQuest's Open service, is you are still beholden to them changing the deal from underneath you. Yes, it is using OSM data, but they still can rate limit. They seem pretty cool about heavy use with their geocoding service, but I can imagine them balking if you pull a million tiles from them a day.
You should have used a blogpost for this! You're definitely going to get links/traffic and it makes sense to get them directly to your site from an SEO perspective.
It's true that they MapQuest could also pull the plug at any time, but they currently state there are no preset limits, and it's a lot quicker to set up than building your own map server:

They only ask that you e-mail them if your app gets heavy usage, which they define as more than 4,000 tiles per second (345 million a day!! maybe it's a typo)
Using a "free" tileset, such as MapQuests, or stamen's, is a great way to get started... you can always replace it with your own down the road.
A great read. And thanks for the shout out! I wasn't aware of High Road before now, once I have the time I'll have to set about integrating it into my existing map setup.

One possibility I am thinking of using to save money with map tile hosting- putting an Amazon CloudFront CDN on top of it. I'm using TileStream on an EC2 instance right now, and plan to put CloudFront between it and my users to save some money and speed things up. Invalidating resources when changing map tiles will be a significant pain though, I suspect. But that's an adventure for after the BigApps deadline.
This "making our own maps" thing has been our philosophy at EveryBlock, where we've rolled our own since we launched in 2008. Here's an article at A List Apart that my cofounder wrote: -- and here's a presentation I did with an anti-Google-Maps rant at Where 2.0 in 2008:

Ironically, we've been considering changing over to a paid provider! Data updates are a pain, and there's other maintenance involved (getting map data, cleaning it up) that has tempted us to go back to the hosted route. Especially now that Google Maps has the customizable color schemes and toggleable map features, which were two of my main beefs with their product in the Where 2.0 talk I mentioned above. Of course, a site that covers only NYC is different from a site that covers multiple cities, so it's all about the tradeoffs.

I do agree that open maps are getting better and easier! The bigger issue is quality of map data.
Those map tiles are beautiful. I've used the Open Streets style before, but I think this is even better. Is this the OSM Bright style set you linked to?
Ouch! That is pricey! I guess one of the features you miss out on is the streetview aspect; knowing where the property is located is one thing but I'd personally like to be able to see the property at street level.
Beautiful and inspiring. Will you be licensing? ;)
looks like your map tiles are being rendered at the wrong resolution, If I can see the anti-aliasing in the fonts then there is certanly a problem. Maybe its the old 90 vs 100dpi for screens the website is suffering. Tested on an Galaxy tab.
Thanks for the heads up... I'll test it on a tab later. I guess it's probably related to browser zoom and a lot of lines and text having very sharp edges.
At Lumatic, we're building pedestrian maps for the top several thousand cities on the planet and rolling it out as a consumer service. We dug around a lot and are basing most of what we do on some great Nokia/NAVTEQ services and our own reindexing of OSM as a graph to overcome its data structure limitations (the latter of which we'd be happy to share if there's demand). The resulting map for San Francisco is up in the Android Market --
Thanks Sebastian. Great article just what the doctor ordered!!
Facing a similar situation we have made a move to Bing (which is not much cheaper for big volume). Checking your site I see that Directions functionality is not working, is that something you guys are having to figure out? Also you said that you have your own neighborhood polygons, any advice on providers for those on a national level? Thanks for the great post.
Great post. I'm sure this type of problem/solution will help developers lower the bar for taking in to consideration rolling your own maps instead of relying on Google. Thanks.
I wanted to add, that while it's great to see that it's working out for these guys; they seem to have a wealth of previous experience with working on map development/implementation, as well as having a limited area of NY. And with all the work they have done, they are still trying to reach the optimal solution with full functionality.

At some point this becomes a question of resource and expertise, which these guys seem to have.
This is cool, a ton to learn from here - much appreciated!
Tim, the quick answer to that is "because of TileMill".
What a great post.

Another service that's free and very useful (for converting IP addresses to coordinates, geolocation) is
Geocoding is a stumbling block - especially for those in countries where things like postcode and address data remains locked up.
Great post Sebastian. I think it gives a lot of insight to what is coming with paid Google Maps and how to become free with open data and open source software.

With CartoDB ( we are trying to provide an Open Source alternative to something like Fusion Tables, live rendering of overlays from a live database plus lot of other things like nice UI, powerful APIs to handle multiple tables, etc. It is all based on Open Source software like PostGIS and Carto for the styling in CSS.

It is great to see how mapping is becoming more main stream now thanks to Open Source software. The new Google Maps pricing are finally awaking people to take care of their maps, and that like you said is just gonna web maps more and more fun. 
I like that you write about Google Maps on Google Plus :)
Yeah, the irony is not lost on me... also, most of the information above, I found by searching on Google.
I am glad to hear the passion for making maps work on the web is out there (alive and well) for all. I worked for the company that became Google Maps .. Keyhole and I hear alot of similar things in your descriptions about hiring, money, and choices.that I heard when Keyhole was a small start up. I love your drive to find something that works for you when the costs of another solution become prohibitive. That was something the company faced while I was there. The company that provided imagery wanted more money (by an order of magnitude). Solutions were found and the company moved on .Like your experience with Google..Keyhole was later bought by Google and the cost of imagery and scale changed to look more like the Google maps you see today. I feel that if it weren't for the sucess of Google Maps there would not be the same hunger for imagery and tools that exist today in my experience I also feel that is the passion that I see in your post will lead to more and better free tools for all to use. Thanks for the post.
+Tyler Mills nothing prevents Google for giving out features in tiers. If someone wants all the bells and whistles, they can pay for it. For a normal map usage, their pricing doesn't make sense.
+1 for Leaflet, good stuff, easy to hack on. Thanks for talking about your experience. I'm working on some fun little geospatial data projects, and I started going away from Google maps when I found out how much a license was for their premiere maps.
The latest GDAL has some nice new features, it will now do simplification of geometry with ogr2ogr. It was released 2 days before I needed it. that's some serendipity.
The irony here is that Google ditched TeleAtlas for basically the same reasons you ditched Google: cost and control!
Google employs 5000 to 4000 people directly or indirectly to make google maps.The cost to make great maps is so much that, it is forced to share the burden is what i think.It is great for personal use anyways.
Great post. The map looks awesome!
Thank you for the great post! I'm trying geoserver with PostGIS and results are amazing!
Great and inspiring post! Do you have any pointers on creating a blended server-side/client-sie marker clustering solution using open-source tools? I'm building a web-app with a large number of markers (100K+) without openstreetmap.
Hello, I do not think Google got their pricing wrong. I think that they have changed the world of internet maps with their free maps. One of the purpose of Google is to avoid monopole. With their new pricing, they create an ecosystem where competition can occur.
Looks nice and works super smooth
Usability-wise, the 1st thing I found absent was middle-mouse-button zooming. It would be cool if middle-mouse-button zooming worked (and didn't scroll the page) while I am hovering my mouse cursor over the map widget.
You say "they offered us discounts, but only to about half of what we've calculated." - can I take that as a promise to take that money and donate it for the projects that you are now working with? Would be nice and fair and stuff.
+Sebastian Delmont This is a great post. I am always happy to see that there is so much innovation in the mapping space, especially for people who are passionate about creating them and interested in the various technologies to do so.

One thing that your post mixes up is page views with map loads. Not every page view is a map load. I've worked with several sites where they were concerned about usage limits, but turned out that their sites were using anywhere from 50% to 10% of their page views as map loads. In the case of your site, there were probably things you could have done to reduce the loads further, for instance updating a map when someone changes a search query instead of reloading the page. I realize that wasn't your only incentive in making the change, but it's important information to have out there.
The open-sourcing of content was presaged by Wikipedia. Wikis were invented a few years before, but Wikipedia and usable free content licences (even the awful GFDL) were what really got it going.

I've long thought OSM as something that would have fit Wikimedia's portfolio wonderfully - it's a marvellous example of a project really doing well with the Wikipedia model, without being a linked entity.

I remember a London Dorkbot presentation in 2004 on OSM - a friend who was working for Multimap pooh-poohed the idea that OSM could ever achieve a usable-quality map. I had been involved in Wikipedia for a few months at that time and considered this really obviously wrong, having seen what a few people just chucking in what they knew could achieve even at that stage ...
I love this post just for the pure ideology of it. Success thu openness verses a company who has become the next MS, IBM or Oracle that was built off these very principles at there conception yet joined the unopeness standards. I remember when google was a new thing and firefox was netscape and i could fit two hole albums on my HDD from napster beta. Of all the 100,000 dollar salary folks its consistently the Linux and FOSS developers who create and define the standards. Google claims to support these but that is not there main objective. That would be there bottom line and those two lines have a con-jolted relationship. Gmaps, A java framework built on top of Linux called Android and free, G+ integration in to every thing that equates to feature creep. From what people orginaly flocked to.... its like that part in Ridickk were the dude was like "i sold my soul to them" then walked in to the fire wile Riddick fought. (this image is hosted and disturbed buy google who in conjunction with facebook knows what you did last night) lulz
The maps looks great!. I remember the meeting with the Oracle sales guys, so crazy.
I take a tour at and looks much better than a few months ago. I promisse to check the Bike routes in Santiago and bring my feedback.
Thanks for sharing. This was a great read. I myself have decided to explore a project I have thought about for a while now. Now I have a cheap way of getting started. Keep sharing!
My site is already at about 6,000 pageviews/day, and brings in about $180/month in advertising revenue ($130 of which covers its hosting cost). If traffic were to increase, I can't see any economic sense in Google's pricing model -- I think that you're right that it's off by an order of magnitude. I suspect it represents wishful thinking from the business owner inside Google, trying to find a way to increase his/her budget.
This is an excellent write up about web mapping in 2012. Thanks for sharing!
excelente sebastian! - muy buen artículo y bastante info que desconocía, sigues siendo un mostro ché! un gran saludo desde chile ex-loquesea!
Readers should probably be reminded that OSM is a tiny nonprofit. (Not yet of charitable status, but incorporated as a nonprofit.) They could probably do with a bit of money their way, particularly if people are making money from the data: Not a legal requirement, but just a nice thing to do.
Great post! +Sebastian Delmont, just wonder why the Google Maps Premium did not work for you as an alternative?
quick question, does your new solution have an api to allow crowd-sourcing input via mobile location services?
Erik S.
Thanks for sharing your experience!

We have a way to go before we risk going over Google's daily free limit, but once we start approaching that day, we plan to do something similar, replacing all the client-side Google Maps code on our site with an open source package that can work with multiple tile sources, and then either render and serve our own OSM-derived map tiles, or draw on a commercial service with better pricing for our requirements.

I don't have a problem with Google charging for Google Maps, but the free pricing made it applicable for a broad range of uses, while the pricing they've chosen is only appropriate for a much, much narrower range of uses. In the end, we don't need everything Google is using to justify their pricing, including, to some degree, the quality of data. I think this is a tremendous opportunity for other people to fill the void left by Google, and hope that it gives a huge boost to OSM.
Any chance you would contribute the code (even in the form of an example + tutorial) to open source hosts like sourceforge or github?
@Chitika we are seeing the flood gates open from publishers looking for an alternative to Google Maps. We have built many layers on OSM and are fully supporting publishers with an API. We are also able to monetize the map successful with our ad partners (SuperPages, Yellowbook, Yahoo!/Bing, etc.) We have quite a few directory publishers that have a need to show a location of a particular business and we are able to deliver not only that location, but an advertisers based on that geo. - if you have any questions.
Interesting you went completely open source on this. Great article!
As always, nice job and excellent post on FOSS Sebas!
We went with OpenLayers and OSM for our labor union organizing tools. With on-server caching, it has worked quite well so far. OpenLayers paired with Backbone.js is a treat to program.
Keep up the good work. -Map Lover
I also put all of the commenters in my GIS circle.
This segment keeps moving. We've had to move off the available closed source geocoders and set up one of our own. We'll open it up as a web service before long (follow To the extent people want to use it in volume, we'll need to charge a little (a hella lot less than the GooG) and we won't require the use of any other services alongside it the way we do. Ditto for turn by turn routing, both for driving and true pedestrian routing -- we've been careful enough to specify what side of the road you are on!
For current "state of the art" on alternatives to proprietary tools and closed/licensed data sets, the FOSS4G conference is a great source of info. A more humorous take on the Google vs Open Maps debate is at ("GeoGlobalDomination: The Musical")
I will be doing the same thing. Built everything in google maps then realized I was violating the terms of service.
I view Google Maps as the "peoples" map. Any person can use Google maps for free and edit it to their delight. I have lots of maps which I have customized and edited on Google maps so unless Google Maps goes away I don't see myself changing. But as far as businesses go (and making money off of maps) I like the idea of competition to lower prices and maybe that means Google loses. Google seems to offer the best FREE services to people but suffers on the business end. I think that is the way it should be. If Google was focused on the business end and making money they wouldn't be Google. I have used Google Mapmaker on many occasions. It is easy to use and many of my changes are approved in a matter of days. I have never seen a comparable map service like that before.
Would appreciate very much your advise on the following subject:
I am a beginner Android developer and a novice to geolocation issue. I want to make an Android app that will collect Points of Interest in the user close proximity, make processing of them based on my proprietary algorithm and will later be able display them in map, timeline or any other custom format I'll design.
I thought of Google Places API, which looks like suitable for my purposes except of that they have usage limitations on the number of requests, while my expected app usage can easily surpass them (they speak about 150000 request per day).
My question is can I use instead OpenMaps and if yes, what APIs I need to use, given I don't intend to render my own tiles and provide some server service.
Add a comment...