ST_Transform

Definición

ST_Transform convierte datos ST_Geometry bidimensionales en la referencia espacial especificada por el ID de referencia espacial (SRID).

En PostgreSQL, las referencias espaciales de origen y de destino deben tener el mismo sistema de coordenadas geográficas cuando se utiliza la función ST_Transform para convertir referencias espaciales en una columna ST_Geometry.

En Oracle, puede convertir entre referencias espaciales que tienen el mismo sistema de coordenadas geográficas o diferentes sistemas de coordenadas geográficas. Cuando los sistemas de coordenadas geográficas son diferentes, se realiza una transformación geográfica. Una transformación geográfica se convierte entre dos sistemas de coordenadas geográficas. Una transformación geográfica se define en una dirección determinada, por ejemplo de NAD 1927 a NAD 1983, pero la función ST_Transform aplicará correctamente la transformación sin importar cuales son los sistemas de coordenadas de origen y de destino.

Los métodos de transformación geográfica se pueden dividir en dos tipos: basados en ecuación y en el archivo. Los métodos basados en la ecuación son independientes no necesitan ninguna información externa. Los métodos basados en archivos utilizan archivos de disco para calcular los valores de desplazamiento. Son normalmente más precisos que los métodos basados en la ecuación. Los métodos basados en archivos se utilizan comúnmente en Australia, Canadá, Nueva Zelanda, Alemania, España y Estados Unidos. Los archivos (excepto los canadiense) se puede obtener desde una instalación de ArcGIS for Desktop o directamente desde las distintas agencias de representación cartográfica nacionales.

Para que las geodatabases en Oracle respalden las transformaciones basado en archivos, los archivos se deben colocar en el servidor de Oracle de en la misma estructura de la carpeta relacionada que en el directorio de instalación de ArcGIS for Desktop. En el directorio de instalación de ArcGIS for Desktop, los archivos se encuentran en una carpeta llamada pedata. Una vez que la carpeta pedata se mueve en el servidor de Oracle, establezca una variable de entorno del sistema operativo llamada PEDATAHOME. El valor de la variable es la ubicación pedata. Por ejemplo, si la carpeta pedata se copia en C:\pedata en un equipo Microsoft Windows, establezca la variable de entorno PEDATAHOME en C:\pedata.

Consulte la documentación de su sistema operativo para obtener información sobre cómo establecer una variable de entorno.

Dentro de la carpeta pedata hay carpetas para los tres métodos basados en archivos compatibles: harn, nadcon, y ntv2. La carpeta ntv2 tiene subdirectorios para cada país. Por ejemplo, utilizando la ubicación pedata anterior, un archivo NTv2 australiano se encuentra en C:\pedata\ntv2\australia.

Después de establecer PEDATAHOME, debe iniciar una nueva sesión SQL antes de poder utilizar la función ST_Transform. Sin embargo, no es necesario reiniciar el servidor.

Sintaxis

PostgreSQL y Oracle, las referencias espaciales de origen y de destino tienen el mismo sistema de coordenadas geográficas

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

Solo de Oracle, las referencias espaciales de origen y de destino no tienen el mismo sistema de coordenadas geográficas

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

Tipo de devolución

ST_Geometry

Ejemplos

Transformar datos cuando las referencias espaciales de origen y de destino tienen el mismo sistema de coordenadas geográficas

La siguiente declaración CREATE TABLE crea la tabla transform_test, que tiene dos columnas de cadena de texto de líneas, ln1 y ln2.

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

La siguiente declaración INSERT inserta un ST_LineString en ln1 con un SRID de 4326.

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

En la siguiente declaración UPDATE, la función ST_Transform toma la cadena de texto de líneas en ln1, la convierte de la referencia de coordenadas asignada a SRID 4326 a la referencia de coordenadas asignada a SRID 3857, y la coloca en la columna ln2.

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

SRID 4326 y 3857 existen en la vista ST_SPATIAL_REFERENCES, y ambos tienen el mismo dato geográfico.

Transformar datos cuando las referencias espaciales de origen y de destino no tienen el mismo sistema de coordenadas geográficas (solo Oracle)

La siguiente declaración CREATE TABLE crea la tabla n27, que contiene una columna de Id. y una columna de ST_Geometry:

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

La siguiente declaración INSERT inserta un Id. de valor y un ST_Point con SRID 4267:

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

El SRID 4267 utiliza el sistema de coordenadas geográficas NAD 1927.

Cree la tabla n83 como la tabla de destino de la transformación y, a continuación, ejecute la transformación:

CREATE TABLE n83 (id integer, geometry sde.st_geometry);  INSERT INTO N83 (id, geometry) VALUES ( 1,  sde.st_transform (N27.geometry, 4269, 1241);

SRID 4269 utiliza el sistema de coordenadas geográficas NAD 1983 y 1241 es la Id. conocida de la transformación NAD_1927_To_NAD_1983_NADCON. Esta transformación se basa en archivos y se pueden utilizar 48 estados bajos de los Estados Unidos. Si se define una PEDATAHOME correctamente, la ejecución de una declaración SELECT contra la tabla n83 devolverá lo siguiente:

SELECT id, sde.st_astext (geometry) description  FROM N83;  ID	DESCRIPTION 1 | POINT((-123.00130569 48.999828199))
SugerenciaSugerencia:

Para las listas de las transformaciones geográficas compatibles, consulte el artículo técnico y sus listas relacionadas: http://support.esri.com/en/knowledgebase/techarticles/detail/21327.

9/11/2013