4 votes

Java : Convertir lat/lon de EPSG:4236 en EPSG:3857

Comment puis-je convertir mes coordonnées en projection EPSG 3857 en utilisant geotools ou une autre bibliothèque java ? J'ai du mal à trouver les bonnes méthodes à utiliser. Je sais qu'OpenLayers (javascript) peut le faire facilement, mais je ne vois pas de méthode claire pour transformer ces coordonnées.

I would like to see this transformation
source lon, lat: -71.017942,  42.366662    
destination lon, lat: -71 1.25820, 42 22.0932

J'ai donc créé mon CRS

final CoordinateReferenceSystem source = CRS.decode( "EPSG:4236" );
final CoordinateReferenceSystem dest = CRS.decode("EPSG:3857");

final MathTransform transform = CRS.findMathTransform(source, dest);

Mais la création de géométries ne semble pas directe avec les points, car ils nécessitent une usine de géométrie ou quelque chose comme ça

Je suis novice en matière d'outils et de données géospatiales, merci de m'orienter.

3voto

kozyr Points 805

Voici une solution pour vous :

CoordinateReferenceSystem sourceCRS = CRS.decode("EPSG:4236");
CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:3857");
MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS, false);
GeometryFactory geometryFactory = new GeometryFactory(new PrecisionModel(), 4326);
Point point = geometryFactory.createPoint(new Coordinate(lon, lat));
Point targetPoint = (Point) JTS.transform(point, transform);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X