diff --git a/lib/geocoder/lookups/base.rb b/lib/geocoder/lookups/base.rb
index 8441efe1931f8e7e9ea34756655477863de7a737..3960df8ba01b10e5c80c19a39fb1cffc1f3d65f7 100644
--- a/lib/geocoder/lookups/base.rb
+++ b/lib/geocoder/lookups/base.rb
@@ -39,6 +39,16 @@ module Geocoder
         results(query, reverse).map{ |r| result_class.new(r) }
       end
 
+      ##
+      # Return the URL for a map of the given coordinates.
+      #
+      # Not necessarily implemented by all subclasses as only some lookups
+      # also provide maps.
+      #
+      def map_link_url(coordinates)
+        nil
+      end
+
 
       private # -------------------------------------------------------------
 
diff --git a/lib/geocoder/lookups/bing.rb b/lib/geocoder/lookups/bing.rb
index 843a413b034a9e986f825a0661cff8f4c5ccc05c..cba04c30814e7991acbf021a9aa35db28fc6d15f 100644
--- a/lib/geocoder/lookups/bing.rb
+++ b/lib/geocoder/lookups/bing.rb
@@ -4,6 +4,10 @@ require "geocoder/results/bing"
 module Geocoder::Lookup
   class Bing < Base
 
+    def map_link_url(coordinates)
+      "http://www.bing.com/maps/default.aspx?cp=#{coordinates.join('~')}"
+    end
+
     private # ---------------------------------------------------------------
 
     def results(query, reverse = false)
diff --git a/lib/geocoder/lookups/google.rb b/lib/geocoder/lookups/google.rb
index 711ec67e690d5717d27053b214b4f78a2d0a89ff..4d61dd6c5090747e4c9e9ab5dd82b5dcc604157f 100644
--- a/lib/geocoder/lookups/google.rb
+++ b/lib/geocoder/lookups/google.rb
@@ -4,6 +4,10 @@ require "geocoder/results/google"
 module Geocoder::Lookup
   class Google < Base
 
+    def map_link_url(coordinates)
+      "http://maps.google.com/maps?q=#{coordinates.join(',')}"
+    end
+
     private # ---------------------------------------------------------------
 
     def results(query, reverse = false)
diff --git a/lib/geocoder/lookups/yahoo.rb b/lib/geocoder/lookups/yahoo.rb
index d035503a305e74919ed65e949009e534c6b5a599..1ce523ecc304a7973f5062e275cfc78473972a43 100644
--- a/lib/geocoder/lookups/yahoo.rb
+++ b/lib/geocoder/lookups/yahoo.rb
@@ -4,6 +4,10 @@ require "geocoder/results/yahoo"
 module Geocoder::Lookup
   class Yahoo < Base
 
+    def map_link_url(coordinates)
+      "http://maps.yahoo.com/#lat=#{coordinates[0]}&lon=#{coordinates[1]}"
+    end
+
     private # ---------------------------------------------------------------
 
     def results(query, reverse = false)
diff --git a/lib/geocoder/lookups/yandex.rb b/lib/geocoder/lookups/yandex.rb
index 25c31015f42c85b5c8edbdecbe781c09e4bdcd7c..452d27694eea2728450e6cb05877b909ee441f7f 100644
--- a/lib/geocoder/lookups/yandex.rb
+++ b/lib/geocoder/lookups/yandex.rb
@@ -4,6 +4,10 @@ require "geocoder/results/yandex"
 module Geocoder::Lookup
   class Yandex < Base
 
+    def map_link_url(coordinates)
+      "http://maps.yandex.ru/?ll=#{coordinates.reverse.join(',')}"
+    end
+
     private # ---------------------------------------------------------------
 
     def results(query, reverse = false)