There are a lot of free tools out there to convert from UTM to Lat/Long. Fine enough, but I need to go the other way; from WGS-84 to lat/long-format.
But it's more complicated than that; 'couse I need the result to be in UTM-33 (nordic) zone. This might sound like a bad idea; why would I like to "force" the zone to 33N, when the geographical point might be laying in another zone ...
Well; the thing is that I already have a database with UTM33-coordinates of every address in Norway.
Those of you that are familiar with UTM @ Northern Europe, knows that Norway spans across several zones; from 31 to 36. (Okay, maybe we only spans from 32 to 36, cause of the strange width of zone 32V, but thats another discussion).
So, back to my problem: all my addresses are already given in UTM-33 format (with negative values when out of range). How can i proceed to get my Lat/Long into UTM-33?
I need a solution in PHP, and after a lot of debugging with "gPoint", I found out it just won't work ...
(gPoint is great to convert from/to UTM, but it will always return the UTM x/y-pair in the "correct" zone block. I don't want that! I need to always get results in zone 33, regardless of what is actual correct..)
I finally found a solution though Proj4 (thanx SlightlyCuban)!
It is impossible to guess correct format for transformation, and I was struggling for a while ... then I discovered a really handy webpage: http://spatialreference.org. Here I found the definition I needed (
EPSG:2078 = "+proj=utm +zone=33 +ellps=intl +units=m +no_defs"
)The PHP-implementation of Proj4 needs hard-coded definitions; you cannot pass by a definition ad-hoc. EPSG:2078 was originally missing from Proj4php. Yay; lucky me!
I would therefor recommend to test Proj4 via
Node.js
andproj4js
(see my little demo at http://pastebin.com/1BP8cWpj).To succeed, I had to fork the Proj4PHP-library, and add a definition file for EPSG:2078 ...