geographical perl modules
DESCRIPTION
Geographical perl modules. Some etymology. Some etymology. geo'graphy Drawing the Earth. Some etymology. geo'graphy Drawing the Earth geo'metry Measuring the Earth. The interest in geography. The interest in geography. The Open Guide to London - PowerPoint PPT PresentationTRANSCRIPT
Geographical perl modules
Some etymology
Some etymology
geo'graphyDrawing the Earth
Some etymology
geo'graphyDrawing the Earth
geo'metryMeasuring the Earth
The interest in geography
The interest in geography
The Open Guide to London
Geocache, MUD-London and other web based mapping ideas
The interest in geography
'Grubstreet' had map links with OS grid coordinates (www.streetmap.co.uk)
We can use the X and Y to plot a map.
The interest in geography
X
Y
Find by distance
We know the location of A (X1, Y1)
We know the location of B (X2, Y2)
The distance between them is:Sqrt ( (X2 - X1)^2 + (Y2 - Y1)^2)
And: OS eastings and northings work in Metres
BUT: everyone else uses Latitude and Longitude
The standard for GPS
Works worldwide
The problem
The world is flat
The problem
The world is flat round
Latitude and Longitude are angles
Mercator's Projection
Mercator's Projection
Was designed for nautical use
Preserves angles (azimuth, heading)
Distorts large distances
Works well over short range distances
The Mercator projection is geared to temperate latitudes (e.g. Europe)
Transverse Mercator
Ordnance Survey Grid
Is a transverse Mercator, with false (offset) Easting and Northing.
A perl module exists to convert between OS Grid and Lat/LongGeography::NationalGrid
Geography::NationalGrid
Object Orientated interface
Each object is a location
As parameters to new specify one of the following:Lat/LongOS Grid reference e.g. TQ 1234566 digit Easting and Northing (i.e. X and Y)
Geography::NationalGrid
Method calls include: latitude, longitudegridReferenceeasting, northingdeg2string( $degrees )
Converts an angle to degrees, minutes and seconds
Geography::NationalGrid
Subclassable
Subclasses are used to implement grids for individual countries.
The module comes with:Geography::NationalGrid::GBGeography::NationalGrid::IE
Back to OpenGuides
Location and find_by_distance are based on the Ordnance Survey grid
Back to OpenGuides
Location and find_by_distance are based on the Ordnance Survey grid
The OS charge £££ licence fees to use their data and maps
Back to OpenGuides
Location and find_by_distance are based on the Ordnance Survey grid
The OS charge £££ licence fees to use their data and maps
We want a system that will work outside the UK and Ireland
Why don't we do it ourselves?
Radius of a circle of parallel
R = E cos A
where
E = radius of EarthA = latitude
The radian approximation
For small θ
sin θ < θ < tan θ
θ must be in RADIANS
The radian approximation
For small θ
sin θ < θ < tan θ
θ must be in RADIANS
For a small distance on the groundThe conversion between lat/long and X/Y is
linear
Transverse Mercator revisited
There is an emerging standard, UTMUniversal Transverse Mercator
It is not UK-centric
Problem #2
The world is flat roundsquashed
The Earth is an oblate spheroid
More like the shape of an apple than a ball
Instead of projecting onto a cylinder, we project on to an ellipsoid
To use UTM
You need to specify a datumThis includes an ellipsoid and offsets
(false easting and false northing)
Geo::Coordinates::UTM
Takes an ellipsoid, not a datumHence no internal facility for false easting
or false northing.
Non OO interface.
latlon_to_utm
my ($zone,$east,$north) = latlon_to_utm ( 'clarke 1866', 98.251, 2.562);
utm_to_latlon
my ($lat,$long) = utm_to_latlon ('clarke 1866', '30V', 12554, 41562);
Plug-ins for CGI::Wiki and OpenGuides
CGI::Wiki::Plugin::Locator::UK
CGI::Wiki::Plugin::Locator::UTM