#1 Thu 30 August 2012 09:25
- gael.k
- Juste Inscrit !
- Date d'inscription: 30 Aug 2012
- Messages: 1
GDAL : Projection simple en Lat/Lon degrés
Dans un logiciel de cartographie, l'ensemble des données sont référencées en lat/lon (degrés), puis projetés à l'écran (projection orthographique linéaire).
J'utilise GDAL pour accéder aux données mais impossible d'obtenir les coordonnées en lat/lon (degrés) d'un raster (ici requête sur un serveur WMS mais c'est la même chose sur une image *.tif en local).
Existe t-il un moyen d'obtenir les coordonnées lat/lon degrés d'un raster, même en passant par l'un des utilitaire pré-compilé (gdal_warp) ?
Voici mon code en C++ :
Code:
int res = poDataset->GetGeoTransform( adfGeoTransform );
// Projection
OGRSpatialReference oSourceSRS, oTargetSRS;
char *wkt = new char[1024];
strcpy (wkt, srcProj);
char *wkt_84 = "EPSG:4326";
int n = oSourceSRS.importFromWkt (&wkt);
int t = oTargetSRS.importFromWkt( &wkt_84 );
OGRCoordinateTransformation *poCT = OGRCreateCoordinateTransformation( &oSourceSRS,
&oTargetSRS );
double x0 = adfGeoTransform[0];
double y0 = adfGeoTransform[3];
double x1 = x0 + adfGeoTransform[1]*width;
double y1 = y0 + adfGeoTransform[5]*height;
if( poCT == NULL || !poCT->Transform( 1, &x0, &y0 ) ) {
printf( "Transformation failed.\n" );
}
else {
// obtenir l'emprise géographique en degrés lat/lon
poCT->Transform( 1, &x0, &y0 );Hors ligne
#2 Thu 30 August 2012 20:02
- rouault
- Participant assidu
- Date d'inscription: 26 Apr 2009
- Messages: 170
Re: GDAL : Projection simple en Lat/Lon degrés
Ca me parait globalement correct, mais il y a au moins une erreur au niveau de l'appel oTargetSRS.importFromWkt( &wkt_84 ) (la valeur de retour doit certainement être un code d'erreur d'ailleurs). Le problème est que la chaine passée n'est pas du WKT. Avec cette chaine-là, il faudrait plutôt utiliser oTargetSRS.SetFromUserInput(wkt_84), où alors fournir directement le code EPSG : oTargetSRS.importFromEPSG(4326)
Hors ligne


