Dear All,
I would like to get the position in lat/long (WGS84 ) of a point from a
map displayed in various projections (WGS84, Lambert, Mercator ).
I am getting strange results with the code below.
With a map of France displayed entirely on the screen I am getting
errors from nearly 0.5 degree, while if I zoom I am getting errors of
few minutes .
That even if I modify the lenient parameter or sampling envelope points
in :
ReferencedEnvelope worldwg84 = env.transform(
Projections.getCRS(Projections.WGS84), true,20);
Is the code I am using wrong, is there a solution to get a better
accuracy ?
Best regards,
Pierre
Version used Geotools 2.4.4
CRS build with the following data :
WGS84 = "GEOGCS[\"WGS84\", DATUM[\"WGS84\", SPHEROID[\"WGS84\",
6378137.0, 298.257223563]], PRIMEM[\"Greenwich\", 0.0],
UNIT[\"degree\",0.017453292519943295], AXIS[\"Longitude\",EAST],
AXIS[\"Latitude\",NORTH]]";
LambertFrance =
"PROJCS[\"France_II\",GEOGCS[\"GCS_NTF_Paris\",DATUM[\"Nouvelle_Triangulation_Francaise\",SPHEROID[\"Clarke_1880_IGN\",6378249.2,293.46602]],PRIMEM[\"Paris\",2.337229166666667],UNIT[\"degree\",0.0174532925199433]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"False_Easting\",600000],PARAMETER[\"False_Northing\",2200000],PARAMETER[\"Central_Meridian\",0],PARAMETER[\"Standard_Parallel_1\",45.898918964419],PARAMETER[\"Standard_Parallel_2\",47.696014502038],PARAMETER[\"Latitude_Of_Origin\",46.8],UNIT[\"Meter\",1]]";
Mercator = "PROJCS[\"WGS84+GRS80 / Mercator\",GEOGCS[\"WGS
84\",DATUM[\"WGS_1984\",SPHEROID[\"GRS
1980\",6378137,298.257222101],TOWGS84[0,0,0]],PRIMEM[\"Greenwich\",0],UNIT[\"Decimal_Degree\",0.0174532925199433]],PROJECTION[\"Mercator_1SP\"],PARAMETER[\"central_meridian\",0],UNIT[\"Meter\",1]]";
public void mouseMoved(MouseEvent e) {
try
{Point2D pntécran = (Point2D) e.getPoint();
ReferencedEnvelope env = m_context.getAreaOfInterest();
ReferencedEnvelope worldwg84 = env.transform(
Projections.getCRS(Projections.WGS84), true,20);
// true: lenient parameter
AffineTransform world2screen = RendererUtilities.worldToScreenTransform(
worldwg84, m_mapPane.getBounds(),Projections.getCRS(Projections.WGS84));
AffineTransform screen2world2 = world2screen.createInverse();
Point2D res = screen2world2.transform(pntécran,null);
m_statusBar.setMessage(Util.to_Latitude(res.getY())+ " , " +
Util.to_Longitude(res.getX()));
}
catch (NoninvertibleTransformException ex)
{System.out.println ("erreur transformlecture feature source " +ex);
}
…..
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users