LuciadRIA can convert coordinates of objects such as points from one coordinate reference system to another.
To perform such a conversion, you first need to create a
Transformation object using the factory methods in the
Program: Transforming points between georeferences shows how transformations are used in the
MouseLocationComponent, which displays the coordinates under the mouse pointer on the screen.
A transformation is created from the map’s
CoordinateReference, which usually expresses coordinates in meters, to an arbitrary output
CoordinateReference defaults to WGS84, which expresses coordinates in latitude and longitude degrees.
Together with the transformation, a number of points are created that will hold transformation results.
When the mouse is moved on the screen,
event objects that contain the location of the mouse in the browser window are passed to the
This location allows us to calculate the location of the mouse pointer on the map.
These view coordinates (stored in
this._tempViewPoint) are transformed to coordinates on the map by calling
transform() on the Map’s
At this point,
this._tempMapPoint contains the location on the map in meters.
To know them in latitude/longitude degrees,
this._tempMapPoint is passed to the
transform() method of the transformation we created.
The location on the globe under the mouse pointer is available in
//transform points from view coordinates (in pixels) to map coordinates (in meters) this._tempViewPoint.move2D( event.clientX - this._mapNodePosition.left, event.clientY - this._mapNodePosition.top ); this._map.viewToMapTransformation.transform(this._tempViewPoint, this._tempMapPoint); //transform the point in map coordinates to the output reference (latitude/longitude) this._transformation.transform(this._tempMapPoint, this._tempModelPoint);
On a 3D map, the
In addition, the
In a 2D map, the