Class: Dotter::GMap
- Inherits:
-
Object
- Object
- Dotter::GMap
- Defined in:
- lib/dotter/gmap.rb
Class Method Summary collapse
-
.latlng_to_pixel(latlng, zoom) ⇒ Object
translate given coordinates to pixels on google map with given zoom.
Class Method Details
.latlng_to_pixel(latlng, zoom) ⇒ Object
translate given coordinates to pixels on google map with given zoom. implementation is based on: www.usnaviguide.com/google-tiles.htm
returns point relative to map (not tile!) beginning (0, 0)
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/dotter/gmap.rb', line 7 def self.latlng_to_pixel(latlng, zoom) c = 256 bc = 2 * Math::PI wa = Math::PI / 180 cp = 2 ** (zoom + 8) pixLngDeg = cp / 360.0 pixLngRad = cp / bc bmO = cp / 2 point = Dotter::Point.new(0, 0) e = Math.sin(latlng.lat * wa) e = 0.9999 if e > 0.9999 e = -0.9999 if e < -0.9999 point.x = (bmO + latlng.lng * pixLngDeg).floor point.y = (bmO + 0.5 * Math.log((1 + e) / (1 - e)) * -1 * pixLngRad).floor point end |