SELECT name, ST_ASGEOJSON(location) FROM hospitales;
query para listar localicaciones en un rango cercano al punto
SELECT name FROM hospitales WHERE ST_DWithin(location, ST_POINT(-6.23709,53.34115)::geography,100000);
Para medir distancias :
SELECT name, ST_DISTANCE(location,ST_POINT(6.237009, 53.34115)::geography) FROM hospitales;
/** Datos PostGIS **/--Maneja datos geolocalización.--Obtener la extension de postgis para trabajar con este tipo de campos.CREATEEXTENSION postgis;--Point maneja la posicion X,Y.CREATETABLEhospitales(id serial PRIMARYKEY,location geography, position geometry(POINT,4326), name text);INSERTINTOhospitales(name,location)VALUES('Hospital Puerta de Hierro',ST_POINT(-6.3788,53.2911));INSERTINTOhospitales(name,location)VALUES('Hospital Conocido',ST_POINT(-7.3497,53.5346));--Mostrar la distancia de un punto determinado a los puntos que se encuentran actualmente.SELECT name,ST_DISTANCE(location,ST_POINT(-6.237009,53.34115)::geography)FROM hospitales;--Buscar un punto en un rango en particular.SELECT name FROM hospitales WHEREST_DWithin(location,ST_POINT(-6.237009,53.34115)::geography,100000);--Muestra los puntos x,y del campo numérico de location.SELECT name,st_astext(location)FROM hospitales;--POINT(X,Y)--Genera la informacion en formato json
SELECT name,st_asgeojson(location)FROM hospitales;--{"type":"Point","coordinates":[-6.3788,53.2911]}--Genera la informacion en formato xml
SELECT name,st_askml(location)FROM hospitales;--<Point><coordinates>-6.3788,53.2911</coordinates></Point>
Mostrar informacion de puntos de localizacion como texto:
SELECT name, ST_ASTEXT(location) FROM hospitales;
Si les sale un error de este tipo en debian:
"ERROR: could not open extension control file "/usr/share/postgresql/9.4/extension/postgis.control": No such file or directory"
Deben instalar el postgis con:
"sudo apt-get install postgresql-9.4-postgis-2.1"
En realidad hoy dia se ha actualizado postgres al punto en que hay mejores versiones de postgis justas para la version de postgres que tengamos, en este caso debemos primero buscar la version de postgis disponible:
sudo apt-cache search postgis
y en la lista que salió, buscar el postgis disponible y ahora si a instalarlo, en mi caso:
sudo apt-get install postgresql-9.5-postgis-2.2
No funciona.
The following packages have unmet dependencies: postgresql-9.4-postgis-2.3:Depends:libgdal1(>=1.9.0) but it is not going to be installed
E:Unable to correct problems, you have held broken packages.
Ubutnu 16.04.4
PostgreSQL 9.5
Me dio el siguiente error:
curso_pg=# CREATEEXTENSION postgis;ERROR: could not open extension control file "/usr/share/postgresql/9.5/extension/postgis.control":No existe el archivo o el directori
The following packages have unmet dependencies:postgis:Depends:libgdal1(>=1.9.0) but it is not going to be installed
Depends: libgeos-c1(>=3.3.3) but it is not going to be installed
Depends: liblwgeom-2.3-0(>=2.0.0) but it is not going to be installed
Recommends: postgresql-9.6-postgis-2.3 but it is not going to be installed
E:Unable to correct problems, you have held broken packages.
Common Table Extensions (CTE) y Funciones de ventanas.
Hola, alguno de la comunidad sabrá en dónde se encuentran los videos adicionales que menciona @mario_chavez!? Gracias de antemano...
trabajo todos los días con postgis y es muy complejo que alguien entienda la complejidad de este tipo de bases de datos, sin una salida gráfica. ;)
Tienes algún proceso de instalación?
Investigar CTEs y Funciones de ventanas.
PosTGis informacion geometrica o geografica
Pésimo el tema de que no se explicara el tema de la instalación de PostGIS ya que actualmente se requieren varios pasos. Este curso si o si necesita una actualización.
Como instalar PostGis en Windows
¿Cómo podemos instalar postgis para w7 y postgresql 10.5 por ejemplo?
Que falla que no expliquen cómo podemos instalar Postgis los que no la tenemos, por ejemplo en mi caso, uso w7, tengo postgresql 10.5 y no le he podido encontrar la forma de instalarla… ya he visto no se cuantos videos pero ninguno me funciona, he visto documentación oficial en y donde pense que la habia encontrado, nada, que solo funciona para linux el proceso… así que esta parte me quedaré sin practicarla hasta que me pase a linux o a mac 😦
Primero windows 7 es un sistema que ya solo tiene soporte para vulnerabilidades grabes de seguridad por lo tanto debes considerar pasar a windows 8 o 10 (consumen los mismos recursos que windows 7). Aquí esta la información detallada de la instalación para windows y las versiones que necesitas usar, debes considerar que necesitas versión especifica de postgis dependiendo de la versión de Postgresql que estés usando.
Pregunta: ¿que significa el 4326 en el tipo de dato de position?¿es por algo en especial?
Gracias
Si es un sistema de referencia espacial
CTE ( Common Tables Expresions)
Es un Query al que le podemos poner nombre y luego lo referenciamos.
Es muy parecido al uso de tablas temporales.
en que se miden el rango para saber las localizaciones cercanas?
Si se usa geography la distancia es en metros.
Para Postgres 11 sobre Windows 64bits, suele devolver un error No Such File Extension.
Para lo cual debemos ir al instalador de potsgres, y ejecutarlo luego cuando llegamos al apartado de extensiones seleccionar la extensión de postgis.
Les dejo un link de como realizar la instalación, no preocuparse si se tiene instalado porque lo que hace el instalador es verificar lo que se tiene instalado y solo instala la Extensión. Luego de dicha instalación reiniciar la Pc para que tome los cambios.
Si bien la versión que instala en el video es una version vieja, sirve como ejemplo:
https://www.youtube.com/watch?v=piAzbcNPmzw