image coordinates to geographic coordinates

Jan Hartmann j.l.h.hartmann at UVA.NL
Thu Oct 21 07:29:48 PDT 2004


temiz wrote:
>
> Despite all my  efforts, I can not correctly convert image coordinates
> to geographic coordinates (UTM).
>  what might  the javascript code be ?
>
> here is my code:
>    x_pct = (evt.clientX / width);
>     y_pct = 1 - (evt.clientY / height);
>     x_map = ext0 + ( (ext2 - ext0) * x_pct);
>     y_map = ext1+ ( (ext3 - ext1) *  y_pct);
>

This should work, provided that width and height are the current values
of the image's MAPSIZE and ext-ext3 the current values of MAPEXT. A
problem could be that you use global coordinates for the click: clientX
and clientY are measured from the upper left corner of the browser
window. If your image is somewhere else on the page, you need to
subtract the coordinates of its upper left corner from the global click
coordinates. For simple web pages (without nested HTML-elements) you can
do this simply by:

<img id=mapImgId>
<script>
var mapImg = document.getElementById("mapImgId")
var imgX = evt.clientX - mapImg.offsetLeft
var imgY = evt.clientY - mapImg.offsetTop
x_pct = imgX / width   // imgX / mapImg.offsetWidth would work too
...
</script>

Hope this helps,

Jan


Jan Hartmann
Department of Geography
University of Amsterdam



More information about the MapServer-users mailing list