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)