From 8d243b437de0cea7b9c43cd0eb40257e5dc0cac6 Mon Sep 17 00:00:00 2001 From: Alex Reisner <alex@alexreisner.com> Date: Mon, 2 May 2011 18:01:11 -0400 Subject: [PATCH] Add map_link_url method to all supported Lookups. --- lib/geocoder/lookups/base.rb | 10 ++++++++++ lib/geocoder/lookups/bing.rb | 4 ++++ lib/geocoder/lookups/google.rb | 4 ++++ lib/geocoder/lookups/yahoo.rb | 4 ++++ lib/geocoder/lookups/yandex.rb | 4 ++++ 5 files changed, 26 insertions(+) diff --git a/lib/geocoder/lookups/base.rb b/lib/geocoder/lookups/base.rb index 8441efe1..3960df8b 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 843a413b..cba04c30 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 711ec67e..4d61dd6c 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 d035503a..1ce523ec 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 25c31015..452d2769 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) -- GitLab