module PixelDistance
Constants
- OFFSET
- RADIUS
- VERSION
- ZOOM
Public Class Methods
from_coords(lat1,lon1,lat2,lon2,zoom = nil)
click to toggle source
# File lib/pixeldistance.rb, line 8 def from_coords(lat1,lon1,lat2,lon2,zoom = nil) zoom ||= ZOOM x1 = lon_to_x(lon1) y1 = lat_to_y(lat1) x2 = lon_to_x(lon2) y2 = lat_to_y(lat2) Math.sqrt((x1-x2)**2 + (y1-y2)**2).to_i >> (21 - zoom) end
lat_to_y(lat)
click to toggle source
# File lib/pixeldistance.rb, line 23 def lat_to_y(lat) (OFFSET + RADIUS * Math.log((1 + Math.sin(lat * Math::PI / 180)) / (1 - Math.sin(lat * Math::PI / 180))) / 2) end
lon_to_x(lon)
click to toggle source
# File lib/pixeldistance.rb, line 19 def lon_to_x(lon) (OFFSET + RADIUS * lon * Math::PI / 180).to_i end
Private Instance Methods
from_coords(lat1,lon1,lat2,lon2,zoom = nil)
click to toggle source
# File lib/pixeldistance.rb, line 8 def from_coords(lat1,lon1,lat2,lon2,zoom = nil) zoom ||= ZOOM x1 = lon_to_x(lon1) y1 = lat_to_y(lat1) x2 = lon_to_x(lon2) y2 = lat_to_y(lat2) Math.sqrt((x1-x2)**2 + (y1-y2)**2).to_i >> (21 - zoom) end
lat_to_y(lat)
click to toggle source
# File lib/pixeldistance.rb, line 23 def lat_to_y(lat) (OFFSET + RADIUS * Math.log((1 + Math.sin(lat * Math::PI / 180)) / (1 - Math.sin(lat * Math::PI / 180))) / 2) end
lon_to_x(lon)
click to toggle source
# File lib/pixeldistance.rb, line 19 def lon_to_x(lon) (OFFSET + RADIUS * lon * Math::PI / 180).to_i end