wiki:Ivor's_Geo_Talk_Slides

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
Last modified 12 years ago Last modified on Nov 23, 2005, 1:48:42 PM