I have an image of a map and want to correlate latitude and longitude
to the x,y of the image. Is there a way to input a few points into a
mapping algorithm and then have it map the entire image? Is there a
java library dedicated to just this or some code that someone can
guide me to???
there are two basic flavours of problem.
One is you have map of a municipality with roads, gas lines, telephone
poles each on separate maps. When you overlay the maps you discover to
your horror that they are out by hundreds of feet. You need a way of
synching them together. What you do is find survey points and mark
them on each of the maps. Then you use a sort of rubber sheet
transform that drags these points to the proper points on your
geographic grid. The points in between are interpolated. If this does
not give you accurate enough overlay, you go out and survey some more
points and mark them on your maps. Here we are treating the earth as
if it were a flat plane.
If you are mapping larger areas, the curvature of the earth comes into
play, and even the elongation and even and its pear-shaped ness. There
are dozens of co-ordinate systems for 2D and 3D mapping on the earth's
surface. The math is pretty hairy to convert between systems, but it
boils down to a lot of trigonometry.
Normally you use a mapping package that does these sorts of
transformations for you. Back in the 70s. Silicon Graphics was big in
this area.
Back then I got involved in photogrammetry for the local power
utility analysing aireal photographs to create 3D maps of powerlines
and "danger trees" monitoring when they might grow big enough to
interfere with the lines."
I was also involved in mapping pipes for the gas utility. I have not
kept up on how it has evolved since.