Tengo un sistema de coordenadas personalizado que es:
- No cartesiano : La unidad del eje X es
25m
Eje Y6.25m
- Oblicuo : Ninguno de los azimuts de ambos ejes es Norte-Sur (
0°
). El eje X va54.2°
Eje Y324°
. - Ortogonal : Allí
90°
entre ambos ejes.
Por ejemplo si tengo esos 3 puntos (La primera columna es long/lat, la segunda está en el sistema de coordenadas personalizado):
SRID=4326;POINT(-85.647 21.318) <=> POINT(0 0)
SRID=4326;POINT(-85.599 21.353) <=> POINT(0 1000)
SRID=4326;POINT(-85.794 21.497) <=> POINT(1000 0)
¿Puedo escribir un PROJ.4 texto para utilizar con ST_Transform
?
Inspirado en el Ejemplo de documentación PostGIS ¿funcionaría algo así?
SELECT ST_AsText(
ST_Transform(
ST_GeomFromText('POINT(1000 1000)'), custom_proj4, 4326))
FROM (
SELECT
'?????????????????????????????????'::text AS custom_proj4
) AS data;
st_astext
--------------------------------------------------------------------------------
POINT(-85.7467905609375 21.5321592956322)
Vi esto buena respuesta para la parte oblicua pero es con una rejilla métrica cartesiana.
Edita:
He simplificado para el ejemplo, pero la referencia espacial real es:
SRID=3795;POINT( 7217.670 193658.490) <=> POINT( 901 501)
SRID=3795;POINT(-7052.270 213450.630) <=> POINT(1877 501)
SRID=3795;POINT(66458.500 266451.180) <=> POINT(1877 15001)
SRID=3795;POINT(80728.440 246659.040) <=> POINT( 901 15001)
La esquina más oriental es POINT(901 501)
. Está situada en el Caribe, entre México y Cuba.
Ya sé cómo convertirlo en mi aplicación pero me gustaría hacerlo en PostGIS almacenando toda la referencia espacial en spatial_ref_sys.proj4text
y utilizando ST_Transform. Podría ser una transformación de la rejilla personalizada a SRID 4326 o de la cuadrícula personalizada a coordenadas geográficas.
1 votos
Si combinas la respuesta oblicua con una ST_Scale para empujar primero tus coordenadas a un espacio cartesiano métrico, podrías estar bien.
0 votos
@PaulRamsey Es una buena idea, seguro que debería funcionar. Pero entonces sigo necesitando algo de PostGIS para calcular los parámetros de escalado. Y hacer la transformación en 3 pasos (calcular el escalado, ST_Scale, ST_Transform) suena como una solución. Estoy bastante seguro de que es posible utilizando sólo PROJ.4 pero el documentación es bastante pobre (con cosas "grepped out" de los directorios).
0 votos
¿Estás seguro de las garrapatas de tu esquina? El de la "X positiva" está en realidad al oeste del origen... lo que implicaría un mapa orientado al sur, salvo que el ejemplo de la "Y positiva" está al norte del origen, como cabría esperar.
0 votos
También parecen estar en el Mar Caribe
0 votos
@PaulRamsey Editado con las coordenadas reales. Efectivamente está en el Mar Caribe. Es una cuadrícula local ad hoc para un estudio de investigación específico.
0 votos
A la pregunta le falta una gran cantidad de información, es decir, ¿cómo se asignan las coordenadas geodésicas (largo/lat) a la cuadrícula personalizada (este/noroeste)? ¿Qué proyección cartográfica se utilizó? Para poder utilizar PostGIS para su propósito, debe ser una proyección de mapa compatible. (Tu pregunta mencionaba la palabra 'cuadrícula', por lo que asumo que te referías a que tu cuadrícula personalizada es un plano 2D). Las proyecciones cartográficas se ocupan de transformar curvaturas 3D en planos 2D, lo que implica 'comprimir' y 'aplanar'. Diferentes proyecciones de mapas aplanan la misma superficie curva de manera diferente, y por lo tanto dan resultados de diferentes características