Upload
lodeblomme
View
14.124
Download
2
Embed Size (px)
DESCRIPTION
How Google presents the world with Google Maps, and what problems and opportunities that brings to developers. Offers an introduction to map projections and their consequences.
Citation preview
Google Maps Projection
And how to use it for clustering
Me = Lode Blomme
Software Engineer @ RouteYou
Blog: http://blog.lodeblomme.be
Twitter: http://twitter.com/lodeblomme
LinkedIn: http://www.linkedin.com/in/lodeblomme
RouteYou
Products :
• Community website: http://www.routeyou.com
• Online recreational route planning
• Maps for outdoor navigation for Garmin devices
Elevator Pitch : http://www.techcrunch.com/2008/10/24/elevator-pitch-friday-routeyou-makes-it-easy-to-find-the-perfect-driving-hiking-or-biking-route/
I presume everybody knows Google?
MAP PROJECTION
Any method of representing the surface of a sphere on a plane
Map Projection
(pseudo)cylindrical
(pseudo)conical
azimuthal
hybrid
AREASHAPEDIRECTIONBEARINGDISTANCE SCALE
Map projections can preserve one or more of the earth's properties, though not all of them simultaneously
Lambert Conformal Conic Projection
Cylindrical Projection
Cylindrical Equal-Area Projection
Mercator Projection
Google Maps : Zoom Level 0
256 px
256 px
Google Maps : Zoom Level 1
512 px
Google Maps : Zoom Level 1
Google Maps : Zoom Levels
0 • 1 tile (2(0*2)) 256 x 256 pixels = 65 536 pixels
1 • 4 tiles (2(1*2)) 512 x 512 pixels = 262 144 pixels
2 • 16 tiles (2(2*2)) 1024 x 1024 pixels = 1 megapixel
...
17 • 17 179 869 184 tiles (2(17*2)) 33.5 x 33.5 megapixels = 1 122 megapixels
...
19 • 274 877 906 944 tiles (2(19*2)) 134 x 134 megapixels = 18 000 megapixels
COORDINATE SYSTEMS
Assigning an n-tuple of numbers to each point in an n-dimensional space
Spherical Coordinate System
Cartesian Coordinate System
WGS 84 PIXELS
Everybody knows WGS 84 and pixels
Mercator Projection : The Math
$x =
($radius * deg2rad($lon)) - $falseEasting
$y =
(($radius / 2.0 * log((1.0 + sin(deg2rad($lat))) / (1.0 -sin(deg2rad($lat))))) - $falseNorthing) * -1
Radius
256 px
256 px
$tiles = pow(2, $zoom); $circumference = 256 * $tiles;$radius = $circumference / (2 * pi());
Radius
512 px
False Easting & False Northing
256 px
256 px
$falseEasting = -1.0 * $circumference / 2.0;$falseNorthing = $circumference / 2.0;
False Easting & False Northing
X : 0Y : 0
X : 1Y : 0
X : 0Y : 1
X : 1Y : 1
CLUSTERING
Partitioning of a data set into subsets, in which the data share some common trait - often proximity according to some defined distance measure
HAPPY ENDING
I thought we had a moment there
Scale
Scale