Mapping client pixel coordinates to global coordinates

The archive search doesn't work at the moment, so forgive me if this
question has been asked 100 times before.

I'm using the Adobe SVG client.
When I click on something I get an onClick event and is able to get the
mouse coordinates relative to the clients window. How can I map/translate
these to coordinates that are relative to the drawings (0,0)?

I have found example code for the most obvious problems, like scale, scroll
and pan, but I can't figure out how I make the client give enough
information to let me calculate the ratio between a client pixel and the
On example I found did the following:

	var viewbox = new String(SVGRoot.getAttribute("viewBox"));
	var viewboxes = viewbox.split(' ');
	ulXCorner = viewboxes[0];
	ulYCorner = viewboxes[1];
	var width = viewboxes[2];
	var height = viewboxes[3];
	var pixWidth = SVGRoot.getAttribute("width");
	var pixHeight = SVGRoot.getAttribute("height");
	origPixSize = width / pixWidth;

but this only works if the width and height attributes does not have units.
Unfortunately my SVG-files (converted from AutoCad) specifies units for the
aforementioned attributes as shown here:

<svg onload="SVGinit(evt)" onfocusin="SVGfocusin(evt)"
onfocusout="SVGfocusout(evt)" onactivate="SVGactivate(evt)"
onclick="SVGclick(evt)" onmousemove="SVGmousemove(evt)"
onmouseup="SVGmouseup(evt)" onmousedown="SVGmousedown(evt)"
onmouseover="SVGmouseover(evt)" onmouseout="SVGmouseout(evt)"
onscroll="SVGscroll(evt)" onzoom="SVGzoom(evt)" onresize="SVGresize(evt)"
style = "shape-rendering:optimizeSpeed; text-rendering:optimizeSpeed;
image-rendering:optimizeSpeed" width = "9in" height = "6in" viewBox =
"-139766 -83868.2 339501 252740" preserveAspectRatio = "xMidYMid"><script
type="text/javascript" xlink:href="/js/svg.js"/><rect x = "-139766" y =
"-83868.2" style = "fill:#FFFFFF" width = "339501" height = "252740"/> 

Any ideas?

Michael Bjerregaard-Pedersen

Received on Wednesday, 9 January 2002 09:35:48 UTC