ST_Transform

Définition

ST_Transform convertit les données ST_Geometry bidimensionnelles en une référence spatiale spécifiée par l'ID de référence spatiale (SRID).

Dans PostgreSQL, les références spatiales source et de destination doivent présenter le même système de coordonnées géographiques lors de l'utilisation de la fonction ST_Transform pour convertir les références spatiales d'une colonne ST_Geometry.

Dans Oracle, vous pouvez procéder à des conversions de références spatiales qui présentent le même système de coordonnées géographiques ou des systèmes de coordonnées géographiques différents. Lorsque les deux systèmes de coordonnées géographiques sont différents, une transformation géographique est effectuée. Une transformation géographique consiste à effectuer une conversion entre deux systèmes de coordonnées géographiques. Une transformation géographique est définie dans une direction spécifique, par exemple de NAD 1927 vers NAD 1983, mais la fonction ST_Transform appliquera correctement la transformation quels que soient les systèmes de coordonnées source et de destination.

Les méthodes de transformation géographiques peuvent être classées dans les deux catégories suivantes : basées sur des équations et basées sur des fichiers. Les méthodes basées sur des équations sont autonomes et ne nécessitent aucune information externe. Celles basées sur des fichiers font appel à des fichiers stockés sur le disque pour calculer les valeurs de décalage. Elles sont habituellement plus précises que les méthodes basées sur les équations. Les méthodes basées sur des fichiers sont habituellement utilisées en Australie, au Canada, en Allemagne, en Nouvelle-Zélande, en Espagne et aux Etats-Unis. Vous pouvez obtenir les fichiers (à l'exception de ceux pour le Canada) à partir d'une installation ArcGIS for Desktop ou directement auprès des diverses agences nationales de cartographie.

Pour que, dans Oracle, les géodatabases prennent en charge des transformations basées sur des fichiers, ces derniers doivent se trouver sur le serveur Oracle dans la même structure relative de dossiers que dans le répertoire d'installation d'ArcGIS for Desktop. Dans le répertoire d'installation d'ArcGIS for Desktop, les fichiers se trouvent dans un dossier appelé pedata. Lorsque vous transférez le dossier pedata sur le serveur Oracle, définissez une variable d'environnement de système d'exploitation appelée PEDATAHOME. La valeur de la variable est le dossier pedata. Par exemple, si vous copiez le dossier pedata sur C:\pedata sur un ordinateur Microsoft Windows, la variable d'environnement PEDATAHOME est C:\pedata.

Consultez la documentation qui accompagne votre système d'exploitation pour savoir comment définir une variable d'environnement.

Le dossier pedata contient des dossiers pour les trois méthodes basées sur des fichiers prises en charge, à savoir harn, nadcon et ntv2. Le dossier ntv2 contient des sous-répertoires pour chaque pays. Par exemple, en utilisant l'emplacement du dossier pedata susmentionné, le fichier Australian NTv2 se trouvera sur C:\pedata\ntv2\australia.

Après avoir défini la variable d'environnement PEDATAHOME, vous devez lancer une nouvelle session SQL pour pouvoir utiliser la fonction ST_Transform. Il n'est pas nécessaire de redémarrer le serveur.

Syntaxe

Les références spatiales source et de destination PostgreSQL et Oracle ont le même système de coordonnées géographiques.

sde.st_transform (g1 sde.st_geometry, srid integer)

Les références spatiales source et de destination Oracle uniquement n'ont pas le même système de coordonnées géographiques.

sde.st_transform (g1 sde.st_geometry, srid integer, geogtran_id integer)

Type de retour

ST_Geometry

Exemples

Transformation des données lorsque les références spatiales source et de destination ont le même système de coordonnées géographiques

L'instruction CREATE TABLE suivante permet de créer la table transform_test qui comporte deux colonnes linestring, à savoir ln1 et ln2.

CREATE TABLE transform_test (ln1 sde.st_geometry, ln2 sde.st_geometry);

L'instruction INSERT suivante insère un ST_LineString dans ln1 avec le SRID 4326.

INSERT INTO transform_test (ln1) VALUES (
sde.st_geometry ('linestring (10.01 40.03, 92.32 29.39)', 4326)
);

Dans l'instruction UPDATE suivante, la fonction ST_Transform accepte l'objet linestring de la colonne 1n1, le convertit de la référence de coordonnées attribuée à SRID 4326 en référence de coordonnée attribuée à SRID 3857 et le place dans la colonne ln2.

UPDATE transform_test
SET ln2 = sde.st_transform (ln1, 3857);
RemarqueRemarque :

Les valeurs SRID 4326 et 3857 existent dans la vue ST_SPATIAL_REFERENCES et ces deux valeurs ont le même datum géographique.

Transformation des données lorsque les références spatiales source et de destination n'ont pas le même système de coordonnées géographiques (Oracle uniquement)

L'instruction CREATE TABLE suivante crée la table n27 qui contient une colonne ID et une colonne ST_Geometry :

CREATE TABLE n27 (id integer, geometry sde.st_geometry);

L'instruction INSERT suivante insère une valeur ID et un objet ST_Point avec le SRID 4267.

INSERT INTO N27 (id, geometry) VALUES (
1, 
sde.st_geometry ('point (-123.0 49.0)', 4267));
);

LE SRID 4267 utilise le système de coordonnées géographiques NAD 1927.

Créez la table n83 comme table de destination de la transformation, puis exécutez la transformation :

CREATE TABLE n83 (id integer, geometry sde.st_geometry);

INSERT INTO N83 (id, geometry) VALUES (
1, 
sde.st_transform (N27.geometry, 4269, 1241);

Le SRID 4269 utilise le système de coordonnées géographiques NAD 1983 et 1241 est l'ID connu de la transformation NAD_1927_To_NAD_1983_NADCON. Cette transformation est basée sur des fichiers et peut être utilisée pour les 48 états des Etats-Unis. Si la variable PEDATAHOME est définie correctement, l'exécution d'une instruction SELECT sur la table n83 doit renvoyer le résultat suivant :

SELECT id, sde.st_astext (geometry) description 
FROM N83;

ID	DESCRIPTION
1 | POINT((-123.00130569 48.999828199))
AstuceAstuce:

Pour obtenir les listes des transformations géographiques prises en charge, reportez-vous à cet article technique et aux listes associées : http://support.esri.com/en/knowledgebase/techarticles/detail/21327.

9/12/2013