Redfin Moves the Earth

There’s a pretty big technology change on today – the integration of Microsoft Virtual Earth as our underlying map platform. Redfin pioneered the use of satellite maps to display information about for sale homes. We built an in-house mapping solution using imagery acquired from various sources (mostly the USGS.) Since then a few other major players have come on the scene in the mapping world and it caused us to reconsider how we want to move Redfin forward.

We evaluated our top options: Google Maps, Microsoft Virtual Earth, or continue to develop our own mapping technology. An “arms race” is happening in the mapping space and it was clear that we don’t want to compete with Google and Microsoft in the map platform arena. We had to exit the map technology business and switch to a web mapping platform that met our needs.

In the end the race was close as the platforms are very similar in many respects, but Microsoft Virtual Earth was the best fit for our requirements. The table below shows how they compare.

  Google Maps Microsoft Virtual Earth
Speed of development ThumbsUp.GIF
API is easy to use
API is easy to use
Ability to support Redfin feature set

Overall, our features were supported; parcel outlines were a potential problem.

Overall, our features were supported; parcel outlines were a potential problem.

Easier to customize for a Redfin experience.

Map imagery (today & future)Photos are the most critical component to searching for homes online. Other than “can we make it work?”, this was the most important component for us.

Consistent imagery with reliable updates, but Google’s goal is to be fast, not deep; additional imagery is outside their focus.

Example: Houses in San Jose, CA on Google Maps

Imagery nationwide is spotty, but for Redfin-supported metros the aerials are good.

Example: Houses in San Jose, CA on Virtual Earth

Virtual Earth wins by adding “bird’s-eye” imagery for the same location. If as a home shopper, you are trying to decide on whether you liked a house well enough to tour, this view is a significant improvement over the 2-D views. (We didn’t get the Bird’s Eye view in this release, but we will soon.)

Microsoft also has some interesting future concepts for street-level imagery that could take our home searching experience even further.

Additional data layers and web services

Support for:
- Address/location lookup
- Geocoding
- Cross-street location lookup
- Business/Yellow Page listings
- Driving directions
- Direct integration into Redfin site


Support for:
- Address/location lookup
- Geocoding and batch geocoding
- Business/Yellow Page listings
- Driving directions
- Real-time traffic incidents/congestion
- Points of interest near a location
- Direct integration into Redfin site
- Getting a list of geographic entities for a particular geographic latitude/longitude

Browser support ThumbsUp.GIF

Firefox, Internet Explorer, Safari

Firefox, Internet Explorer

No support for the Safari browser on the Mac – this was a hard decision for us, as many of our San Francisco users are Safari users. [updated 1/31/08: Redfin now supports Safari 3]

Fortunately, Firefox 2 does work great on the Mac and is free, but still, not the result we wanted.

Cost ThumbsUp.GIF

(Service costs were similar.)


(Service costs were similar.)

FWIW, I originally had a third “Do-It-Ourselves” column, but the negatives were so obvious I dropped it. The data acquisition and integration development costs were just too high to be a sensible choice for Redfin moving forward.

Having completed the transition from our Flash-based Redfin map to Microsoft Virtual Earth, our principal engineer, Michael, had the following observations about developing for a web mapping platform:

Drawbacks developing with a web mapping platform:
No support for clickable or hoverable polygons for our property lot outlines, an important piece of the Redfin map experience. We use the VE API to paint polygons and pushpins on the map, but there is no VE facility for making those items clickable (i.e. when a user clicks on the parcel, the property information balloon should pop up.) Adding clickability was a MAJOR pain, since VE does not expose access to the underlying drawing primitives or tag the primitives with the ID of the corresponding VE object. It doesn’t look like Google Maps has this support either; so we’d probably have been equally pained with them.

Asynchronous pans and zooms make the programming model difficult. Redfin rolled our own pop-up balloons for property information and therefore Redfin is responsible to placing them in the correct location on the screen. VE pans and zooms asynchronously, so the map will actually sometimes move after we draw and place the balloon, but the balloon won’t move with it because VE doesn’t natively know to move it.

Pros developing with Virtual Earth:
API is very straight-forward and well documented. Getting a demo up and running was trivial, and the object model is clear.
Technical support exists and has been very responsive. We usually received a response within a few hours.

Cons developing with Virtual Earth:

Interoperability with other JavaScript libraries is compromised by VEs approach to the onunload handler. VE replaces the onunload handler with its own function, so that it can do cleanup of any items it has allocated. It appears to throw away any pre-existing onunload handler and other libraries that also require cleanup will be “orphaned” (their onunload handlers will not be called.) This is poor form, and can cause massive memory leaks in Internet Explorer 6.

It was difficult to get VE to show up in the correct location on the screen. Redfin uses absolute positioning and sizing in CSS to set the location of the VE map. Getting this to work correctly with VE took too many hours (and broke again numerous times.)

