
496
|
Chapter 9, Mapping with Other People
#97 Set Up an OpenGuide for Your Hometown
HACK
If you just hand SVG::Plot a list of latitude-longitude points, you’ll quickly
run into problems. First, the points will be unprojected. As you head further
north on Spaceship Earth, the distortion of longitude against latitude
becomes greater. At 60 degrees north, degrees of longitude are half the
width in meters than they are at the equator, so you’ll wind up with a very
long, thin, wrong-looking map. Second, SVG only displays at a resolution of
one pixel and rounds up or down all decimal fractions of a point. If you try
to plot latitude and longitude values over the relatively small area of a city,
you’ll wind up with one big blob of points layered on top of each other!
For countries that are much taller than they are wide, such as the main land-
mass of the UK, UTM is often the best-looking projection. (The UK Ord-
nance Survey’s grid system is based on a Transverse Mercator projection.)
To convert coordinates to UTM, you have to know which of 60 zones you’re
in; with the map at http://www.dmap.co.uk/utmworld.htm, you can find this
out in seconds. For more on UTM conversion, see “Work with Different
Coordinate Systems”
[Hack #26]
A quick and sophisticated solution is to use the magical PROJ.4 library to con-
vert your set of lat/long points into an (x, y) Cartesian projection.
Geo::Proj4
is another of the Perl ...