¿Cómo debo representar una latitud y longitud en Postgres sin usar PostGIS?


12

¿Cómo debo representar una latitud y longitud en Postgres sin usar PostGIS? El sistema que estoy usando no permite el paso a través de SQL, así que no puedo usar POSTGIS.

Respuestas:


14

Puede usar el tipo de datos POINT incorporado sin postgis.


6

También es posible usar cualquiera de columnas separadas por latitudey longitudeo crear su propio tipo . De cualquier manera, puede ser bueno restringir los valores permitidos, en este ejemplo también uso dominios para evitar repetir restricciones si el tipo se usa en más de una tabla:

create domain latitude_t as double precision not null 
                                             check(value>=-90 and value<=90);
create domain longitude_t as double precision not null 
                                              check(value>-180 and value<=180);

create type geocoord_t as (latitude latitude_t, longitude longitude_t);

create table my_table(id serial, geocoord geocoord_t);

insert into my_table(geocoord) values ((31.778175,35.22995));

select id, (geocoord).* from my_table;
 id | latitude  | longitude
----+-----------+-----------
  1 | 31.778175 |  35.22995

5

Para aplicaciones que no son SIG, solo uso columnas, como lo sugirió Jack, aunque no me molesto con el valor de verificación. Es una buena idea especificar también el dato (IE NAD27 ) en una columna adicional, ya que el dato es importante para la interpretación adecuada de los valores.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.