Microsoft doesn’t offer a “debug” version of their library. The library that they deliver is compressed and somewhat obfuscated, which makes it harder to reverse engineer and debug. We understand why they did that (customers shouldn’t need to be looking under the covers), but it does make debugging a pain for our developers.

Microsoft doesn’t support tying your app to a particular version of Virtual Earth. You can specify a major version (e.g. version 4) but you can’t specify a minor version (e.g. Microsoft reserves the right to swap versions out under their customers at their discretion. In general, this isn’t a problem, but it becomes a problem when you depend on the internal workings of VE. We do hack VE a little (since it doesn’t support all the features we need, as mentioned below), so we’re vulnerable to any VE changes – our site could break without notice due to a Microsoft change, which is… less than ideal, but was a necessary trade-off for the Redfin experience to continue.

Would we make the same decision to go with Virtual Earth if we were starting Redfin today knowing what we know now?
The answer is definitely “Yes.”

With Virtual Earth, Redfin is able to continue to deliver the same Redfin search experience experience with an immediate ability to double our geographic coverage and improve our road maps, quickly expand to more metropolitan areas, and add more features. You’ll see more of the features Virtual Earth provides integrated in future versions of and I’m sure we’ll write more as we go.

We’d love to hear how your experience developing with Microsoft Virtual Earth or Google Maps has compared to ours.

Update: In December 2008, Redfin decided to switch from Virtual Earth to Google Maps.


  • Marcelo Calbucci
  • Ross

    I’m trying to make a similar decision for a different type of app. I’m curious what MS’s pricing is like? Do you guys pay for VE? Or how does all that work? Just curious.
    Great post btw.

  • Robbie Paplin

    BTW – Did you ever consider doing what Zillow (and Google, Yahoo, etc) does – use DeCarta Drill Down Server?

  • Sebastian

    While we can’t discuss pricing, yes, VE does cost money. There are free versions of map solutions out there but they come with sponsored links and other limitations. An enterprise solution always comes at a price…
    On another note: We did consider the DeCarta solution. We ended up sorting that solution into the category of “Do It Yourself” as DeCarta has a great software product but (at least at the time we had to make a decision) wasn’t offering a true web platform. We really liked that VE and Google Maps are (almost) out-of-the-box solutions for our mapping needs.

  • Erik Hersman

    Many of the same reasons we chose Virtual Earth for as well. Birds-eye view was a big item, and the fact that Google didn’t yet have an enterprise offering.

  • AhmedF

    Umm – Google Maps does have an enterprise offering.

  • Kai

    Was MapQuest ever an option?

  • Andrew

    I hope this doesn’t make you too sad: It was just announced on their official maps blog today.

  • Sebastian Simsch

    Kai- We did look at MapQuest for a brief moment and decided not to pursue that option. MapQuest used to be on the cutting edge of map technology once upon a time, but now … well, judge for yourself …:-)

  • katy

    Thks really useful info…you say you discounted DeCarta because they weren’t offering a true web platform … can you expand on what you meant by that?

  • Sebastian Simsch

    DeCarta is offering software to power web or even offline solutions, but they don’t own the contents, e.g. street data, photos, yellow-page information. That means that in order to implement DeCarta we would have needed to spend much more engineering time than for the VEs and Google Maps of the world.

  • Yong Bakos

    Regarding mapquest, I actually went over to their office to complain about how badly they’ve fallen behind in their product offering, particularly with developers in mind.

    The Mapquest guys were open enough to listen over lunch and I gave them lots of feedback from the voice of the developer community. Although who knows if they can steer the ship in the right direction (remember, they’re AOL now.)

  • Yong Bakos

    What about geocoding? Did you decide to use Microsoft’s offering to geocode your MLS data?

  • John

    Thank you for your post, it helped me to see that my decision to go with Google was the right decision…

    Especially in regards to the two “Drawbacks developing with a web mapping platform” bullet points, which you wouldn’t have experienced if you were working with Google Maps. You don’t have that problem with asynchronous movements in Google and, as another person posted, you must have missed the GPolygon api entry.

    In addition, the majority of your CONS in relation to VE are mostly not there with Google.

    I’d recommend that now that you know what you want, and you’ve had some experience with programming a web-based map solution, you re-evaluate Google again.

  • Jim

    Google SDK’s version control has me sold. It allows you to stick with a specific version regardless of an update at Google. This helps manage changes. You can move to the next release when you’re ready, instead of waking up and finding out your website has crashed because your map vendor has upgraded overnight.

    All excellant comments. Google seems to be catapulting ahead.

  • Justin Britt

    @Yong – I’m commenting more than a year later than you, and Mapquest continues to fall farther and farther behind. I just don’t think they get it.