MLSs Dealing With The Pandemic: Virtual Open Houses and DOM Read More

Mapping Mayhem

Mar 27, 2007 Michael Wurzer

We’re designing a new mapping module for our MLS software and one of the key design decisions we’re trying to make is how to handle large listing search result sets on the map. The challenge is that the current method of using JavaScript to manage the display of the listing points on the map isn’t scalable much beyond a few hundred and certainly not to several thousand listings. Other sites that use mapping seem to deploy a couple of methods to solve this challenge and I’m interested in which one you all think is best.

1. Only Display the First 50 (or some other number) of Matches. This approach solves the problem by only displaying a set number of listings on the map at one time. A good example of this is ShackPrices, which limits the display to the first 50 matches. This approach has the advantage of being relatively clear to the user and allows the user to sort the results to see the “most important” 50. The disadvantage is that it doesn’t give the user any sense of the context of the larger result set on the map.

2. Require the User to Zoom In. This approach solves the problem by requiring the user to zoom in on the map to a point where a manageable number of listings are displayed. An example of this approach is John L Scott, which shows this when too many matches exist:

johnlscott_too_many

The advantage of this approach is that it’s pretty easy. The disadvantage is that it limits the usefulness of the map to relatively small or less active listing areas.

3. Clusters. The third approach is to use “cluster points,” which basically uses a single point to resprent a large number of listings. Trulia uses this approach:

trulia_cluster_point

The advantage of clusters is you can still get some sense of the listing counts in an area even with high volumes. The disadvantage is that you still don’t get a full context. I think Trulia’s approach could be improved slightly by using varying sized icons to represent the relative size of the listing counts, similar to how GapMinder (recently bought by Google) does for statistics.

4. Non-Active Points. Another approach is to not use JavaScript to display the points, but rather pre-render map image tiles at higher zoom levels on a nightly basis and then display them as a tile overlay. This is the approach taken by ColoradoHomeStop and here’s a screen shot of listings in and around Denver:

coloradohomestop

This approach is similar to the heat maps used by Trulia and others in that the map tiles are pre-rendered as opposed to rendering them on the fly or live. The disadvantage, of course, is that the data isn’t live, it’s at least a day or more old, but at these high zoom levels, that shouldn’t matter too much. The advantage is that you can see the full context of the listings at all zoom levels. This approach can look really cool with different colors per status or other key criteria to see trends on a more macro level.

Please let us know what you think is the best of the approaches described above.

Take Our Poll

(I originally had included a poll option here, but it didn’t work properly because we’re using cross domains. Sorry. We’ll try to get the poll added back in but, until then, please add your comments below.)


An interesting side note is that while publicly accessible web sites can easily mash-up Google or other map systems, MLS vendors don’t have that luxury on the private side of the MLS because Google’s license requires the site to be “generally accessible to consumers.” Google and others do have options for commercial applications but we also need to integrate parcel maps, land use, flood zone and other layers into the mapping, which aren’t available through Google. This is our third map system integration into our MLS software. Like many MLS vendors, we started with MapQuest Enterprise Service in the early days. A couple of years ago, we switched to GeoJet so we could add parcel and other mapping layers to the system. Now we’re migrating all of our clients to MapServer. We’re very hopeful this will be our last mapping integration. 🙂 We’ve now got GIS expertise in-house and are working directly with a very large number of counties throughout the country on collecting parcel maps, imagery and other data layers.