Originals at http://myweb.tiscali.co.uk/ivorw/slides/geogmod.ppt - turned into PDF by Dom and transcribed by me.
Geographical perl modules
- Some etymology
- geo'graphy - Drawing the Earth
- geo'metry - Measuring the Earth
- The interest in geography
- The Open Guide to London
- Geocache, MUD-London and other web based mapping ideas
- 'Grubstreet' had map links with OS grid coordinates (www.streetmap.co.uk)
- We can use the X and Y to plot a map.
- [map with grid and icons of beer, knife and fork, tube sign]
- 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 <strike>flat</strike>round
- Latitude and Longitude are angles
- 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 (eg 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/Long - Geography::NationalGrid?
- Geography::NationalGrid?
- Object Oriented interface
- Each object is a location
- As parameters to new specify one of the following: Lat/Long; OS Grid reference e.g. TQ 123456; 6 digit Easting and Northing (ie X and Y)
- Method calls include: latitude, longitude, gridReference, easting, northing, deg2string( $degrees) (converts an angle to degrees, minutes and seconds)
- Subclassable
- Subclasses are used to implement grids for individual countries
- The module comes with Geography::NationalGrid::GB and Geography::NationalGrid:: IE
- Back to OpenGuides
- Location and find_by_distance are based on the Ordnance Survey grid
- The Ordnance Survey 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 is R = EcosA where E = radius of Earth, A = latitude
- The radian approximation
- For small theta, sin theta < theta < tan theta (theta must be in radians)
- For a small distance on the ground the conversion between lat/long and X/Y is linear
- Transverse Mercator revisited
- There is an emerging standard , UTM - Universal Transverse Mercator
- It is not UK-centric
- Problem #2
- The earth is <strike>flat</strike> <strike>round</strike> squashed
- The earth is an oblate spheroid
- More like the shape of an apple than a ball
- Instead of projecting onto a cylinder we project onto an ellipsoid
- To use UTM
- You need to specify a datum. This includes an ellipsoid and offsets (false easting and false northing)
- Geo::Coordinates::UTM
- Takes an ellipsoid, not a datum. Hence no internal facility for false easting and 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
