<%attr> ad => 1


Greasemap is not the main product of Vinq -- it is just a free GPL plugin we released as a sideline to our main business of software development consulting for Fannie Mae Foundation and other large clients.

Greasemap is a "user script" for Greasemonkey, which is a plugin framework for Firefox. It augments any web page you visit by searching the page for geocodeable addresses or other geotags. If it finds any, it automatically shows all such locations on a Google Map which is injected into the page you are viewing, within an iframe from Vinq.com.

The maps from Google remain interactive; you can zoom in, pan around, etc. The map will be 1 wide map if there are multiple locations found, or 2 smaller maps (an overview map and a zoomed in map) if there is just one location.


To install Greasemap:
  1. Download and install Greasemonkey
    (NOTE: You may see a thin bar at the top of Firefox that says "Firefox prevented an extension from loading". Click the button at the right side of that bar, then "allow" extensions from that site, then try again to install Greasemonkey -- it will work.)
  2. Restart Firefox
  3. Return to this page and right click on this link to Greasemap 0.6 Beta, then choose the first option "Install User Script" to install the Greasemap script in your browser.

To uninstall Greasemap, go to the Tools > Manage User Scripts menu in Firefox, select Greasemap, and click the Uninstall button. You can also use this panel to temporarily disable it. % my $ustyle = ''; % if ($r->the_request =~ m/upgrade/) { % $ustyle='style="background-color: #FF6; padding: 4px 4px 4px 1px"'; % }

> To upgrade Greasemap, first uninstall it, then follow step 3 above to install the latest version. Sorry for the convoluted reinstall requirements; this is a limitation of Greasemonkey.

Currently supported patterns

  • 1600 Amphitheatre Parkway, Mountain View, CA 94043 (zip code is optional)
  • <meta name="geo.position" content="41.328,-110.292"> (as on sites linked from geourl.org)
  • <meta name="ICBM" content="41.328,-110.292">
  • N 42 25.159 W 071 29.492 (as on geocaching.com)
  • geo:lat=... (as on Flickr.com/photos/tags/geotagged/)
(geo.position and ICBM may also use semicolons to separate the lat + long)

The geocoding is based on Tiger streets data, using the Perl module Geo::Coder::US. It will not work for addresses outside the U.S.


Kudos to Google + Greasemonkey + Firefox + O'Reilly's Where 2.0 conference for inspiring this and making it possible! To learn more about how to write plugins for Greasemonkey, visit Dive Into Greasemonkey. To learn more about the Google Maps API, visit www.google.com/apis/maps/

Greasemap was authored by Mark Torrance (marktorrance.com blog).

Planned Improvements

  • Switch to POST for better network handling of addresses for geotagging
  • Make map indicators link to the place on the page below that contained that address, and vice-versa
  • Highlight addresses in the page when clicking on map indicators or addresses in the list above
  • Zoom the map to an address when clicking on the address in the page
  • Use dual maps for more than one indicator, as long as they are closely grouped, so as to show context (we do this already when there's just one map pin)
  • Support for Canadian and UK addresses


Version 0.6 released Thursday, July 21, 2:19pm PDT
  • Removed menu choice to show/hide map by default, since it requires GM_ functions which are insecure and cause the script to be disabled in the latest release of Greasemonkey
Version 0.5 released Tuesday, July 19, 5:49pm PDT
  • Make address matching more forgiving, allowing zipcode-less addresses with or without a comma before the state abbreviation
  • Don't add DHTML output until onload time, for greater reliability and to avoid duplicating page contents
  • Fix some bugs which express themselves when other greasemonkey scripts are also adding content to the top of the page: the close-map X wasn't positioned properly, and clicking the close-map X box sometimes deleted the other scripts' output rather than the greasemap.
  • Dom-ify the meta-tag parsing code.
  • Remove exact duplicates from the spots list, so that if a page has both a geo.position and ICBM tag it doesn't get counted twice.
  • Thanks to Jeff Dairiki for these improvements!
Version 0.4 released Thursday, July 14, 7:42pm PDT
  • New exclude set for maps.google.com/* so we don't add greasemap to those pages (note: you can control your own list of sites to greasemap or not greasemap through the "Manage User Scripts" menu item in Firefox)
  • New link to open a big window showing the map
  • New big map view supports click on pins or click on address from list to see address on the pin, link to driving directions from Google
  • Clicking a map icon or an address highlights the corresponding address with a yellow background and centers the map on that icon
  • Support for geo:lat and geo:long tags on page as in Flickr photos (search on Flickr for tag "geotagged")
  • Support for lat + long coordinates as provided on www.geocaching.com (look at an individual geocache page)
  • Greasemap now allows greasemapping pages on Vinq.com (other than the greasemap.html iframe URL itself)
  • Additional regex to match addresses without zipcodes, such as on Google Movies search for Crash near an address in NYC
Version 0.3 released Saturday, July 2, 2:19pm PDT
  • Buttons to show/hide the map
  • Preferences for whether you want the map shown by default when you hit a page, or if you would prefer to just see the fact that there were addresses which matched -- control this from the menu "Tools > User Script Commands"

Suggestions? Kudos?

Email info@vinq.com

Before Greasemap

With Greasemap

Just an example -
Greasemap works with any site