You are on page 1of 195

CURSO POSTGRESQL / POSTGIS

BASICO

2012

Informacin en el SIG

Datos Geogrficos y datos tabulares Se estima que el 80% de los datos corporativos poseen un componente grografico fuentes

Datos espaciales

Estructuracin Identificacin mediante Cdigo. Organizacin mediante capas segn el tipo de informacin y relacin espacial. Geometra Relaciones espaciales Estructuracin Identificacin mediante cdigos y usos de Indices y o !la"es #rimarias Relaciones$ consultas o "istas$ %unciones$ etc... &dministracin Igual al anterior Inde'ado por relacin espacial %unciones espaciales Relaciones $ consultas$ "istas$ %unciones... etc.$ aplicadas al entorno espacial

Base de datos

Base de datos espacial


Esquema concep ual


#roductos GI( !a os Espaciales
!iferen es forma os

)odelo Espacial
Basado En las Especific. Del OGC

*area + *area *area .


/.
,capa+ ,capa, ... ,capa+ ,capa, ...

Base "e !a os Espacial

Esquema L#ico
Ser&icios "e (apa en )e*

In erne / In rane

APLICACIO$ES %a&a/'$ET/'''

PRO!UCTO GIS

(&il +S,G-

Aplicacin o ser&icios "e (apa en )e*

&rc1i"os Geograficos

Datos Espaciales

Datos *a0ulares

Base de datos

Preliminar

En los .l imos a/os el sof 0are "e *ase "e "a os 1a e2perimen a"o un #ran crecimien o an o en su po enciali"a" como en la "eman"a "e la misma3 "e*i"o a los al os requerimien os "e mane4o 5 procesamien o "e la informacin por empresas o ins i uciones "e "i&erso ama/o' Las carac er6s icas mas impor an es que se *uscan en ellas es7 Es a*ili"a" Po encia Ro*us e8 9:cil A"minis racin Implemen acin "e es :n"ares ,eloci"a"

Que es una Base de datos?

Son 1erramien as "e #ran impor ancia para el almacenamien o3 a"minis racin 5 mane4o "e #ran"es &ol.menes "e "a os'
Los sis emas #es ores "e *ase "e "a os relacionales +SGB!R o R!B(S en in#les- ienen como carac er6s icas principales7

Tolerancia a fallos Transacciones ACI! +A omici 53 Consis enc53 Isola ion3 !ura*ili 5-' Acceso mul iusuario a #ran"es &ol.menes "e "a os Consul as escala*les a #ran"es &ol.menes "e "a os Con rol "e se#uri"a"3 acceso 5 *loqueos Len#ua4es "e pro#ramacin "e funciones Len#ua4e "e consul as SQL 5 mo"ela"o !!L +!a a !efini ion Lan#ua4e-

Historia
EL concep o "e la *ase "e "a os nace en ;<=>3 usa"a por el e4erci o nor eamericano El mo"elo relacional aplica"o a la #es in "e *ases "e "a os es un mo"elo *asa"o en la l#ica "e pre"ica"os 5 eor6a "e con4un os' 9ue formula"a 5 propues a por primera &e8 en ;<=< por E"#ar Co"" quien pre en"6a e&i ar sin p?r"i"a "e "a os3 la necesi"a" "e escri*ir pro#ramas que e2presen consul as "e la *ase "e "a os 5 ase#urar la in e#ri"a" "e la *ase "e "a os' @RelacinA es un ?rmino ma em: ico para @ a*laB3 por lo que BrelacionalB *:sicamen e si#nifica @*asa"o en a*lasB' $o se refiere a enlaces o uniones en re a*las3 "e forma con raria a la creencia #eneral' La primera "escripcin "el mo"elo relacional "e E"#ar Co""l3 B!eri&a*ili 53 Re"un"anc53 an" Consis enc5 of Rela ions S ore" in Lar#e !a a BanCsB3 se pu*lic en un informe "el #rupo "e ra*a4o "e IB( en ;<=<' ;<DD Se crea la empresa Sof 0are !e&elomen La*s3 ;<D< renom*ra"o a Rela ional Sof 0are3 ;<EF renom*ra"o a Oracle Corpora ion ;<DG In#res H I$ erac i&e Grap1ics RE rie&al S5s em

+!8"#1!!$ %ostgres

1!!& %ost'()* cambiado por S'*+ %ostgres!& 1!!" %ostgreS'* Global Development Group 2001 Soporte ,-.S, /%ostG0S12 200& Soporte 3indo4s 1!!2 0llustra 1!!& 0llustra es comprado por 0nformi5

Primeras versiones de base de datos

A/o "e aparicin apro2ima"a


(5SQL (SSQL Ser&er Pos #reSQL IB( !BI Oracle

;<<> ;<E< ;<E= ;<EF


;<EF ;<DD

6 Oracle J Oracle Corpora ion 6 9a*er*e a J Rela ional Sof 0are

Primeras versiones de bases de datos ESPACIAL

Las primeras &ersiones "e las *ases "e "a os espaciales son rela i&amen e nue&as

Oracle Spa ial


;<<= S!O ;<<E Spa ial I>>> Ei' Spa ial' Primera implemen acin na i&a

Pos #is >'; (a5o "el I>>; (5sql G';'> A*ril "el I>>F (S SQL Ser&er en I>>E

Bases "e "a os

Base "e "a os


Con2unto de datos almacenados con una estructura lgica. 3ecesita de una Estructura conceptual con la 4ue la informacin se relacionan entre ellos. En la pr5ctica$ es el con2unto de datos m5s los programas 4ue 1acen de ellos un con2unto consistente. (er"idor Base de datos *a0la

Componen es

Columnas o atri0utos 6ndices y !la"es

7istas Disparadores 8*riggers9 %unciones Operadores *ipos de datos #rocedimientos almacenados 8(tore #rocedure9

Bases "e "a os

E2is en mul i u" "e #es ores "e *ases "e "a os o pro#ramas que permi en mane4ar la informacin "e mo"o sencillo'

OR&C!E )icrosoft (:! (er"er Informi'

DBEn el mun"o "el sof 0are li*re3 E2is en *ases "e "a os (u5 po en es

)y(:! #ostgre(:!

(:!I*E Pos #reSQL es sof 0are li*re'

!i0erado 0a2o la licencia B(D$ lo 4ue significa 4ue cual4uiera puede disponer de su cdigo fuente$ modificarlo a "oluntad y redistri0uirlo li0remente.

POSTGRESQL

Pos #reSQL

Es crea"o por comuni"a"es "e "esarrollo li*re3 no per enece a nin#una compa/6a Las comuni"a"es orien a"as al "esarrollo en7

(o or 5 nue&as funcionali"a"es !ocumen acin Aplicaciones3 m"ulos o e2 ensiones Correccin "e errores en &ersiones "e prue*a

Es (ul ipla aforma +)in"o0s3 (acOS3 Linu23 Uni23 OpenSolares3 9reeBS!E2is en cien os "e usuarios por o"o el mun"o

Kis oria

Se inicia en la uni&ersi"a" "e BerCle5 en ;<DD *a4o el nom*re "e I$GRES como un e4ercicio "e aplicacin "e las eor6as "e las Bases "e "a os relacionales' En ;<E= cam*ia el nom*re a POSTGRES con el o*4e i&o "e aplicar los concep os "e o*4e os relacionales' En ;<<L cam*ia el nom*re a Pos #res<L que lue#o "eri&ar6a a Pos #reSQL En ;<<= se in e#ra al mun"o "el Open Source en la &ersin ='> En el I>>> se comien8a a implemen ar el sopor e "el IP,= +pro ocolo "e In erne &ersin =I>>G se lan8a Pos #reSQL E'>3 se inicia su a"opcin en el mun"o comercial3 se le calific como la L a !B(S mas popular en USA' Ul imas &ersiones E'I'I>3 E'F';G3 E'G'D3 <'>F3 <';';3 <';'F3 <';'G3 <'I'>

Pos #reSQL
Limi es "el Pos #reSql

Tama/o m:2imo para una *ase "e "a os7 sin limi es +e2is en *ases "e "a os "e FI TBTama/o m:2imo para una a*la7 =G TB Tama/o m:2imo para un re#is ro7 sin limi es +"epen"en "e la memoria s0ap 5 el sis ema opera i&oTama/o m:2imo para un campo7 ; GB $.mero m:2imo "e filas en una a*la7 sin limi es +"epen"en "e la memoria s0ap 5 el sis ema opera i&o$.mero m:2imo "e columnas en una a*la7 ;=>> in"epen"ien e "el ipo "e columna $.mero m:2imo "e 6n"ices en una a*la7 sin limi es +"epen"en "e la memoria s0ap 5 el sis ema opera i&o$umero "e len#ua4es en las que se pue"e pro#ramar las funciones7 apro2ima"amen e ;> +pl/p#sql3 %a&a3 Pearl3 P5 1on3 cl3 p1p3 C3 CMM3 Ru*53 e c'-

El n.mero m:2imo "e columnas pue"e ser cua"ruplica"o por el aumen o "el ama/o "e *loque por "efec o a FIC'

Pos #reSQL

Se pue"e a"minis rar me"ian e "i&ersos ipos "e in erfases como7

Consola J "i#i acin "e las ins rucciones "irec amen e Gr:fico +GUI- ' (e"ian e a5u"as #r:ficas3 los mas usa"os son7

PGA!(I$ III J en en orno "e escri orio' P1pP#A"minN en en orno 0e*'

Pos #reSQL
CO$SOLA

Pos #reSQL
PGA!(I$ III Kerramien a "e c"i#o a*ier o para la a"minis racin "e la *ase "e "a os POSTGRESQL' Inclu5eO In erfa8 #r:fica Kerramien as "e consul a SQL E"i or "e funciones

Pos #reSQL
P1pP#A"min

Pos #reSQL
6Caractersticas ; Instalacin ilimitada ; &1orros considera0les en costos de operacin ; Esta0ilidad y confia0ilidad ; E'tensi0le ; )ultiplataforma ; Dise<ado para am0ientes de alto "olmen ; (oporte de transacciones ; Blo4ueo a ni"el de registro ; (oporte total de la integridad referencial a ni"el de fila y columna.

Pos #reSQL

Caractersticas
; (oporte completa a disparadores 8*riggers9$ "istas 87ie=s9$ y funciones 8functions y store procedures9. ; (oporte para el almacenamiento de B!OBs 80inary large o02ects9 ; Consultas y su0consultas ; (oporte a cone'iones de 0ase de datos seguras 8criptografa9 ; )odelo de seguridad para acceso a o02etos de 0ase de datos por usuarios y grupos de usuarios.

Pos #reSQL

Caractersticas

DBMSObjeto-Relacional

)odelo o02eto,relacional$ )ane2a rutinas comple2as y reglas. (oporte de Consultas (:! declarati"as$ control de concurrencia$ soporte multi,usuario$ transacciones$ optimizacin de consultas$ 1erencia$ y arreglos !as caracteristicas OO permiten 4ue una ta0la pueda 1eredar los atri0utos de otra$ manteniendose la co1erencia entre los datos de las ta0las 1i2as y padres 81erencia multiple9. !a consulta$ insercion y 0orrado de columnas en la ta0la padre$ 1ara lo propio en las 1i2as. (oporta operadores$ funcionales$ m>todos de acceso y tipos de datos definidos por el usuario. (oporta integridad referencial$ la cual es utilizada para garantizar la "alidez de los datos de la 0ase de datos.

Altamente Extensible

IntegridadReferencial

Pos #reSQL

Caractersticas
; A I!lexible

; "eng#ajes roced#rales

!a fle'i0ilidad del &#I de #ostgre(:! #ermite la implementacin de desarrollos usando O02ect #ascal$ #yt1on$ #erl$ #?#$ ODBC$ @a"a @DBC$ Ru0y$ *C!$ C CAA$ y #iBe. (oporte para lengua2es procedurales internos$ incluyendo un lengua2e nati"o denominado #! pg(:!. !engua2e es compara0le al lengua2e procedural de Oracle$ #! (:!. ?a0ilidad para usar lengua2es de procedimientos nati"os como pl #erl$ pl #yt1on$ pl *C! o (:! como lengua2e procedural em0e0ido. #osi0iliad de usar lengua2es de procedimientos no nati"os como pl ua$ pl p1p$ pl r$ pl 2a"ascript$ pl lolcode$ pl sc1eme$ pl 2a"a$ etc /. &r4uitectura proceso,por,usuario cliente ser"idor. Esta es similar al m>todo del &pac1e +...' para mane2ar procesos. ?ay un proceso maestro 4ue se ramifica para proporcionar cone'iones adicionales para cada cliente 4ue intente conectar a #ostgre(:!. (oportado porC @a"a 8@DBC9$ ODBC$ #erl$ Ru0y$ C$ CAA$ #?#$ !isp$ (c1eme$ :*$ etc.

; Cliente$Ser%idor

Pos #reSQL

Carac er6s icas

Usa un sis ema "enomina"o (,CC +Acceso concurren e mul i&ersin3 por sus si#las en in#l?s- Pos #reSQL permi e que mien ras un proceso escri*e en una a*la3 o ros acce"an a la misma a*la sin necesi"a" "e *loqueos' Ca"a usuario o* iene una &isin consis en e "e lo .l imo a lo que se le 1i8o commi ' Es a es ra e#ia es superior al uso "e *loqueos por a*la o por filas com.n en o ras *ases3 eliminan"o la necesi"a" "el uso "e *loqueos e2pl6ci os'

Amplia &arie"a" "e ipos na i&os

$.meros "e precisin ar*i raria' Te2 o "e lar#o ilimi a"o' 9i#uras #eom? ricas +con una &arie"a" "e funciones asocia"as-' !irecciones IP +IP&G e IP&=-' Bloques "e "irecciones es ilo CI!R' !irecciones (AC' Arra5s' A"emas los usuarios pue"en crear sus propios ipos "e "a os3 los que pue"en ser por comple o in"e2a*les #racias a la infraes ruc ura GiST "e Pos #reSQL' Por e4emplo los ipos "e "a os GIS crea"os por el pro5ec o Pos GIS'

Pos #reSQL
Funciones Bloques "e c"i#o que se e4ecu an en el ser&i"or' Pue"en ser escri os en &arios len#ua4es3 con sus carac eris icas relaciona"as a ca"a una "e ellas3 "es"e las operaciones *:sicas "e pro#ramacin3 ales como *ifurcaciones 5 *ucles3 1as a las comple4i"a"es "e la pro#ramacin orien a"a a o*4e os o la pro#ramacin funcional' Al#unos "e los len#ua4es que se pue"en usar son los si#uien es7 6 Un len#ua4e propio llama"o PL/PgSQL +similar al PL/SQL "e oracle-3 C3 C 3 %a&a PL/!ava 0e*3 PL/Perl3 "lPHP3 PL/P#t$on3 PL/%ub#3 PL/s$3 PL/&cl3 PL/Sc$eme3 Lengua'e "ara a"licaciones estadsticas % por me"io "e PL/%' El concep o "e funciones3 en o ros !B(S3 son muc1as &eces referi"as como Bproce"imien os almacena"osB +Stored Procedures en in#l?s-'

Pos #reSQL

O ras Carac er6s icas

Cla&es a4enas am*i?n "enomina"as Lla&es a4enas o Cla&es 9or:neas +forei#n Ce5s-' !ispara"ores + ri##ers-7 es una accin espec6fica que se reali8a "e acuer"o a un e&en o3 cuan"o ?s e ocurra "en ro "e la *ase "e "a os' En Pos #reSQL es o si#nifica la e4ecucin "e un proce"imien o almacena"o *asa"o en una "e ermina"a accin so*re una a*la espec6fica' To"os los "ispara"ores se "efinen por seis carac er6s icas7

El nom*re "el "ispara"or o ri##er El momen o en que el "ispara"or "e*e arrancar El e&en o "el "ispara"or "e*er: ac i&arse so*re''' La a*la "on"e el "ispara"or se ac i&ar: La frecuencia "e la e4ecucin La funcin que po"r6a ser llama"a

Pos #reSQL

O ras Carac er6s icas

Uso "e ,is as' In e#ri"a" ransaccional' Kerencia "e a*las' Tipos "e "a os 5 operaciones #eom? ricas' Sopor e para ransacciones "is ri*ui"as' Permi e in e#rarse en un sis ema "is ri*ui"o forma"o por &arios recursos +e4em' una *ase "e "a os Pos #reSQL3 o ra Oracle3 una cola "e mensa4es IB( (Q %(S 5 un ERP SAP- #es iona"o por un ser&i"or "e aplicaciones "on"e el ?2i o +Bcommi B- "e la ransaccin #lo*lal es el resul a"o "el ?2i o "e las ransacciones locales'

Pos #reSQL

Requerimien os Procesa"or7 se recomien"a un procesa"or "e =G *i s3 aunque es posi*le ins alar en procesa"ores "e FI *i s para usos limi a"os o locales' (emoria7 se recomien"a al menos GGB !isco7 el espacio "epen"e "el &olumen "e "a os 6 SCSI7 para *ases "e "a os rela i&amen e me"ianas pero "on"e se requiere un al o acceso "e "a os3 en orno mu5 propenso a cai"as "el ser&i"or' 6 SA&A7 para *ases "e "a os mu5 #ran"es3 pero con no mu5 al os requerimien os "e accesos a los mismos3 usar sis emas con %ournalin# +e2 G por e4emplo- para minimia8as los ries#os "e cai"as' 6 SS(7 para usar como ca1e "e /a *ase "e "a os 6 Arreglo de discos7 para en ornos mu5 #ran"es con muc1o acceso a los mismos

Pos #reSQL

Ins alacin "e Pos #reSQL en )indo*s

E2ecucion del programa instalador$ descargado de la pagina de #O(GRE(:! o de la distri0ucion de Gismap. !ocalizacin en el Disco 8directorio9 donde se instalar5$ se recomienda 4ue no sea el disco CC ni en el directorio Darc1i"os del programaE 3umero de puerto$ por default es FG.-$ pero puede usarse otros. &dicionalmente se instala los componentes

#ostgis Otros 8ODBC$ @DBC$ O!DB$ .3E*9.

Definicin del (uperHsuario y la Cla"e Configuracin y optimizacin de los arc1i"os pgI10a.conf y postgres4l.conf

Pos #reSQL

Ins alacin "e Pos #reSQL en Linu2

Descarga del cdigo %uente o de un pa4uete 8rpm o de09 segun el *ipo de distri0ucion de !inu' 8Red?at$ Ju0untu$ %edora$ etc.9$ se recomienda usar las 1erramientas propias de la distri0ucion para la 0us4ueda y descarga del producto y de todos los dependientes 8KH)$ &#*,GE*$ etc.9. s#do a&t-get install &ostgres'l-()* lib&'-de% Configuracin y optimizacin de los arc1i"os pgI10a.conf y postgres4l.conf

&dministracin mediante #1p#g&dmin y &pac1e o directamente mediante pg&dmin III

Pos #reSQL

#rocesos #rioritarios
; ; ; ; Copias de (eguridad Replicas Optimizacin Hsuarios Creacin de una 0ase de datos Creacin de ta0las Definicin de !la"es$ Indices y relaciones Definicin de 7istas Consultas de datos Creacin de Disparadores 8triggers9 Creacin de #rocedimientos &lmacenados o funciones 8(tore procedure9

&cciones
; ; ; ; ; ; ;

Pos #reSQL

Copias de (eguridad
; BacBup

En otros discos o almacenamiento remotos (e de0e identificar claramente la fec1a en el nom0re del arc1i"o #uede ser total o parcial Generalmente se utiliza el formato CH(*O) #uede ser total o parcial #uede ser adicional 8control de "ersiones9 o (o0re escritura 8Reemplaza la data anterior9

; Restaurar

Replicas
; Directas. )ediante indicaciones a la Base de datos o *a0las o Campos especficos ; Indirectas. )ediante procedimientos y Disparadores.

Pos #reSQL

!a administracin de la 0ase de datos puede realizase mediante instrucciones en una consola de comandos$ o mediante una interfase grafica usando un GHI como #G&D)I3 III Optimizacin
; ; ; )e2orar el modo de organizacin fsica de los datos Re"isar las relaciones entre las ta0las ReInde'ar los datos

Hsuarios y Grupos
; Creacin de Hsuarios y grupos ; Identificacin de los pri"ilegios de los grupos

Pos #reSQL

(ane4o "e Grupos o Roles


(implifica la asignacin de pri"ilegios El role puede ser creado sin nom0re y puede estar sin usuarios (e pueden adicionar los usuarios 4ue pertenecen al role$ posteriormente a su creacin (e asignan los permisos y pri"ilegios al role CRE&*E RO!E consultaL CRE&*E RO!E catastro 7&!ID H3*I! MinfinityML CRE&*E RO!E mantenimiento 7&!ID H3*I! M-N+-, ++,-. NNCNNCNNML CRE&*E RO!E mantenimiento- 7&!ID H3*I! M-N+-,++,-. NNCNNCNNM CO33EC*IO3 !I)I* +NL

Se#uri"a"

Creacin de GruposC
; (e puede tener grupos dentro de grupos. ; (i el usuario tiene la fec1a de e'piracin caducada no podr5 conectarse a una BD. ; (i el usuario no se le asigna fec1a de e'piracin podr5 acceder siempre. ; (i el usuario no posee contrase<a no podr5 conectarse a una BD. ; #ara 4ue un usuario$ 4ue pertenece a un grupo$ 1erede los permisos del grupo es necesario 4ue en las propiedades del usuario este 1a0ilitado el c1ecBC DIn1erits rig1ts from parent rolesE. ; #ara 4ue un usuario acceda a los o02etos$ es necesario 4ue en las propiedades del o02eto este 1a0ilitado el c1ecB de permisos al grupo 4ue pertenece en la opcin pri"ilegios. Estos permisos pueden ser esta0lecidos con mayor rapidez a ni"el de (c1emas usando el grant =izard8clicB derec1o so0re (c1emas9.

Se#uri"a"

Pos #reSQL

)ane2o de Hsuarios
; #ermisos para los accesos remotos ; &cceso o restriccin a la 0ase de datos o a ta0las especificas ; E2emplosC

Creacin
; CRE&*E H(ER cons OI*? #&((OORD M3NgiPQML ; CRE&*E H(ER cons OI*? #&((OORD M3NgiPQR 7&!ID H3*I! M-N+-,++,++ML

)odificacin
; &!*ER H(ER cons

Eliminacin
; DRO# H(ER cons

Pos #reSQL

(ane4o "e Pri&ile#ios

Descri0e 4ue usuarios est5n autorizados para realizar consultas$ actualizaciones$ etc. E'isten #ri"ilegios de &ccesos y Restricciones )odosC GR&3* O3 (E:HE3CE .. GR&3* O3 D&*&B&(E .. GR&3* O3 %H3C*IO3 .. GR&3* O3 !&3GH&GE / GR&3* O3 (C?E)& / GR&3* O3 *&B!E(#&CE / E2mC

GR&3* &!! O3 *&B!E po0lados *O catastroL

Pos #reSQL

Pos #reSQL

Creacin
; Creacin de una 0ase de datos ; Creacin de un sc1ema 8opcional9 ; Creacin de ta0las y columnas ; Inde'ados

6 E2emploC
CRE&*E *&B!E par4ues 8 IIgid serial 3O* 3H!!$ nom0Ip4 c1aracter "arying$ cenIpo0 c1aracter "arying$ areaIp4 dou0le precision$ o0ser"acion c1aracter "arying$ u0igeo c1aracter "arying$ CO3(*R&I3* par4uesIpBey #RI)&RK JEK 8IIgid9 OI*? 8 OID(S*RHE 9L &!*ER *&B!E par4ues OO3ER *O postgresL

Pos #reSQL

Consul as
; SELECT lista_de_campos 9RO( tabla +criterios, Pindicaciones_de_ordenamientoQ ; SELECT lista_de_campos 9RO( tabla, tabla1,tabla2, . +criterios_de_enlace_y_seleccin, Pindicaciones_de_ordenamientoQ ; E4emplo

SELECT R 9RO( lo esO SELECT co"i#o3 man8 3 propie ario "a e 9RO( lo esO SELECT co"i#o3 +man8Mlo eMuni"a"- AS co"i#Sca 3 fec1a 9RO( lo esO SELECT R 9RO( lo es )KERE co"i#o liCe TU>GUV A$! area W ;>>>'>O SELECT !ISTI$CT 8onas 9RO( lo es OR!ER BX 8onasO

Pos #reSQL

Inser ar "a os
; I$SERT I$TO a*la P+a r;3 '''a r$-Q ,ALUES +e2pr;3''e2pr$- Y SELECT P!ISTI$CT PO$ a r$QQ e2pr;3 '''e2pr$ P9RO( a*laQ P)KERE con"icinQ PGROUP BX lis aQ PKA,I$G con"icinQ P Z U$IO$ PALLQ Y I$TERSECT Y E[CEPT \ SELECT '''QO ; E4emplo

I$SERT I$TO lo es ,ALUES +%uan Pere8V3 G=3 L>3 >'IL3 V;;/ID/;<<GV-O I$SERT I$TO pro"uc os +pro"uc Sno3 name3 price- ,ALUES +;3 VC1eeseV3 <'<<-O I$SERT I$TO pro"uc os +pro"uc Sno3 name- ,ALUES +;3 VC1eeseV-O I$SERT I$TO pro"uc os ,ALUES +;3 VC1eeseV-O I$SERT I$TO pro"uc os +pro"uc oSno3 name3 price- ,ALUES +;3 VC1eeseV3 <'<<-3 +I3 VBrea"V3 ;'<<-3 +F3 V(ilCV3 I'<<-O

Pos #reSQL

Consul as con uniones

SELECT ;'co"3 ;'man8 AS man8ana3 ;'r;D=EE AS "eu"a3 I'8ona3 I'mFGGL AS meses 9RO( lo es ;3 ren as I )KERE ;'co" ] I'co" A$! ;'fac or W I'r;D=EEO SELECT R 9RO( lo es LE9T %OI$ ren as O$ lo es'co" H ren as'co"O SELECT R 9RO( ; 9ULL %OI$ I O$ ;'num H I'numO SELECT R 9RO( ; LE9T %OI$ I O$ ;'num H I'num A$! I'&alue H V222VO

Pos #reSQL

Con"icin +)1ere; Re orna un &alor l#ico


^ )KERE pisos W F ^ )KERE es a"o H @*uenoA ^ )KERE ma erial I$ +;3 I3 F^ )KERE ma erial I$ +SELECT ma erial 9RO( lis aS"eSma erial^ )KERE ma erial I$ +SELECT ma erial 9RO( lis aS"eSma erial )KERE cI H fac or'c; M ;>^ )KERE fac ores BET)EE$ +SELECT lis aS"eSma erial 9RO( I )KERE cI H fac or'c; M ;>- A$! ;>> ^ )KERE E[ISTS +SELECT "eu"a 9RO( ren as )KERE "eu"a W ;>>-

Pos #reSQL

Ac uali8aciones
; UP!ATE lo es SET es a"o H @maloA3 fac or H fac or N I )KERE fec1a W V;;/IE/I>>=VO ; UP!ATE pro"uc os SET precio H precio R ;';>O ; UP!ATE 8onas SET a H L3 * H F3 c H ; )KERE a W >O

Eliminacin
; !ELETE 9RO( lo es )KERE 8ona H TGB_O ; !ELETE 9RO( lo es )KERE area ]H ;>O ; !ELETE 9RO( lo esO

Pos #reSQL
; SELECT ma2+al ura- 9RO( ni&elesO ; SELECT 8ona 9RO( lo es )KERE al ura H ma2+al ura-O

A#rupamien o ; SELECT co"i#o 9RO( lo es )KERE "eu"a H +SELECT ma2+"eu"a- 9RO( ren as-O ; SELECT 8ona3 ma2+al ura- 9RO( lo es GROUP BX 8onaO

Pos #reSQL

Consul a usan"o a#rupacion 5 O,ER

Consul a "e areas acumula"as por man8ana or"ena"o por co"i#o ca as ral

selec co"i#oca a3 m8Sca 3 lo eSca 3 co"S&ia 3area3 sum+area-o&er +par i ion *5 m8Sca or"er *5 co"i#oca a- from lo es><

Consul a "e areas o ales por man8ana3 prome"ios3 "es&iacion prome"io por lo e con referencia a la man8ana

selec co"i#oca a3 m8Sca 3 lo eSca 3 co"S&ia 3area3 sum+area- o&er +par i ion *5 m8Sca or"er *5 co"i#oca a- as areaSacumula"a3 sum+area- o&er +par i ion *5 m8Sca - as areaS o al 3 coun +R- o&er +par i ion *5 m8Sca - as can i"a"3 sum+area- o&er +par i ion *5 m8Sca - / coun +R- o&er +par i ion *5 m8Sca - as prome"io3 a&#+area- o&er +par i ion *5 m8Sca - as prom3 sum+area- o&er +par i ion *5 m8Sca - / coun +R- o&er +par i ion *5 m8Sca - N area as "es&iacionSprome"io from lo es>< selec co"i#oca a3 m8Sca 3 lo eSca 3 co"S&ia 3area3 ro0Snum*er+- o&er +or"er *5 co"i#oca a "esc nulls las -3 ranC+- o&er +or"er *5 area "esc nulls las -3 "enseSranC+- O,ER +OR!ER BX area !ESC $ULLS LAST- from lo es>< or"er *5 area "esc selec co"i#oca a3 m8Sca 3 lo eSca 3 co"S&ia 3area3 ranC+- o&er +par i ion *5 m8Sca or"er *5 co"i#oca afrom lo es><

Uso "e ranC+- 5 "enseSranC+

Lis a "e man8anas 5 lo es or"ena"os 5 numera"os por el :rea por los lo es "e ca"a man8ana

Pos #reSQL

Transacciones

Permi e la reali8acin "e m.l iples operaciones 5 se#urar que o"as erminen sa isfac oriamen e para re#is rar la operacin o en caso con rario man enerlo como era ori#inalmen e' Es ruc ura7

BEGI$ NNNNN operaciones NNNN CO((IT / ROLLBAC` E4emplo7


BEGI$O ]NNNN Inicia una ransaccion I$SERT I$TO po*lacion ,ALUES +VLI(AV3IFG'L=-O I$SERT I$TO capi al ,ALUES +VLI(AV3VACTI,OV-O CO((ITO ]NNNN fin "e ransaccion3 o"as las operaciones son procesa"as BEGI$O ]NNNN Inicia una ransaccion I$SERT I$TO po*lacion ,ALUES +VICAV3F=';I-O I$SERT I$TO capi al ,ALUES +VICAV3VACTI,OV-O ROLLBAC`O ]NNNN fin "e la ransaccion3 o"as las mo"ificaciones son i#nora"as3 se re orna al es a"o an erior BEGI$O ]NNNN Inicia una ransaccion I$SERT I$TO po*lacion ,ALUES +VPISCOV3F=';I-O I$SERT I$TO capi al ,ALUES +VPISCOV3VACTI,OV-O SA,EPOI$T fase; ]NNNN marca un pun o "e #ra*a"o I$SERT I$TO po*lacion ,ALUES +VPARACASV3F=';I-O I$SERT I$TO capi al ,ALUES +VPARACASV3VACTI,OV-O ROLLBAC` TO SA,EPOI$T fase; ]NNNN Re orna al pun o "e #ra*a"o an erior I$SERT I$TO po*lacion ,ALUES +V(OQUEGUAV3F=';I-O I$SERT I$TO capi al ,ALUES +V(OQUEGUAV3VACTI,OV-O CO((ITO ]NNNN fin "e la ransaccion3 procesa las operaciones in"ica"as

9U$CIO$ES
6 6 Son equi&alen es a los STORE PROCE!URE "e o ras *ases "e "a os3 pero con ma5ores capaci"a"es' Para la creacin "e funciones
Paso "e par:me ros !efinicin "e &aria*les Procesos "irec os o por la8os !efinicin "el re orno Asi#nacin "e pri&ile#ios

Se sopor a como ipo "e parame os A$XARRAX3 A$XELE(E$T3 A$X$O$ARRAX o A$XE$U( para "eclararlo'

9U$CIO$ES
CABECERA
// "eclaracion "e la funcion3 in"ica el ipo "e "a o que se re ornara // a"emas se "eclaran las &aria*les in ernas que se usaran en la funcin

CREATE OR REPLACE 9U$CTIO$ SS##Sclean#eome r5+#eome r5-

RETUR$S #eome r5 AS aBO!Xa!ECLARE inGeom ALIAS for a;O ou Geom #eome r5O mpLines rin# #eome r5O

// una &aria*le pue"e omar el ipo "e "a o "e la es ruc ura "e una a*la &S oponimia *Slo es' oponimaUTXPEO b para un ipo "e a ri*u o &Sfila *Slo esURO)TXPEO b para un re#is ro "e "a os comple o &SfilaSac ual recor"O b // o "efinir un &alor cons an e &Snom*re CO$STA$T &arc1ar 7H VeriCaVO

9U$CIO$ES
CUERPO
//Inicio "el con eni"o "e la funcin3 se 1acen uso "e las &aria*les in ernas3 se in"ica el re orno en "iferen es par es "e la funcin se#.n las con"iciones se cumplan Be#in ou Geom 7H $ULLO I9 +Geome r5T5pe+inGeom- H VPOLXGO$V OR Geome r5T5pe+inGeom- H V(ULTIPOLXGO$V- TKE$ if no is,ali"+inGeom- TKE$ mpLines rin# 7H s Sunion+s Smul i+s S*oun"ar5+inGeom--3s Spoin n+*oun"ar5+inGeom-3;--O ou Geom H *uil"area+ mpLines rin#-O I9 +Geome r5T5pe+inGeom- H V(ULTIPOLXGO$V- TKE$ ELSE else RETUR$ ou GeomO RETUR$ inGeomO E$! I9O E$! I9O RETUR$ s Smul i+ou Geom-O

ELSI9 +Geome r5T5pe+inGeom- H VLI$ESTRI$GV- TKE$ ou Geom 7H s Sunion+s Smul i+inGeom-3s Spoin n+inGeom3;--O ELSI9 +Geome r5T5pe+inGeom- H V(ULTILI$ESTRI$GV- TKE$ ou Geom 7H mul i+s Sunion+s Smul i+inGeom-3s Spoin n+inGeom3;---O ELSE E$! I9O En"OaBO!Xa RAISE $OTICE VEL ipo U no es sopor a"oV3Geome r5T5pe+inGeom-O RETUR$ ou GeomO RETUR$ inGeomO RETUR$ ou GeomO

9U$CIO$ES
PIE

// fin "e la "eclaracin "e la funcin3 se in"ica el len#ua4e a usar3 as6 como los permisos "e accesos a la funcin LA$GUAGE plp#sql ,OLATILE COST ;>>O ALTER 9U$CTIO$ SS##Sclean#eome r5+#eome r5- O)$ER TO pos #resO GRA$T E[ECUTE O$ 9U$CTIO$ SS##Sclean#eome r5+#eome r5- TO pu*licO GRA$T E[ECUTE O$ 9U$CTIO$ SS##Sclean#eome r5+#eome r5- TO consul aO

9unciones

Se pue"en "eclarar parame ros "e en ra"a +I$-3 sali"a +OUT- o "e en ra"a 5 sali"a +I$OUTCREATE OR REPLACE 9U$CTIO$ funcion; +te-to.via &arc1ar3 OUT nombre &arc1ar3 OUT ti"o &arc1arRETUR$S recor" as aa BEGI$ ti"o 7H su*s r+te-to.via3;3F-O nombre 7H su*s r+te-to.via3G3F>-O E$!O aa LA$GUAGE plp#sqlO CREATE OR REPLACE 9U$CTIO$ funcionI + e2 oS&ia &arc1ar- RETUR$S in e#er AS aa !ECLARE nom*re &arc1arO ipo &arc1arO "a os recor"O BEGI$ SELECT R I$TO nom*re3 ipo from funcion;+ e2 oS&ia-O RAISE $OTICE V ipo "e &ia es7UV3 ipoO RAISE $OTICE V$om*re "e la &ia es7UV3nom*reO RETUR$ ;O E$!O aa LA$GUAGE plp#sqlO

Se prue*a me"ian e7 SELECT funcionI+VA,' %A,IER PRA!OV-O

!ispara"ores +Tri##ers6 !efinicion "el "ispara"or


CREATE TRIGGER ri#SmencomSul S"is BE9ORE I$SERT OR UP!ATE O$ mo&ilsa 'car"Slas S"a a 9OR EACK RO) )KE$ +$E)'R IS !ISTICT 9RO( OL!'R- b solo en <'2 E[ECUTE PROCE!URE mo&ilsa ' #S"is ri o+-O

REGLAS +RULES

$os permi en "esarrollar al#una accion an e un e&en o pro"uci"o en una a*la o &is a' A "iferencia "el TRIGGER no se pue"e "esarrollar una lo#ica'

Accesi*ili"a" a los o*4e os


; El acceso a cual4uier o02eto 4ue contiene maysculas en su nom0re de0e estar descrito entre comillas y respetar estrictamente las maysculas y minsculas. E2emploC +b,Al#mno- su acceso ser5 .+b,Al#mno/. ; #ara o02etos cuyo nom0re esta totalmente en minsculas es indiferente la forma en 4ue se escri0a el acceso a ellas siendo indiferente la diferencia entre maysculas y minsculas y no se necesita descri0irlo entre comillas do0les. E2emploC &r#eba$ su acceso ser5 &r#eba o R0EBA.

Accesi*ili"a" a los o*4e os

Pos #reSQL <'[

Pos #reSQL <'[

Las nue&as funcionali"a"es en Pos #re <'[ presen a a&ances en el ren"imien o es escala*ili"a" &er ical para que se pue"a mane4ar car#as "e ra*a4o ca"a &e8 mas #ran"es' As6 mismo se inclu5en me4oras "e al a "isponi*ili"a" que "an a los a"minis ra"ores "e *ases "e "a os +!BAsmas opciones para confi#uraciones "e al a "isponi*ili"a" +KA-' En la replicas no es necesario que o"os los escla&os es en conec a"os al maes ro3 es o pue"e ser en casca"a3 es "ecir el maes ro a aun escla&o;3 "el escla&o; al escla&o I3 e c'3 me4oran"o 5 "is ri*u5en"o el performance correspon"ien e' Un nue&o ipo "e "a os para el mane4o "e RA$GOS +Ra#e T5pe-' Sopor e "e "a os ipo %SO$ (,CC7 (ul i&ersion Concurren Con rol

Pos #reSQL <'[ Replicas

Impor ancia "e las Replicas


Para ener un sis ema olera*le a fallas' Para *alancear la car#a "e ra*a4o en "i&ersos ser&i"ores' Para aplicaciones "e al o consumo en consul as +B'I'Para ener un am*ien e "e prue*as o "esarrollo lo mas pareci"o al am*ien e "e pro"uccion' E c' )AL es un *uffer "on"e se lle&an a ca*o las operaciones a la "a a una &e8 ermina"a se pasan al almacenamien o "e "a os principal3 si al#o pasara en onces el are "e "a os permanecera in ac o3solo seper"era lo que es a en el )AL' )AL #enera se#men os "e ;=m* +confi#ura*le- en arc1i&os fisicos que ienen pa#inas "e "a os "e EC* +confi#ura*le-'

Que es )AL

Pos #reSQL <'[ Replicas

%e"lica Asincronica / Stream %e"lication 0S%1'

Es a funcionali"a" nos permi e ransferir asincronicamen e los re#is ros )AL so*re la marc1a +recor"N*ase" lo# s1ipin#- en re un ser&i"or maes ro 5 &arios escla&os' Consis e en un iempo "e "emora en re el ser&i"or (aes ro procesan"o la informacion 5 el escla&o reci*ien"ola' Se u ili8an los arc1i&os )AL que permi en re#enerar la *ase "e "a os' E2is e un pro*lema que si se cae el ser&i"os (aes ro3 se po"rian per"er al#unas ransacciones'

Pos #reSQL <'[ Replicas

%e"lica Sincronica / S#ncronous %e"lication 0%e"licacion Sincronica12 Con rola"a por sesin3 permi ien"o la al a "isponi*ili"a" con consis encia en re m.l iples ser&i"ores' $o es necesario ser un super usuario' Las ransacciones no se comple an a menos que se comple en en el ser&i"or (aes ro 5 en el Escla&o +es o #enera un iempo "e proceso ma5or para la ransaccin-' La .nica posi*ili"a" "e per"er "a os es que se cai#an am*os ser&i"ores'
)aestro

Escla"o +

Escla"o -

Escla"o .

Pos #reSQL <'[ Replicas

%e"lica en Cascada2 Es asincronica3 funciona al es ilo "el primer ipo "e replicacion copian"o los arc1i&os )AL'

Ser% 1

Ser% 2

Ser% 3

*a0la + *a0la *a0la .


Replica de (er"+ a (er" -

*a0la + *a0la *a0la .


Replica de (er"- a (er" .

*a0la + *a0la -

Pos #reSQL

Sopor e "e a*las foraneas

Tra"icionalmen e Pos #reSQL sopor a el acceso a "a os "e o ros mo ores "e *ases "e "a os me"ian e paque es CO$TRIB' Ac ualmen e se pue"e confi#urar las cone2iones sin la ins alacin "e paque es a"icionales e4ecu an"o coman"os como7

CREATE 9OREIG$ TABLE PI9 $OT E[ISTQ a*la +PZcolumna ipo P$ULL Y $OT $ULLQ \ P3 ^QQSER,ER ser&i"or POPTIO$S +opciones P3 '''Q-QO Al er ^ !rop '''

Pos #reSQL <'[

Hot Standb# 0HS1' Es a nue&a funcionali"a" nos permi e acce"er en mo"o "e solo lec ura a o"os los "a os "isponi*les en el ser&i"or escla&o en "on"e es amos replican"o nues ra *ase "e "a os "es"e el ser&i"or maes ro' (e4ora en la se#uri"a" 5 au en ificacion'

3rante %evo4e Sc$ema5 Se pue"en "efinir pri&ile#ios para o"a las a*las3 secuencias 5 funciones en un esquema +sc1eme- con un solo coman"o SQL'

GRA$T SELECT O$ ALL TABLES I$ SCKE(A pu*lic TO usuarioO GRA$T SELECT O$ ALL SEQUE$CES I$ SCKE(A pu*lic TO usuarioO GRA$T E[ECUTE O$ ALL 9U$CTIO$S I$ SCKE(A pu*lic TO usuarioO

Es os coman"os solamen e afec an a los o*4e os que e2is an en el momen o "e e4ecu ar el coman"o 5 no a los que se creen en el fu uro' AL&E% (EFA6L& P%78ILE3ES Para "efinir los pri&ile#ios por "efec o "e o*4e os que se creen en el fu uro

ALTER !E9AULT PRI,ILEGES 9OR ROLE usuario GRA$TE SELECT O$ TABLES TO pu*licO

Pos #reSQL <'[

(is"aradores de columnas7 Se e4ecu an cuan"o una o mas columnas "efini"as por el usuario se ac uali8an' Con es e ipo "e "ispara"ores nos a1orraremos el ener que u ili8ar la l#ica con"icional 5 comparacin "e &alores en las funciones usa"as por nues ro "ispara"or3 como se 1a eni"o que 1acer en las &ersiones pre&ias' (is"aradores )HE97 con los "ispara"ores con"icionales se pue"en "efinir una con"icin "el "ispara"or' !e es a manera nos a1orramos el ener que usar una con"icin I9 '' TKE$ "en ro "el "ispara"or3 re"ucien"o el consumo "el CPU en el ser&i"or'

Solo se e4ecu ara la funcion c1ecCSaccoun sSup"a e+- si el *alance &ie4o es "is in o que el *alance nue&o' CREATE TRIGGER c1ecCSup"a e BE9ORE UP!ATE O$ cuen as 9OR EACK RO) )HE9 07L(5balance IS (IS&I9C& F%7: 9e*5balance1 E[ECUTE PROCE!URE c1ecCSaccoun sSup"a e+-O

%egionali;acion "or columnas2 sopor an"o la "efinicin "el enco"e por columnas ' )ritable Common &able E-"resion2 E4ecu a ac uali8aciones m.l iples comple4as en una simple consul a'

Pos #reSQL <'[

(EFE%%ABLE C79S&%AI9&S7 Con es a funcionali"a" ' La unici"a" "e una res riccin es for8a"a al final "e la sen encia SQL e4ecu a"a 5 no en ca"a upla ac uali8a"a'

CREATE TABLE es +a in primar5 Ce5-O I$SERT I$TO es ,ALUES +;-3+I-O UP!ATE es se aHaM;O

97& 8ALI( CHEC< C79S&%AI9&S2 Se pue"e usar para res rin#ir 5 op imi8ar el uso "el cons rain s

ALTER TABLE es A!! CKEC` +aW;>>- $OT ,ALI!O

7rdenaci=n de >unciones agregadas2 El resul a"o "e una funciona a#re#a"a "el ipo arra5Sa## o s rin#Sa##3 "epen"er: "el or"en en que se reci*an los "a os

SELECT oficina3s rin#Sa##+nom*re3V3 V OR!ER BX nom*re- 9RO( suel"os GROUP BX oficinaO Se o* iene la lis a "e oficinas con una lis a separa"a por comas "e nom*res correspon"ien es or"ena"os'

8AC6:: F6LL me'orado2 en &ersiones pre&ias un ,ACU(( 9ULL era una operacin len a 5 que consum6a muc1os recursos' En la &ersin ac ual no reali8a la operacin por #rupo "e re#is ros sino crea una a*la emporal que ac uali8a a la ori#inal cuan"o la operacin es e ermina"a3 "e es a forma es muc1o mas r:pi"o Inde-amiento de los < vecinos mas cercanos 0</9earest/9eig$tbor15 In"ices so*re la @"is anciaA para consul as r:pi"as "e u*icacin +espacial- 5 "e e2 os seme4an es +al#ori mo `$$-'

Pos #reSQL <'[

(e4oras en la "efinicin "e proce"imien os almacena"os Inclusi=n # me'oras en el modulo contrib Hstore2 en el uso "e columnas con "a os ipo lla&eN&alor 6nlogged &ables2 Son a*las especiales que me4oran el "esempe/o3 pues son mas r:pi"as al escri*ir los "a os3 pero son suscep i*les a runcamien os en caso "e fallos' Es e ipo "e a*las es :n pensa"as para "a os ef6meros +"a os emporales3 cac1e3 e c'-

Pos #reSQL <'[

$ue&os ipos "e "a os

Ran#e

Represen an ran#o "e &alores3 se pue"en usar con numeros en eros +normales 5 #ran"es-3 numericos3 1oras 5 fec1as3 se pue"en crear ran#os propios usan"o @CREATE TXPEA E4emplo ;7 CREATE TABLE reser&aciones +1a*i acion CKARACTER ,ARXI$G $OT $ULL3 "uracion TSTcRA$GE3 E[CLU!E USI$G #is +"uracion )ITK dd--O I$SERT I$TO reser&aciones ,ALUES +;>;3VPI>;IN>IN>; ;G7ID7>>3 I>;IN>IN>L ;I7>>7>>QV-O selec R from es 'reser&aciones 01ere "uracion eW VI>;IN>IN>EV77 imes amp E4emplo I7

CREATE TXPE floa ran#e as RA$GE +su* 5pe H floa E3 su* 5peS"iffHfloa Emi-O E4emplo F7

CREATE TABLE suel"os +SS#i" I$TEGER3 car#o CKARACTER ,ARXI$G3 suel"o in Gran#e-O I$SERT I$TO suel"os ,ALUES +;3Vprac ican eV3VPG>>3E>>QV-O I$SERT I$TO suel"os ,ALUES +I3Vprac ican eIV3VPL>>3<>>QV-O I$SERT I$TO suel"os ,ALUES +F3Vin#enieroV3VP;L>>3QV-O selec R from suel"os selec upper+suel"o-3lo0er+suel"o- from suel"os selec suel"o eW <>> as oC3SS#i" 9RO( suel"os

#O(*GI(

Glosario "e Terminos

EPS3 N +European Pe rolium Sur&e5 Group- Ac ualmen e "efine la especificacin para una #ran can i"a" "e sis emas "e pro5eccin espacial' Usa"o por las comuni"a"es 5 soluciones "e arqui ec ura a*ier a' En SRS se usa con el prefi4o EPSG 5 se#ui"o por el c"i#o correspon"ien e 3eo!S79 N +1 p7//#eo4son'or#/- Geo#rao15 %a&ascrip O*4ec $o a ion' Es un nue&o es :n"ar3 inclui"o por OGC' Com*ina la es ruc ura "e %SO$ 5 a#re#a la "escripcin "e la #eome r6a 3E7S N +Geome r5 En#ine Open Source-' Es el mo or usa"o por POSTGIS3 inclu5e funciones a&an8a"as en CMM3 Es un 1i4o "el pro5ec o %TS' 3:L N +Geo#rap15 (arCup Lan#ua#e- !efini"o por OGC3 es un forma o "e almacenamien o 5 rasla"o "e "a os #eo#r:ficos3 *asa"o en [(L3 usa"o como sali"a por )9S' <:L N +`e51ole (arCup Lan#ua#e-' O ro forma o *asa"o en [(L3 inclu5e forma o "e es ilos3 emplea"o principalmen e por Goo#le 5 pos eriormen e a"op a"o como un es :n"ar "e ranspor e "e "a os por el OGC 73C N +Open Geospa ial Consor ium-' !efine especificaciones 5 re#las para los in ercam*ios "e " os #eoespaciales en re pro"uc os o ecnolo#6as S%I( J +Spa ial Reference I"en ifier-' El la cla&e primaria +#eneralmen e un numero- en un ca alo#o "e pro5ecciones #eo#raficas' Se usa el ermino muc1o en *ases "e "a os espaciales *asa"as en las especificaciones "el OGC' S%S +I!-J +Spa ial Reference S5s em-' Su concep o es similar al SRI!' !efine el sis ema "e pro5eccin #eo#rafico "e lso "a os espaciales' Generalmen e se &e como EPSG7GFI= +)GS EG lon# la -3 EPSG7FID;E +UT( )GS EG cona ;E Sur-3 EPSG7<>><;F +)e* merca or-' )FS J +)e* 9ea ure Ser&ice-'Crea"o por OGC' Permi e rasla"ar +por In erne - los "a os &ec oriales 5 sus a ri*u os' ):S J +)e* (ap Ser&ice-' Crea"o por OGC' Permi e rasla"ar +por In erne - el mapa como ima#en 5 las ocnsul as respec i&as'

Concep o *asico

Un Ser&i"or "e *ase "e "a os es a compues os principalmen e "e7


Al menos una *ase "e "a os Con4un o "e a*las Con4un o "e funciones Con4un o "e re#las Con4un o "e ipos Ta*las complemen arias +lis a "e pro5ecciones3 &is as "e a*las con #eome r6as3 a*las ras er3 e c'$ue&as funciones espaciales +cons ruc ores3 an:lisis3 accesorios3 e c'!efinicin "e nue&as re#las $ue&os ipos +#eome r53 poin s3 lines rin#s3 e c'In"e2a"o espacial3 *asa"o en el m6nimo rec :n#ulo que con iene el elemen o'

Una *ase "e "a os espacial iene a"emas


Un ser&i"or "e *ase "e "a os con iene o"as las *ases "e "a os 5 a*las necesarias para un pro5ec o Bases "e "a os espacial o #eo"a a*ase con iene o"o un #rupo "e a*las or#ani8a"as por esquemas La a*la espacial es equi&alen e a un La5er que con iene elemen os +fea ure collec ion- o re#is ros El re#is ro es a compues o por su #eome r6a3 las re#las 5 relaciones 3 5 es "efini"o como un @elemen oA +fea ureCa"a Elemen o iene una #eome r6a3 que es a compues o por ipo "e #eome r6as3 &?r ices3 coor"ena"as3 &alores 2 e 53 correspon"ien es a una pro5eccin #eo#r:fica El mo"elo es : *asa"o en las especificaciones "el OGC 5 o ros es an"ares para el mane4o "e F! 5 ras er

Que es una Base de datos es"acial

Es un sis ema a"minis ra"or "e *ases "e "a os que mane4an "a os e2is en es en un espacio o #eo#raf6a so*re la superficie "e la ierra' Se *usca 1acer una represen acin simplifica"a o a*s raccin "el mun"o real en capas o a*las "e "a os 5 sus relaciones espaciales' Ofrece una serie "e funciones e in"ices para reali8ar consul as o manipular los "a os usan"o SQL' Cri erios *:sicos en una *ase "e "a os espacial :odelo de datos es"aciales7 Tipos "e "a os espaciales + ipo "e #eome r6a- 5 opera"ores espaciales +relaciones espaciales3 opolo#ia3 e c'-' Lengua'e de consultas? de "rocesamiento # o"timi;aci=n espacial para su acceso 5 represen acin' (ata mining es"acial +principio "e *uscar en #ran"es &ol.menes "e "a os para o* ener informacin rele&an e-'

Base "e "a os espacial

O ras *ases "e "a os 1an implemen a"o funcionali"a"es "e *ase "e "a os espacial como7

Oracle R!B(S con Oracle Spa ial o Loca or Pos #reSQL con POSTGIS SQLi e con Spa aLi e SQLSer&er I>>E J I>;I IB( !BI con Spa ial E2 en"er Tera"a a IB( Informi2 con Spa ial "a aBla"e no consi"era al#unos ipos e in"ices Los ipos son "efini"os en a*las (5ISA( solamen e' Las funciones solo operan con la ca4a +*oun"in# *o2Es a en "esarrollo Es un @mi""le0areA espacial' Es "ecir se pone encima "e una *ase "e "a os e in erpre a los requerimien os3 Es in"epen"ien e "e la *ase "e "a os 5 mane4an ransacciones3 &ersionamien o o &ali"aciones con re#las propias 5 no na i&as a la *ase "e "a os com Oracle3 Pos #reSQL' Implica a"minis rar la *ase "e "a os 5 el ArcS!E Es o almen e "epen"ien e 5 po encia"o con los pro"uc os "e la linea "e Esri

En menor #ra"o es an emplemen a"as en7


(5sql aun no es una *ase "e "a os espacial comple a3 porque 7


ArcS!E no es una *ase "e "a os espacial

Que es Pos #reSQL N Pos #is

E2 ensin al Pos #reSQL3 permi e que el ser&i"or "e B! sea u ili8a"o como una B! espacial *acCen" para GIS' ; Se in e#ra al mismo ni&el que o"os los ipos 5 funciones e2is en es permi ien"o una a"minis racin3 uso "e recursos3 procesamien o 5 almacenamien o al amen e eficien e' ; U ili8a 6n"ices espaciales GIST para acelerar el acceso 5 consul a "e "a os ; Inclu5e funciones "e cons ruccin3 e"icin 5 an:lisis "e "a os espaciales Pos GIS es para Pos #reSQL lo que Oracle Spa ial es para Oracle' Se pue"e almacenar Pun os3 mul ipun os3 linea3 mul ilinea3 poli#onos3 mul ipoli#onos3 5 colleccion "e #eome r6as me"ian e las especificaciones S9S +Simple 9ea ure Specifica ion para SQL- "el OGC'

POSTGIS

Garan i8a ransacciones ACI!

Atomicidad 0Atomicit#1' Ase#ura que la ransaccion se reali8o o no3 an e un fallo el sis ema no que"a a me"ias3 si una par e "e la ransaccin falla o"a la ransaccin falla3 el es a"o "e la *ase "e "a os no se mo"ifica' Consistencia 0Consistenc#1' Ase#ura que solo se empie8a lo que se pue"e aca*ar3 e&i an"o e4ecu ar aquellas operaciones que no &ana romper las re#las 5 "irec rices "e la in e#ri"a" "e la *ase "e "a os' Aislamiento 0Isolation1' Ase#ura que ase#ura que una operacin no pue"e afec ar a o ras3 "e ese mo"o la reali8acion "e "os ransacciones so*re la misma informacion sean in"epen"ien es 5 no #eneren nin#un ipo "e error' (urabilidad 0(urabilit#15 Ase#ura que una &e8 que la ransaccin se 1a confirma"o Se#uir: sien"o as63 incluso en caso "e ca6"a "e ener#6a3 acci"en es o errores'

Al o ren"imien o Recuperacin "e ca6"as Copias "e se#uri"a" Replicacin Sopor e SQL

Pos #is Arqui ec ura


GEOS

Pos Gis E2 ension POSTGRESQL

Pro4G

Li*[(LI
Li*l0#eom

Pos #is Arqui ec ura

POSTGRESQL' (o or "e la *ase "e "a os

Pos #is' E2 ension espacial3 funciones 5 ipos'

GEOS' Li*reria en CMM para la implemen acion "e los al#ori mos "e funciones espaciales 5 opolo#ia PRO%G' Para la implemen acion "e funciones "e pro5ecciones espaciales' LIB[ml' (ane4o "e forma os [(L +G(L3 `(LO S,G3 e c3G!AL' Li*reria en CMM para el acceso 5 procesamien o "e Ras er +en la &ersion I'>-

POSTGIS

A#re#a ipos "e "a os

Para la "efinicin en la es ruc ura "e la a*la' Para or#ani8ar 5 acelerar las consul as espaciales por sus coor"ena"as Para reali8ar consul as procesan"o o al eran"o la #eome ria !efinir re#las o E&en os Crear nue&as funciones

In"e2a"o espacial

9unciones espaciales

Tipo "e informacin

7ectorial

Raster

Datos espaciales

Tipo "e O*4e os Geo#r:ficos +)`B 5 )`T

OGC "efine "os es :n"ares para e2presar o*4e os espaciales7

)`T )ellN`no0 Te2 )`B )ellN`no0 Binar5

Am*os inclu5en informacin "el ipo "e o*4e o 5 el sis ema "e pro5eccin "e coor"ena"as "el mismo' Es os o*4e os son7

POI$T LI$ESTRI$G POLXGO$ (ULTIPOI$T (ULTILI$ESTRI$G (ULTIPOLXGO$ GEO(ETRXCOLLECTIO$

Tipo "e O*4e os Geo#r:ficos +)`B 5 )`T(patial Reference Id 8(RID9

Geometria Geometry

#oint

Cur"e

(urface

Geometry Collection

!ine(tring

#olygon

)ultisurface

)ulticur"e

)ultipoint

)ultipolygon

)ultilinestring

Tipo "e O*4e os Geo#r:ficos +E)`B 5 E)`T

Las especificaciones "el OGC solo sopor an #eome r6as I!3 5 el SRI! no es a inclui"o "en ro "e su forma o "e sali"a' Pos #is e2 ien"e el forma o como un #rupo e2 en"i"o "e los o*4e os #eo#r:ficos "el OGC3 es o po"r6a &ariar en el fu uro3 especialmen e si OGC "efine forma os F!' E)`T 5 E)`B a#re#a coor"ena"as ipo F"m3 F"83 G"3 a"emas "e incluir la informacin "el SRI!'

POI$T +> > >- J [Xc SRI!HGFI=OPOI$T+ND; N;I- J[X con SRI! POI$T+> > > >- NN[Xc( POLXGO$+++> > >3 G G >3 > G >3 > > >-3+; ; >3 I ; >3 I I >3 ; I >3 ; ; >--3++N ; N; >3 N; NI >3 NI NI >3 NI N; >3 N; N; >--- NN [Xc

Tipos "e funciones espaciales

Las funciones espaciales se a#rupan en7

Constructores de geometras +crear con coor"ena"as o "es"e un )`T3 G(L3 `(L-' Editores +remo&er3 cam*iar &?r ices3 snap3 ransformar3 afinar la coor"ena"a3 mo"ificar la #eome r6a3 e c-' Accesorios +mane4o "e &?r ices3 "imensiones3#eome r6as3SRI!3 23 53 e c'-' Salidas +*inario3 G(L3 `(L3 S,G3 e c'-' %elaciones es"aciales # dimensiones +cen roi"e3 pun o mas cercano3 :rea3 per6me ro3 con ener3 raslapar3 cru8ar3 e c-' 7"eradores +i#ual3 a la i8quier"a3 seme4an es3 a la "erec1a3 e c'-' Procesamiento de geometras +coleccionar3 e2plo ar3 *uffer3 in erseccin3 no"os3 poli#oni8ar3 remo&er pun os repe i"os3 e c'-' %e>erenciando a la linea +in erpolacin en una linea3 locali8ar3 cor ar3 e2 en"er3 se#men o "e linea3 e c'&ransacciones grandes +au ori8acin3 &erificacin3 *loqueo3 e c'-'

Relaciones espaciales

Relaciones espaciales

9orma o "e la #eome r6a )`T +)ell Cno0 e2 - 5 )`B +)ell Cno0 Binar5

Basa"a en )`T se#.n las especificaciones "el OGC


P7I9&02; 5;1 LI9ES&%I9302; 5;3 2I 5I3 2F 5F3 ''1 P7L@3790+2; 5;3 2I 5I3 2F 5F3 ''-3+2; 5;3 2I 5I3 2F 5F3 ''-1 :6L&IP7I9&02; 5;3 2I 5I3 2F 5F3 ''1 :6L&ILI9ES&%I930+2; 5;3 2I 5I3 2F 5F3 ''-3+2; 5;3 2I 5I3 2F 5F3 ''-1 LINEARRING(x1 y1, x2 y2, x3 y3, ., x1 y1) (depreciado) :6L&IP7L@3790++2; 5;3 2I 5I3 2F 5F3 ''-3+2; 5;3 2I 5I3 2F 5F3 ''--3++2; 5;3 2I 5I3 2F 5F3 ''--1 3E7:E&%@C7LLEC&I790POI$T+[; X;-3LI$ESTRI$G++2; 5;3 2I 5I3 2F 5F3 ''-3 ^1

9orma o "e la #eome r6a )`T 5 )`B

E4emplo )`T7

P7I9&0> >1 LI9ES&%I930> >3; ;3; I1 P7L@3790+> >3G >3G G3> G3> >-3+; ;3 I ;3 I I3 ; I3; ;- 1 :6L&IP7I9&0> >3 ; ;I1 :6L&ILI9ES&%I930+> >3; ;3; I-3+I F3F I3L G-1 LINEARRING(x1 y1, x2 y2, x3 y3, ., x1 y1) :6L&IP7L@3790++> >3G >3G G3> G3> >-3+; ;3I ;3I I3; I3; ;--3 00/A /A?/A /B?/B /B?/ B /A?/A /A--1 3E7:E&%@C7LLEC&I790POI$T+I F-3LI$ESTRI$G+I F3F G-1 CACACCCCCCCCCCCCCCCCCCFCDFCCCCCCCCCCCCFCDF CACDCCCCBCCEEFCCCCCACCCCCCCFCCCCCCCAGBCHAIGAFCACJA(EE(J(HD ACHIICJAAA(CACEGAJFCACJAIFFED(AFAHHIICJAGEAFGCEGHCFCACJAD FIADCHGAHHIICJAJAHAHDFIEGFCACJAAEBGJBIEACHIICJACAGBCHAIGA FCACJA(EE(J(HDACHIICJA

E4emplo )`B7

,ALI!Ec !E LOS OB%ETOS ESPACIALES

6LINESTRING Validos (a) y (c) Invlidos (b) y (d) 6MULTILINESTRING Vlidos (e) y (f) Invlidos (g) 6POL GON Vlidos (!) y (i) 6MULTIPOL GON Vlido (") y (#)

POSTGIS

A par ir "e la &ersion ;'L se u ili8a un ipo "e "a os llama"o GEOGRAPKX El ipo Geo#rap15 siempre iene un SRI! i#ual a GFI= E2is en I> funciones espaciales orien a"as especialmen e para es e ipo "e "a os' Se pue"e con&er ir 1acia o "es"e un ipo GEO(ETRX +"e*e es ar "efini"o con SRI! GFI=-'

Ins alacin "e Pos #is

Ins alar Pos #reSQL

Especificar el "irec orio "on"e los "a os se almacenaran +es posi*le cam*iarlo usan"o Ta*leSpaceEspecificar el Puer o3 por "efaul 7 LGFI Especificar los permisos "e cone2in "e las Ips permi i"as In"icar la cla&e "el superusuario

Ins alar Pos #is

AN Usan"o el Applicacion Stack Builder BN "es"e una "irec orio "e "escar#a pre&ia

Se in"ica la cla&e "el superusuario para la ins alacin en el ser&i"or $o es necesario crear una *ase "e "a os pre&ia

Se pue"en ins alar la &ersin ;'L'2 5 la &ersin I'> +en *ases "e "a os "is in as pero en un mismo ser&i"or' A par ir "e pos #re <'I solo es a "isponi*le la &ersin I'>

POSTGIS

To"as las operaciones en la *ase "e "a os3 se pue"en reali8ar en mo"o coman"o +escri*ien"o sen encias SQL- o usan"o PGA!(I$ III' A"icionalmen e la creacin "e una a*la espacial se pue"e reali8ar au oma icamen e "es"e GIS(AP3 As6 mismo las sen encias en SQL pue"en ser reali8a"as +SI re orna una #eome r6a 5 solo una3 el resul a"o sera mapea"o-'

Pos #reSQL N Pos #is

Creacin "e una Base "e "a os espacial


; ; ; ; Crear la a*la Asi#nar una GEO(ETRIA X REGISTRARLO In"e2ar espacialmen e +GISTSe recomien"a usar una Lla&e +Primar5 `e5-'

Ta*las "el sis ema


; SPA&IAL.%EF.S@S

!escripcin "el sis ema "e coor"ena"as espacial que se pue"en usar I"en ifica por un S%I( U ili8a EPSG como es :n"ar "e referencias 5 co"ificacin "e las pro5ecciones Te2 o "e la pro5eccin es in"ica"o en forma o "e e2 o )`T +OGC- 5 forma o PRO%'G Re#is ra las a*las espaciales Se especifica el SRI! "e la a*la3 si el SRI! es N; o > usa un sis ema "e coor"ena"as espacial li*re para el almacenamien o "e "a os3 pero no permi e a4us es ni cam*ios o correcciones por pro5eccin #eo#r:fica Se especifica si la "a a ser: I! o F! En el ipo "e "a os se pue"e especificar POI$T3 LI$ESTRI$G3 POLXGO$3 (ULTXPOI$T3 GEO(ETRXCOLLECTIO$3 o GEO(ETRX si es ipo &aria*le +recomen"a"o3 es el que usa Gis(ap-'

; 3E7:E&%@.C7L6:9S 0es una vista en la versi=n B5C1


Pos #reSQL N Pos #is

,is as

3eogra"$# Columns' Es una &is a pareci"a a Geome r5 Columns3 con la "iferencia que se almacenan solamen e las a*las espaciales con ipo Geo#rap15 +la i u" lon#i u"-

!es"e la &ersion I'> se a"icionaron7

Tipos

Ras er 9unciones para car#a3 sali"a 5 procesamien o "e ima#enes'

,is as

Ras erSColumns Ras erSO&er&ie0s

Sc1eme

Topolo#5

Ta*la la5er Ta*la opolo#5

Pos #reSQL N Pos #is

7reaci8n de tabla espacial coordenadas cartesianas /default2


; CREATE TABLE parques( parque_id int4, parque_nombre varchar(128), parque_fecha date); ; SELECT AddGeometryColumn( 'public', 'parques', ' eometria', !1, '"#$%#&R'' , 2 ) ;

)9 la version 2:0 se puede+ ademas+ reali;ar directamente mediante<


; (reando una tabla ; CREATE TABLE parques(parque_id int4,parque_nombre varchar(128),parque_fecha date),geometria geometry(Geometry,32718); ; %odificando una tabla ; ALTER TABLE tabla A ; ALTER TABLE tabla A C!L"#$ eometria geometry(%oint,&32'); C!L"#$ eometria geometry(Geometry,32718);

Pos #reSQL N Pos #is

7reaci8n de tabla espacial


CREA+E +AB"E calles8 __ id serial )$& )*++; calleIid intG$ calleInom0re "arc1ar8+-T9$ ($),&R-.), calles_p/e0 1R.%-R' 2#' (__ id)); (E!EC* Add6eometr7Col#mn8 Mpu0licM$ McallesM$ MgeometriaM$32458$ MGEO)E*RKM $ . 9 L

Constraint

8depreciado en la "ersin -.N9

; #ara coordenadas -D o .DC

($),&R-.)& enforce_dims_ eometria (6#(2 (st_ndims( eometria) 7 2); ($),&R-.)& enforce_srid_ eometria (6#(2 (st_srid( eometria) 7 (32458));

; #ara tipo de proyeccin geogr5ficaC

; $pcional para un tipo de eometria en particular8


($),&R-.)& enforce_ eot0pe_line (6#(2 ( eometr0t0pe(line)7'+.)#,&R.)"'88te9t or line is )*++);

Pos #reSQL N Pos #is

Inser ar !a os espaciales

; I S!"# I #$ calles %calle_id, #eome ria3 calle_nombre & 'A()!S %1, ST_GeometryFromText ('LINESTRING( ! "#" "$# %& ! '% "$#"$")'&#"( %),*2+ de ,ulio-&. ; I S!"# I #$ calles %calle_id, #eome ria3 calle_nombre & 'A()!S %1, GeomFromText ('LINESTRING( %! $ "$$ )%& %!"*) "$$% ()' ),-/ira0lores-&. ; I S!"# I #$ calles %calle_id, #eome ria3 calle_nombre & 'A()!S %1, GeomFromText ('LINESTRING( !"(%# ""% #%& !"* " ""!% $)'& #"( %),-(arco-&. ; I S!"# I #$ calles %calle_id, #eome ria3 calle_nombre & 'A()!S %1, ST_GeometryFromText ('LINESTRING( %!$ " ")"$# & %!*# ")! "")'& #"( %),-Pardo-&. ; I S!"# I #$ calles%calle_id, #eome ria3 calle_nombre & 'A()!S %1, ST_GeomFromText ('LINESTRING( !' # ""$ $%& !'%( ""% #$)'&#"( %),-!1emplo-&.

Pos #reSQL N Pos #is

7onsulta de datos espaciales


!a geometria se almacena en modo codificado$ una consulta simple de la ta0la nos retorna la geometria del modoC

(elect calleIid$ geometria from callesL M+FN+.TN-NNUNN+MLMN+N.NNNN-NCEP%NNNNN+NNNNNNT%NNNNNNBVFPDVDV&UB&+-G+E%FPN-N %-UPFUNG+NUC+DUCB&PB&+-G+FC%+UFGF-UPFUNG+UG.BD%G%&TB&+-G+-VFCT%U--UPFUN G+CF-NBN%-&&B&+-G+UDEP%BBF-UPFUNG+PUF+GNEB&CB&+-G+UGNGPUE+-UPFUNG+-N&UP &C%&DB&+-G+.DDUN&%F-UPFUNG+T.DEBT+NB-B&+-G+BB-EBF.C-PPFUNG+...M

(e utiliza la funcin DstIaste't89E para "isualizar las geometrias en formato OJ*

(elect calleIid$stIaste't8geometria9 from callesL


M+FN+.TN-NNUNN+MLM#O!KGO388.NUTFP.P+-PG.+FV TU-TF-T.GUVN.UNP$.NUTFP.VGVNU+GNV TU-TF.N.+UTUVG+V$.NUTFT.NPT TU-TF.+.NT$.NUTFT.P.P TU-TF...UTP$....99M

!a consulta de datos se puede realizar usando funciones geograficas de comparacion y an5lisis entre los o02etos 8registros9 y su geometria.

Pos #reSQL N Pos #is

7onsulta
; SE"EC+ lista de columnas from tabla 84ere condiciones
6 En la lista de las columnas se pueden incluir funciones de comparacion para o0tener un "alor "erdadero o falso$ o funciones de proceso geografico 4ue retornen geometras. 6 En las condiciones se comparan geometrias para o0tener "alores derdaderos o falsos. 6 E2emploC SE"EC+ id$ nom0re$ As+ext8geometria9 &( geometria$ st,area8geometria9 !ROM gtest 84ere st,area8geometria9W-NNNNL

Pos #reSQL N Pos #is


Interseccin entre geometras y comparacion de contener a otra geometria
(E!EC* codIcatastral$ geometria %RO) lotes O?ERE geometria XX stIGeometry%rom*e't8M O"96O: ;; 2<(1*=)*(*(>=??@=@ ?@>(2>*)=1(1?@>=@- 2<?>=@)1(>32(1<(*@ ?@>(122)1=?**3>2?2<?(?=)221?1==232 ?@>?(*3)13=<@*(*>- 2<(1><)?@=*2<2=3? ?@>(*3()2=<?>*31- 2<(1*=)*(*(>=??@=@ ?@>(2>*)=1(1?@>=@ AA M9 &3D stIcontains8stIGeometry%rom*e't8M O"96O: ;; 2<(1*=)*(*(>=??@=@ ?@>(2>*)=1(1?@>=@- 2<?>=@)1(>32(1<(*@ ?@>(122)1=?**3>2?2<?(?=)221?1==232 ?@>?(*3)13=<@*(*>- 2<(1><)?@=*2<2=3? ?@>(*3()2=<?>*31- 2<(1*=)*(*(>=??@=@ ?@>(2>*)=1(1?@>=@ AAM9$geometria 9L

Consulta de datos dentro de un corredor o cercana


; ,#+#(& : ;R$% vias <6#R# ,&_=istance("eometr0;rom&e9t('1$.)& ( 2451>4?>5>5@488A4A 8A@52@>?41518A@4A )',!1), eometria)B1>>; ; ,#+#(& : ;R$% vias <6#R# st_dCithin("eometr0;rom&e9t('1$.)& ( 2451>4?>5>5@488A4A 8A@52@>?41518A@4A )',!1), eometria,1>>);

Pos #reSQL N Pos #is


Interseccin entre geometras y comparacion de contener a otra geometria
(E!EC* codIcatastral$ geometria %RO) lotes O?ERE geometria XX stIGeometry%rom*e't8M O"96O: ;; 2<(1*=)*(*(>=??@=@ ?@>(2>*)=1(1?@>=@- 2<?>=@)1(>32(1<(*@ ?@>(122)1=?**3>2?2<?(?=)221?1==232 ?@>?(*3)13=<@*(*>- 2<(1><)?@=*2<2=3? ?@>(*3()2=<?>*31- 2<(1*=)*(*(>=??@=@ ?@>(2>*)=1(1?@>=@ AA M9 &3D stIcontains8stIGeometry%rom*e't8M O"96O: ;; 2<(1*=)*(*(>=??@=@ ?@>(2>*)=1(1?@>=@- 2<?>=@)1(>32(1<(*@ ?@>(122)1=?**3>2?2<?(?=)221?1==232 ?@>?(*3)13=<@*(*>- 2<(1><)?@=*2<2=3? ?@>(*3()2=<?>*31- 2<(1*=)*(*(>=??@=@ ?@>(2>*)=1(1?@>=@ AAM9$geometria 9L

Consulta de datos dentro de un corredor o cercana


; ,#+#(& : ;R$% vias <6#R# ,&_=istance("eometr0;rom&e9t('1$.)& ( 2451>4?>5>5@488A4A 8A@52@>?41518A@4A )',!1), eometria)B1>>; ; ,#+#(& : ;R$% vias <6#R# st_dCithin("eometr0;rom&e9t('1$.)& ( 2451>4?>5>5@488A4A 8A@52@>?41518A@4A )',!1), eometria,1>>);

Accesan"o componen es "e la #eome ria

(ul iN#eome ria

STS$umGeome ries+#eome r6a- N Re orna un n.mero STSGeome r5$+#eome r6a3posicin- J Re orna una #eome r6a simple

Poli#ono

STS$umIn eriorRin#s+#eome r6a- N Re orna un n.mero STS$Rin#s+#eome r6a- N Re orna un n.mero STSE2 eriorRin#+#eome r6a- N Re orna un lines rin# STSIn eriorRin#$+#eome r6a3 posicin- N Re orna un lines rin#

Accesan"o componen es "e la #eome ria

Lineas

STS$umPoin s+#eome r6a- N Re orna un n.mero STS$Poin s+#eome r6a- J Re orna un n.mero STSPoin $+#eome r6a3 posicin- J Re orna un pun o

Pun o

STS[+#eome r6aSTSX+#eome r6aSTSc+#eome r6aSTS(+#eome r6a-

E4emplos

Cuan os cole#ios es :n a L>>> me ros "e un Casino conocien"o sus coor"ena"as

SELEC& #eome ria3 cole#io F%7: cole#ios )HE%E S&.(istance+#eome ria3 STSGeom9romTe2 +VPOI$T+IEGE>D'GDLDDFDDF E=L<I>;'FDL=LGEG-V3>-- ] L>>>
; Es una *.sque"a "irec a3 no se usan 6n"ices espaciales3 proceso len o para #ran"es &ol.menes "e "a os

SELEC& #eome ria3 cole#io F%7: cole#ios )HE%E 2eometria 33 ST_Expand%4eometry0romtext%-P$I # % 2+5+67.578773773 +98:261.378985+5 &-,6&,8666& A9( S&.(istance+#eome ria3 STS#eomfrom e2 +VPOI$T + IEGE>D'GDLDDFDDF E=L<I>;'FDL=LGEG -V3>-- ] L>>>
; Uso "e in"e2a"o espacial para i"en ificar :reas que res rin#en el uni&erso "e la *.sque"a

SELEC& #eome ria3 cole#io F%7: cole#ios )HE%E S&.()I&HI90#eome ria3 #eome r5from e2 +VPOI$T + IEGE>D'GDLDDFDDF E=L<I>;'FDL=LGEG -V3>-3 L>>>Uso "e una funcin pos #is que emplea el in"e2a"o espacial para i"en ificar :reas que res rin#en el uni&erso "e la *.sque"a

Pos #reSQL N Pos #is

Unin de tablas
; !a unin 8@OI39 es necesario cuando se necesita asociar datos ta0ulares a datos geogr5ficos. ; El !E%* @OI3 es necesario si se desea retener *ODO( los datos espaciales y agregarles datos ta0ulares en los casos 4ue se puedan.

)=em:
; lote 8con la columna DcodigoY y geometra9 ; propietarios 8con la columna DcodigoY e informacion del propietario del predio ; (e crea una ta0laC

CREA+E +AB"E loteunion 8codigo integer$ propietario te't9L SELECT -dd"eometr0(olumn( Dpublic', Dloteunion', D eometria', >, D"#$%#&R'' , 2 ) ; I:SER+ I:+O loteunion SE"EC+ p.codigo as codigo$ o.propietario as propietario$ p.geometria as geometria !ROM lote p "E!+ BOI: propietarios o O: o.codigo S p.codigoL

Pos #reSQL N Pos #is

Traslape de tablas
; &lgunos casos se re4uiere separar o partir elementos de una ta0la con otra manteniendo los datos ; E2em.

(e parte de zonificaciones o sectorizacion para encuestas y se tienen manzanas ademas las zonas pasan entre manzanas$ se puede io0tener los poligonos de las manzanas a4ue estan dentro y ademas partir a4uellas 4ue se re4uieran$ manteniendo su data y calculando posteriormente el area necesaria. CREA+E +AB"E resultados AS SE"EC+ S+,Intersection8f.geometria$ c.geometria9 &( geometria$ f.codIcatastral$ c.zona %RO) lotes f$ zonas c CDERE f.geometria XX c.geometria &3D S+,Intersects8f.geometria$ c.geometria9

Pos #reSQL N Pos #is

-peradores espaciales
; ; ; ; EE Indica c#ado dos geometras se trasla&an FG Indican si dos geometras son idHnticas G Indica c#ando dos geometra son ig#ales Ejem)
SELECT .=,)$%ER# (R!# calles )*ERE "#$%#&R'F7ST+Geom(romTe,t('+.)#,&R.)"(151232 243118,1511>8 243242)',>); +os operadores espaciales trabaGan sobre el boundin bo9 (caGa envolvente) de un obGeto, eneradas por el inde9ado espacial "ist?

Pos #reSQL N Pos #is

El in"e2a"o espacial no se u ili8a siempre3 ni "e forma au om: ica en una comparacin u opera"ocin espacial' !e*i"o a la na urale8a rec an#ular "e los 6n"ices RNTree +que es *ase "el Gis "el pos #is-3 los 6n"ices espaciales slo son *uenos para las comparaciones "e ca4a +*oun"in# *o2-' Por ello3 casi o"as las *ases "e "a os espaciales implemen an la seleccin espacial en "os fases7

B.sque"a in"e2a"a por ca4a3 so*re o"a la a*la ' B.sque"a espacial "e elemen o a elemen o3 enien"o en cuen a o"a su #eome r6a3 pero solamen e aplica"o al su*con4un o "e&uel o por la primera seleccin'

En Pos #is la primera fase "e la *usque"a la reali8a el opera"or dd' Al i#ual que el si#no H si#nifica i#ual a3 el s6m*olo dd si#nifica raslapan las ca4as' La #ran ma5or6a "e coman"os "e Pos GIS u ili8an por "efec o el opera"or dd3 por e4emplo STSIn ersec s o STS!)i 1in' E2is e para ca"a una "e es as funciones3 la misma &ersin que no u ili8a la in"e2acin espacial7 son las que empie8an con S +SSTSIn ersec s +-3 e c'-' Por e4emplo3 la "efinicin "e la funcin STSIn ersec s +- es realmen e una funcin "e SQL que reescri a la consul a en ?rminos "e una operacin in"e2a"a +dd- 5 una funcin no in"e2a"a'

Pos #reSQL N Pos #is


Prue*as con sen encias in"e2a"as 5 sin usar in"ice

Sin usar in"ices


e-"lain anal#se selec s Sin ersec ion+l'#eome ria3r'#eome ria- from lo es l3 re iros r *$ere .st.intersects0l5geometria?r5geometria1

Usan"o in"ices con un opera"or espacial


e-"lain anal#se selec s Sin ersec ion+l'#eome ria3r'#eome ria- from lo es l3 re iros r *$ere l5geometria KK r5geometria and .st.intersects0l5geometria?r5geometria1

(as eficien e
e-"lain anal#se selec s Sin ersec ion+l'#eome ria3r'#eome ria- from lo es l3 re iros r *$ere st.intersects0l5geometria?r5geometria1

Impor ancia "el SRI!

Es un c"i#o que sir&e para especificar en la a*la 5 a sus re#is ros3 en que pro5ecciones #eo#r:fica se encuen ran almacena"as' Es as pro5ecciones #eo#r:ficas es :n "efini"as en la a*la spatial_re0_sys 3 Si no se especifica un S"I;3 se oma por "efaul N;' EL SRI! se in"ica al momen o "e crear la #eome r6a 5 me"ian e las funciones correspon"ien es al re#is rar la a*la en 2eometry_columns

O* ener un SRI! con &alor > o N; 6 SELECT sri"+s S#eomfrom e2 +VPOI$T + IDEELE';<;;D=>ELDF E=L<;FF'<;>E=F;>L -V-SELECT sri"+s S#eomfrom e2 +VPOI$T + IDEELE';<;;D=>ELDF E=L<;FF'<;>E=F;>L -V33271+--

O*r ener un SRI! con &alor FID;E 6

En Gismap3 si se crea una capa3 5 se #ra*a al pos #is3 se asume un sri" i#ual a N; o >3 pero se pue"e asi#nar el srid an es "e #uar"arlo para su correc o re#is ro 5 "efinicin' Cuan"o se lee una a*la3 se usa el sri" especifica"o en pos #is' En Pos #is es posi*le corre#ir una asi#nacin erra"a o asi#nar a una a*la su correspon"ien e SRI! Si se usa un SRI! "iferen e a N; o >3 se pue"e usar STSTRA$S9OR( para cam*iar la pro5eccin #eo#r:fica por e4emplo "e lat<lon a =2s+5 utm 1+ sur

Pos #reSQL N Pos #is

Para &isuali8ar los "a os espaciales3 se u ili8a Gismap profesional'

Car#an"o la a*la comple a3 seleccionan"o como forma o POSTGIS E4ecu an"o sen encias SQL3 En el men. capa3 seleccionar consulta BdeS>(

En el "ialo#o7

Seleccionan"o el ipo "e *ase "e "a os +pos #rsqlIn"ican"o la cone2ion url7 4"*c7pos #resql7// ip7LGFI/d+name In"ican"o el usuario 5 la cla&e Escri*ien"o la sen encia SQL3 pue"en re ornar mul iples columasn3 pero "e*e 1a*er solamen e una #eome r6a3 si el resul a"o "el SQL no iene #eome r6a3 se asume en las coor"ena"as ;3; como referencia'

Pos #is N 9unciones

Tipos

Bo2I"

Se usa para represen arla ca4a que encierra a una #eome r6a o #rupo "e #eome r6as I#ual que el an erior pero en F "imensiones' Un ipo "e "a o espacial con "os campos7 2eom 5 pat?3 usa"o #eneralmen e por la funcion S#_;ump%2eometria& para #eome rias comple4as +mul is3 in3 compun"cur&e3 pol51e"ral3 e c'Un ipo "e "a os con coor"ena"as planas Un ipo "e "a os con pro5eccin elipsoi"al3 usa"o #eneralmen e con coor"ena"as en pro5eccin La / Lon'

Bo2F"

Geome r5S"ump

Geome r5

Geo#rap15

Pos #is N 9unciones

A"minis ra i&as

A""Geome r5Column

A#re#a una columna 2eometria una a*la e2is en e'

A""Geome r5Column+&arc1ar a*leSname3 &arc1ar columnSname3 in e#er sri"3 &arc1ar 5pe3 in e#er "imension-O A""Geome r5Column+&arc1ar sc1emaSname3 &arc1ar a*leSname3 &arc1ar columnSname3 in e#er sri"3 &arc1ar 5pe3 in e#er "imension-O A""Geome r5Column+&arc1ar ca alo#Sname3 &arc1ar sc1emaSname3 &arc1ar a*leSname3 &arc1ar columnSname3 in e#er sri"3 &arc1ar 5pe3 in e#er "imension-O ALTER TABLE a*la A!! COLU($ #eome ria #eome r5+Poin 3GFI=-O ALTER TABLE a*la A!! COLU($ #eome ria #eome r5+Geome r53FID;E-O

En la &ersion I'> es equi&alen e a usar7


!ropGeome r5Column

Remue&e una columna #eome ria "e una a*la espacial'


!ropGeome r5Column+&arc1ar a*leSname3 &arc1ar columnSname-O !ropGeome r5Column+&arc1ar sc1emaSname3 &arc1ar a*leSname3 &arc1ar columnSname-O !ropGeome r5Column+&arc1ar ca alo#Sname3 &arc1ar sc1emaSname3 &arc1ar a*leSname3 &arc1ar columnSname-O

En la &ersion I'> es equi&alen e a usar ALTER TABLE o ]"ele eW "es"e el p#a"min III

Pos #is N 9unciones

A"minis ra i&as

!ropGeome r5Ta*le

Elimina una a*la 5 sus referencias en la columna #eome ria' !ropGeome r5Ta*le+&arc1ar a*leSname-O !ropGeome r5Ta*le+&arc1ar sc1emaSname3 &arc1ar a*leSname-O !ropGeome r5Ta*le+&arc1ar ca alo#Sname3 &arc1ar sc1emaSname3 &arc1ar a*leSname-O

En la &ersion I'> es equi&alen e a usar !ROP TABLE "irec amen e3 o eliminar la a*la con el PGA"min III'

Pos #is N 9unciones

A"minis ra i&as

Pos GISS9ullS,ersion

$os mues ra la &ersin "el Pos #is 5 sus li*rer6as

SELECT Pos #isS9ullS,ersion+-O

Pos GISSGEOSS,ersion Pos GISSLi*[(LS,ersion Pos GISSLi*SBuil"S!a e Pos GISSLi*S,ersion Pos GISSPRO%S,ersion Pos #isS,ersion

(ues ra la &ersin "e Pos #is 5 si usa las li*rer6as Geos3 Por4G

Pos #is N 9unciones

A"minis ra i&as

Popula eSGeome r5SColumns

Ase#ura que la columna #eome r6a es a correc amen e "efini"a con los cons rains espaciales correspon"ien es 5 es a re#is ra"o en la a*la 2eometry_columns' E4m7
selec Popula eSGeome r5SColumns+selec Popula eSGeome r5SColumns+Vlo esV77re#class-

Pro*eSGeome r5SColumns +"eprecia"o en la &ersion I'>

Scans o"as las a*las con Pos GIS #eome r5 cons rain s 5 los a#re#a a la a*la 2eometry_columns si no es :n re#is ra"os +las &is as "e*en re#is rarse manualmen e-'

Up"a eGeome r5SRI!

Ac uali8a el SRI! "e o"os los elemen os en una columna #eome r6a3 ac uali8an"o sus con rains 5 referencias'

Pos #is N 9unciones

Cons ruc ores

STSB"Pol59romTe2

Cons ru5e un o*4e o poli#ono "a"o una coleccin "e lines rin#s cerra"os como (ul iLineS rin# represen a"os en )`T'

STSB"(Pol59romTe2 Cons ru5e un mul ipoli#ono "a"o una coleccin "e lines rin#s cerra"os como (ul iLineS rin# represen a"os en )`T' STSGeo#9romTe2 / STSGeo#rap159romTe2

Re orna un o*4e o Geo#rap15 "a"a su #eome ria en )`T'

STSGeo#9rom)`B

Re orna un o*4e o Geo#rap15 "a"a su #eome ria en )`T

STSGeomColl9romTe2

Re orna un o*4e o Geome r5 Collec ion "a"a su #eome r6a en )`T' Si no se especifica el SRI!3 su &alor por "efaul es N;'

STSGEO(9RO(E)`B / STSGEO(9RO(E)`T

Re orna una #eme r6a "el forma o e2 en"i"o "el )`T o )`B

Pos #is N 9unciones

Cons ruc ores

STSGeom9romTe2 /STSGeome r59romTe2

Re orna un o*4e o Geome r5 "a"a su #eome ria en )`T' Si no se especifica el SRI!3 su &alor por "efaul es N; o > Re orna un o*4e o Geome r5 "a"a su #eome ria en G(L' Re orna un o*4e o Geome r5 "a"a su #eome ria en `(L'STSGeom9rom`(L Re orna un o*4e o Geome r5 "a"a su #eome ria en )`B' Si no se especifica el SRI!3 su &alor por "efaul es N; o >' Re orna un o*4e o Geome r5 "a"a su #eome r6a en forma o %SO$'

STSGeom9romG(L / G(LToSQL

STSGeom9rom`(L

STSGeom9rom)`B

STSGeom9rom%SO$

Pos #is N 9unciones

Cons ruc ores

STSLine9rom(ul iPoin

Crea un LineS rin# "e una #eome ria (ul iPoin '

STSLine9romTe2

Crea un o*4e o #eome r5 "e un e2 o )`T3 SI no se especifica un sri"3 omara el &alor por "efaul "e N;'

STSLine9rom)`B

Crea un o*4e o lines rin# "e un )`B

STSLines rin#9rom)`B

Crea un o*4e o #eome r5 "e un )`B'

Pos #is N 9unciones

Cons ruc ores

STS(aCeBo2I!

Crea un o*4e o BO[I! "efini"o por "os pun os "e los &er ices opues os' Ee4m7

NNRe urn all fea ures 1a fall resi"e or par l5 resi"e in a US na ional a las coor"ina e *oun"in# *o2 I is assume" 1ere 1a 1e #eome ries are s ore" 0i 1 SRI! H I;=F +US $a ional a las equal areaSELECT fea ureSi"3 fea ureSname3 1eS#eom 9RO( fea ures )KERE 1eS#eom dd STSSe SRI!+STS(aCeBo2I!+STSPoin +N<E<L>I';EDL3 LIEGF<'L=IL-3 STSPoin +N<ED;I;'FDL 3LI<<FF';EDL--3I;=F-

STSF!(aCeBo2

Crea un o*4e o BO[F!3 "efini"o por los pun os "e los &er ices opues os' E4m7
SELECT STS(aCeBo2F!+STS(aCePoin +N<E<L>I';EDL3 LIEGF<'L=IL3 ;>-3 STS(aCePoin +N<ED;I;'FDL 3LI<<FF';EDL3 ;>-- As a**F"

Pos #is N 9unciones

Cons ruc ores

STS(aCeLine
6 Crea un o*4e o Lines rin# "e una #eome ria "e pun os'
S&.:a4eLine+#eome r5 se poin fiel"-O S&.:a4eLine+#eome r5 poin ;3 #eome r5 poin I-O S&.:a4eLine+#eome r5PQ poin Sarra5-O

E4em7
SELECT #ps'#psSmensa4e3 STS(aCeLine+#ps'#eome ria OR!ER BX #psSfec1a- As ne0#eom 9RO( #psSpun os as #ps GROUP BX #ps'#psSmensa4eO N SELECT STSAsTe2 +STS(aCeLine+STS(aCePoin +;3I-3 STS(aCePoin +F3G---O N SELECT STSAsE)`T+STS(aCeLine+STS(aCePoin +;3I3F-3 STS(aCePoin +F3G3L---O N SELECT STSAsE)`T+STS(aCeLine+ARRAXPSTS(aCePoin +;3I3F-3 STS(aCePoin +F3G3L-3 STS(aCePoin +=3=3=-Q--O

Pos #is N 9unciones

Cons ruc ores

STS(aCeEn&elope

Crea un o*4e o rec an#ular +poli#ono- forma"o con las coor"ena"as minimas 5 ma2imas 5 especifican"o su SRI!' E4em7 SELECT STSAsTe2 +STS(aCeEn&elope+NDI'IFIF3 N;I'FI;I3 NDI'GLGLG3N ;;'IFI;GF3 GFI=--O

STS(aCePol5#on

Crea un o*4e o pol6#ono "a"o un lines rin# cerra"o E4em7 SELECT STS(aCePol5#on+STSGeom9romTe2 +VLI$ESTRI$G+DL';L I<'LF3DD I<3DD'= I<'L3 DL';L I<'LF-V--O E4em7 si el lines rin# no es cerra"o se pue"e a#re#ar la coor"ena"a "e cierre SELECT STS(aCePol5#on+STSA""Poin +foo'openSline3 STSS ar Poin +foo'openSline--- 9RO( + SELECT STSGeom9romTe2 +VLI$ESTRI$G+DL';L I<'LF3DD I<3DD'= I<'L-V- As openSlineAs fooO E4em' SELECT STS(aCePol5#on+STSE2 eriorRin#+STSBuffer+foo'linea3;>--3 ARRAXPSTS ransla e+foo'linea3;3;-3 STSE2 eriorRin#+STSBuffer+STSmaCePoin +I>3I>-3;--Q - 9RO( +SELECT STSE2 eriorRin#+STSBuffer+STS(aCePoin +;>3;>-3;>3;>-as linea- as fooO

Pos #is N 9unciones

Cons ruc ores

STS(aCePoin / STSPoin

Crea un o*4e o pun o in"ican"o las coor"ena"as' Crea un o*4e o (ul iLineS rin# "e un e2 o )`T' Crea un o*4e o pun o in"ican"o la #eome ria en )`T' Crea un o*4e o pun o "e un )`B3 in"ican"o su SRI! correspon"ien e Crea un o*4e o pol5#on cons rui"o "e una #eome ria lines rin# con SRI! especifica"o' E4em7 SELECT STSPol5#on+STSGeom9romTe2 +VLI$ESTRI$G+DL';L I<'LF3DD I<3DD'= I<'L3 DL';L I<'LF-V-3 GFI=-O

STS(Line9romTe2

STSPoin 9romTe2

STSPoin 9rom)`B

STSPol5#on

Pos #is N 9unciones

Cons ruc ores

STSPol5#on9romTe2

Crea un o*4e o pol5#on "e un )`T3 si no se especifica el SRI!3 se asume el &alor N;' E4em7

SELECT STSPol5#on9romTe2 +VPOLXGO$++ND;';DD=LEL>LI<;D GI'F<>I<><DF<LD;3ND;';DD=EI>I=EE== GI'F<>FD>;DGFIF<3 ND;';DD=>=F>;IL<L GI'F<>FEIL==>DLG3ND;';DDLEI=LEF>E; GI'F<>F>FF=LFLF;3ND;';DD=LEL>LI<;D GI'F<>I<><DF<LD;--V3GFI=-O

STS)`TToSQL

Es i#ual que s S#eomfrom e2 '

Pos #is N 9unciones

Accesorios'
Geome r5T5pe
6 (ues ra el ipo "e #eome r6a como un e2 o 7 VLI$ESTRI$GV3 VPOLXGO$V3 V(ULTIPOI$TV3 e c' Ini"ca cuan"o la #eome r6a iene el "a o ( +( "imensional

STSBoun"ar5
6 Re orna el *or"e +fron era- "e una #eome ria'
SELECT STSAsTe2 +STSBoun"ar5+STSGeom9romTe2 +VLI$ESTRI$G+; ;3> >3 N; ;-V---O > Re orna7 (ULTIPOI$T+; ;3N; ;SELECT STSAsTe2 +STSBoun"ar5+STSGeom9romTe2 +VPOLXGO$++; ;3> >3 N; ;3 ; ;--V---O > Re orna7 LI$ESTRI$G+; ;3> >3N; ;3; ;SELECT STSAsE)`T+STSBoun"ar5+STSGeom9romE)`T+VPOLXGO$++; ; ;3> > ;3 N; ; ;3 ; ; ;--V---O > Re orna7 LI$ESTRI$G+; ; ;3> > ;3N; ; ;3; ; ;-

STSEn"Poin
6 Re orna el ul imo pun o "e una #eome ria ipo LI$ESTRI$G como un POI$T3 cualquier o ro re orna un &alor nulo'

STSEn&elope
6 Re orna la ca4a que cpn iene a la #eome r6a +Boun"s-3 como un pol6#ono'

Pos #is N 9unciones

Accesorios

STSE2 eriorRin#
6 Re orna un lines rin# que represen a el e2 erior "e una #eome r6a POLXGO$' A "iferencia "e STSBOU$!ARX es e re orna $ULL si la #eome r6a no es un pol6#ono

STSGeome r5$
6 Re orna la VnV #eome r6a "e un GEO(ETRXCOLLECTIO$3 (ULTIPOI$T3 (ULTILI$ESTRI$G3 (ULTICUR,E o (ULTIPOLXGO$' En cualquier o ro caso3 re orna $ULL'

STSGeome r5T5pe
6 (ues ra el ipo "e #eome r6a como un e2 o VSTSLineS rin#V3 VSTSPol5#onV3 e c'

STSIn eriorRin#$
6 Re orna el @nA lines rin# rin# "el in erior "e una #eome r6a pol6#ono Re orna $ULL si la #eome ria no es un poli#ono o la posicion n es a fuera "e ran#o'

STSIsClose"
6 Re orna TRUE si el pun o inicial 5 el pun o final "e un LI$ESTRI$G coinci"en'

STSIsCollec ion

Re orna TRUE si la #eome r6a es (ULTIR o un GEO(ETRXCOLLECTIO$'

Pos #is N 9unciones

Accesorios

STSIsEmp 5
6 Re orna rue si la #eome r6a es a &ac6a E4em7 SELECT STSIsE(p 5+STSGeom9romTe2 +VGEO(ETRXCOLLECTIO$ E(PTXV--'

STSIsRin#
6 Re orna TRUE si el LI$ESTRI$G es cerra"o 5 simple'

STSIsSimple
6 Re orna +TRUE- si la #eome r6a no iene anomal6a3 como coor"ena"as mas "a"as3 in erseccin consi#o mismo3 e c'

STSIs,ali"
6 Re orna rue si STSGeome r5 es a correc amen e forma"a'

STSIs,ali"Reason
6 Re orna un e2 o "escrip i&o si una #eome r6a es &ali"a o no3 un par:me ro opciones es un 9LAG que pue"e ser ; +In erseccin consi#o mismo forman"o 1uecos-'

STSIs,ali"!e ail 6 Re orna el "e alle +&ali"o3 ra8n3locali8acin- "e una #eome r6a no &ali"a'
Re orna el n.mero "e pun os +&?r ices-en una #eome r6a

STS$Poin s
6

Pos #is N 9unciones

Accesorios
STS$Rin#s 6 Si la #eome r6a es un pol5#on o mul iNpol5#on3 re orna el numero "e lines rin#' STS$umGeome ries 6 Si la #eome r6a es un GEO(ETRXCOLLECTIO$ +o (ULTIR-3 re orna el numero "e #eome rias3 en caso con rario re orna nulo' STS$umPoin s 6 Re orna el numero "e pun os en un STSLineS rin#' STSPoin $ 6 Re orna la posicion @$A "e un lines rin#' Re orna $ULL si la #eome r6a no es un lines rin#' STSSRI! 6 Re orna el Spa ial Reference I!en ifier "e la #eome ria3 se#.n las "efiniciones en la a*la spa ialSrefSs5s a*le'

Pos #is N 9unciones

Accesorios

STSS ar Poin 6 Re orna el primer pun o "e una #eome r6a ipo LI$ESTRI$G como un POI$T'

STS[ 6 Re orna la coor"ena"a [ "e un pun o3 o $ULL si no s posi*le' Se aplica so*re #eoem rias ipo POI$T' Re orna el [ m:2imo3 [ m6nimo "e una ca4a +Boun"in# Bo2-' Re orna la coor"ena"a X "e un pun o3 o $ULL si no es a "isponi*le' Se aplica so*re #eome r6a ipo POI$T'

STS(a2[3 STS(in[ 6 STSX 6

STS(a2X3 STS(inX 6 Re orna el X m:2imo3 (inimi8o "e una ca4a +Boun"in# Bo2Re orna la coor"ena"a c "e un pun o3 o $ULL si no es a "isponi*le' Se aplica so*re #eome r6a ipo POI$T' Re orna el c ma2imo3 c minimo "e una ca4a +Boun"in# Bo2STSc 6

STS(a2c3 STS(inc 6

Pos #is N 9unciones

E"i ores

STSA""Poin 6 A#re#a un pun o a un LineS rin#3 la posicin es opcional +inicia en cero-'

UP!ATE man8anas SET #eome ria H STSA""Poin +#eome ria3 STSS ar Poin +#eome ria-- )KERE STSIsClose"+#eome ria- H falseO J a#re#a el &er ice final a las polilineas no cerra"as SELECT STSAs e2 +STSA""Poin +STSGeom9romE)`T+VLI$ESTRI$G+> >3 ; ;-V-3 STS(aCePoin +;3 I---O SELECT STSAs e2 +STSA""Poin +STSGeom9romE)`T+VLI$ESTRI$G+> >3 ; ;-V-3 STSGeom9romTe2 +VPOI$T+; I-V-3;--O SELECT STSAsE)`T+STSA""Poin +STSGeom9romE)`T+VLI$ESTRI$G+> > ;3 ; ; ;-V-3 STS(aCePoin +;3 I3 F---O

STSAffine 6 Se aplica para ransformar la #eome r6a me"ian e su raslacin3 ro acin 5 escala en un solo paso3 se aplica una ma ri8 "e ransformacin'

NNRo a una linea +F"- en ;E> #ra"os en el e4e [ 5 c SELECT STSAsE)`T+STSAffine+ 1eS#eom3 cos+pi+--3 Nsin+pi+--3 >3 sin+pi+--3 cos+pi+--3 Nsin+pi+--3 >3 sin+pi+--3 cos+pi+--3 >3 >3 >-- 9RO( +SELECT STSGeom9romE)`T+VLI$ESTRI$G+; I F3 ; G F-V- As 1eS#eom- As fooO

Pos #is N 9unciones

E"i ores

STSLine(er#e 6 Re orna un LineS rin# o (ul iLineS rin# forma"o por la union "e #eome ria (ULTILI$ESTRI$G' Si e2is e con inui"a" en las lineas3 se unen forman"o una sola linea'

SELECT STSAsTe2 +STSLine(er#e+STSGeom9romTe2 +V(ULTILI$ESTRI$G++NI< NID3NF> NI<'D3NF= NF;3NGL NFF-3+NGL NFF3NG= NFI--V---O

STSCollec ionE2 rac 6 E2 rae un (ULTIR "e un GEO(ETRX COLLECTIO$3 fil ra"o por el ipo especifica"o3 si no e2is e una #eome ria E(PTX es re orna"o' Los ipos son ; HH POI$T3 I HH LI$ESTRI$G3 F HH POLXGO$'

SELECT STSAsTe2 +STSCollec ionE2 rac +STSGeom9romTe2 +VGEO(ETRXCOLLECTIO$+GEO(ETRXCOLLECTIO$+POI$T+> >---V-3;--O J re orna un (ULTIPOI$T SELECT STSAsTe2 +STSCollec ionE2 rac +STSGeom9romTe2 +VGEO(ETRXCOLLECTIO$+GEO(ETRXCOLLECTIO$+LI$ESTRI$ G+> >3 ; ;--3LI$ESTRI$G+I I3 F F--V-3I--O J re orna un (ULTILI$ESTRI$G

Pos #is N 9unciones

E"i ores

STS9ORCESI!

9uer8a a la #eome r6a a con&er irse en I "imensiones eliminan"o c' 9uer8a a la #eome r6a a un mo"o [ X c' 9uer8a a la #eome r6a a un mo"o [ X c ( 9uer8a a la #eome r6a a un GEO(ETRXCOLLECTIO$

STS9ORCESF! / STS9ORCESF!c 6 STS9ORCESF!( / STS9ORCESG( 6


STS9ORCESCOLLECTIO$

STS9ORCESRKR 6 9uer8a a la orien acin "e los &?r ices a se#uir la re#la "e la @mano "erec1aA

Pos #is N 9unciones

E"i ores

STSCollec ionKomo#eni8e

Re orna una represen acin simple "el con rni"o "e un GEO(ETRX COLLECTTIO$' E4m7 SELECT STSAsTe2 +STSCollec ionKomo#eni8e+VGEO(ETRXCOLLECTIO$+POI$T+> >-V--O J re orna 7 POI$T+> >SELECT STSAsTe2 +STSCollec ionKomo#eni8e+VGEO(ETRXCOLLECTIO$+POI$T+> >-3POI$T+; ;-V--O J re orna 7 (ULTIPOI$T+> >3; ;-

STS(ul i

Re orna la #eome ria como un (ULTIR #eome r5' Si la #eome ria 5a es un (ULTIR3 es re orna"o sin cam*ios' E4m7 SELECT STSAs e2 +STS(ul i+STSGeom9romTe2 +VPOLXGO$ +;>> ;>>3 ;>> I>>' I>> I>>3 I>> ;>>3 ;>> ;>>-V---O J Re orna (ULTIPOLXGO$++;>> ;>>3 ;>> I>>' I>> I>>3 I>> ;>>3 ;>> ;>>--

Pos #is N 9unciones

E"i ores

STS9orceSI!3 STS9orceSF!3 STS9orceSF!(3STS9orceSG!

9uer8a a con&er ir una #eome ria a +[ X-3 +[ X c-3 +[ X (-3 +[ X c (-' Remue&e el pun o in"ica"o por su posicin UP!ATE a*la SET #eome riaH STSRemo&ePoin +#eome ria3STS$Poin s+#eome ria-N ;- 9RO( a*la )1ere STSIsclose"+#eome ria-O J remo&er el ul imo pun o "e un lines rin#' In&ier e el or"en "e los &?r ices "e una #eome r6a Ro a una #eome r6a en un an#ulo in"ica"o en ra"ianes3 opcionalmen e se pue"e in"icar un &alor 235 como pun o "e ro acin3 o una #eome r6a "e ipo pun o' Ro a una #eome r6a en ra"ianes en el e4e [ 3 X o c' Cam*ia la proporcin "e una #eome r6a se#.n un fac or in"ica"o en el e4e [3 X' opcionalmen e c'

STSRemo&eSPoin

STSRe&erse

STSRo a e

STSRo a e[3 STSRo a eX3 STSRo a ec

STSScale

Pos #is N 9unciones

E"i ores

STSSe#men i8e 6 Re orna una #eome ria mo"ifica"a3 se#men an"o +a#re#an"o &er ices- "a"a una "is ancia'

SELECT STSAsTe2 +STSSe#men i8e+STSGeom9romTe2 +V(ULTILI$ESTRI$G++NI< NID3NF> NI<'D3NF= NF;3N GL NFF-3+NGL NFF3NG= NFI--V-3L- -O J se#men i8a ca"a L me ros'

STSSe Poin 6 Reempla8a el pun o en la posicion $ "e un lines rin#' El in"ice empie8a en cero'

SELECT STSAsTe2 +STSSe Poin +VLI$ESTRI$G+N; I3N; F-V3 C3 VPOI$T+N; ;-V--O J re orna LI$ESTRI$G+N; ;3N; F

STSSe SRI! 6 Asi#na el SRI! "e una #eome r6a +a"iciona el me a"a a 3 no lo ransforma-'

SELECT STSSe SRI!+STSPoin +NDD'>IIL>>EFFFFFF3 N;I';F<=EE-3GFI=- As 0#sEGlon#Sla O SELECT STSTransform+STSSe SRI!+STSPoin +NDD'>IIL>>EFFFFFF3 N;I';F<=EE-3GFI=-3FD;E- As u mO

Pos #is N 9unciones

E"i ores

STSSnapToGri" 6 A4us a o"os los pun os "e una #eome r6a a una malla "efini"o por un ori#en 5 un ama/o "e cel"a3 Eliminarlos &?r ices repe i i&os que caen en una misma cel"a3 re orna $ULL si los pun os no son suficien es para "efinirlo' Se usa principalmen e para re"ucir precisin

UP!ATE m5 a*le SET 1eS#eom H STSSnapToGri"+ 1eS#eom3 >'>>;-O J re"ucir a res "ecimales SELECT STSAsTe2 +STSSnapToGri"+STSGeom9romTe2 +VLI$ESTRI$G+;';;;L=DE I';IF3 G';;;;;; F'IFDGE<D3 G';;;;I F'IFDGE==D-V-3>'>>;--O J re"ucir a res "ecimales SELECT STSSnapToGri"+#eome ria3 >';3 >';3 >';3 >'>;- from man8anas J "a"a un ori#en 235 5 ama/o "e la cel"a en am*os e4es

STSTransform

Tra*sforma la #eome ria "e un SRI! a o ro'


SELECT s S ransform+#eome ria3GFI=- from man8anasO J ransforma las coor"ena"as a la lon '

STSTransla e/STSTransScale 6 Transla"a la #eome r6a usan"o uin "el a[ 5 un "el aX 5/o usan"o un fac or[ 5 un fac orX'

Pos #is N 9unciones

E"i ores

STSSnap
A4us a los se#men os 5 &?r ices "e una #eome r6a a los &?r ices "e o ra #eome r6a "e referencia' Se in"ica la olerancia +en uni"a"es "e las coor"ena"as-' E4m7 STSS$AP+#eome ria;3#eome riaSref3;'>>;

SELECT

Geome ria;HSTSGeom9romTe2 +V(ULTIPOLXGO$ +++ I= ;IL3 GF ;<L3 ;>F ;<E3 ;I= ;IL3 I= ;IL -3 + L; ;L>3 ;>; ;L>3 <D ;DG3 LL ;DL3 L; ;L> --3 ++ ;L; ;FF3 ;;E ;<E3 ;== ;EI3 ;L; ;FF --- VGeome riaIHSTSGeom9romTe2 +VLI$ESTRI$G + ;L ;>=3 LG EG3 =G <G3 ;>; ;>> -VaNN #eome ria; a #eome riaI3 olerancia ;'>; SELECT STSAs e2 +STSSnap+poli#ono3linea3STS!is ance+poli#ono3linea-R;'>;-- as a4us a"o 9RO( +SELECT #eome ria; as poli#ono3 #eome riaI as linea- as fooO J #eome ria; a #eome riaI3 olerancia ;'GL SELECT STSAs e2 +STSSnap+poli#onolineaTS!is ance+poli#ono3linea-R;'GL-- as a4us a"o 9RO( +SELECT #eome ria; as poli#ono3 #eome riaI as linea- as fooO J #eome riaI a #eome ria;3 olerancia ;'>; SELECT STSAs e2 +STSSnap+linea3poli#ono3STS!is ance+poli#ono3linea-R;'>;-- as a4us a"o 9RO( +SELECT #eome ria; as poli#ono3 #eome riaI as linea- as fooO J #eome riaI a #eome ria;3 olerancia ;'IL SELECT STSAs e2 +STSSnap+linea3poli#ono3STS!is ance+poli#ono3linea-R;'GL-- as a4us a"o 9RO( +SELECT #eome ria; as poli#ono3 #eome riaI as linea- as fooO

Pos #is N 9unciones

Sali"as STSAsBinar5 6 6 6 Re orna en forma o +)`B- sin incluir el SRI!' Re orna en forma o +)`T- inclui"o el SRI!' Re orna en forma o Geo%SO$' Or#ani8acin es ruc ura"a "e la #eome r6a' Re orna en forma o G(L' Usa"o por aplicaciones que cumplen las especificaciones "el OGC' STSAsE)`T STSAsGeo%SO$

STSAsG(L 6

Pos #is N 9unciones

Sali"as STSAs`(L 6 Re orna en forma o `(L' !efaul &ersinHI +;3I3F3G-3 "efaul precisinH;L'
STSAs`(L+#eome r6a-O STSAs`(L+#eome r6a 3 precisin-O STSAs`(L+&ersin3 #eome r6a -O STSAs`(L+&ersin3 #eome r6a 3 precisin-O

STSAsS,G 6 6 6

Re orna en forma o S,G' Re orna en forma o GeoKas1 +#eo1as1'or#-' Re orna en )ellN`no0n Te2 +)`T- sin usar SRI!' Re orna la coor"ena"a "e una #eome r6a ipo pun o a mo"o e2 o "e #ra"os minu os 5 se#un"os +se pue"e especificar el forma o "e sali"a-'

STSGeoKas1 STSAsTe2 STSAsLa LonTe2

Pos #reSQL N Pos #is

-peradores y operadores logicos


; AEEB $ AEEEB ; AEIB

-peradores y operadores logicos


; AGB
6 Ca2a 4ue circunscri0e a & es igual a B 6 Ca2a 4ue circunscri0e a & est5 estrictamente a la derec1a de B 6 Ca2a 4ue circunscri0e a & es contenido por B 6 Ca2a 4ue circunscri0e a & traslapa o esta encima de B 6 Ca2a 4ue circunscri0e a & esta estrictamente encima de B

6 (i la ca2a circunscrita de & se traslapa a la de B en -D .D Ca2a 4ue circunscri0e a & superpone o esta a la iz4uierda de la de .

; AKKB ; ALB

AEIJB

; AEKB

6 Ca2a 4ue circunscri0e a & superpone o esta de0a2o de B Ca2a 4ue circunscri0e a & superpone o esta a la derec1a de B. Ca2a 4ue circunscri0e a & esta estrictamente a la iz4uierda de la de B.

; AJEKB

; AJKKB ; AFB

; AIIB

; AIIJ

6 Ca2a 4ue circunscri0e a & esta estrictamente de0a2o de B

; AFGB

Ca2a circunscrita de & esta contendida en la de B. (i la ca2a circunscrita de & se superpone a la de B.

Pos #is N 9unciones

Relaciones espaciales 5 me"i"as

Las funciones que empie8an con STSF!2222 procesan las coor"ena"as consi"eran"o la al ura +STSF!Closes Poin 3 STSF!!is a*ec3 STSF!!)i 1in3 STSF!!9ull0)i 1in3 STSF!In ersec s3 STSF!Lon#es Line3 STSF!(a2!is ance3 STSS1or es Line-' STSArea 6 Re orna el :rea "e la superficie si es un pol6#ono o mul ipoli#ono' Las uni"a"es son"a"as por el SRI! usa"o' Re orna el :n#ulo3 en ra"ianes3 "el &ec or "efini"o por un pu o A al pun o B' Re orna el cen ro #eom? rico Re orna el pun o mas cercano en re "os #eome r6as Re orna rue si la #eome r6a "e B es a "en ro "e la #eome r6a "e A' Re orna rue si las #eome r6as ienen al#unos pun os en com.n'

STSA8imu 1 6 6 6 6 6 STSCen roi" STSCloses Poin STSCon ains STSCrosses

Pos #is N 9unciones

Relaciones espaciales 5 me"i"as

Las funciones que empie8an con STSF!2222 procesan las coor"ena"as consi"eran"o la al ura +STSF!Closes Poin 3 STSF!!is a*ec3 STSF!!)i 1in3 STSF!!9ull0)i 1in3 STSF!In ersec s3 STSF!Lon#es Line3 STSF!(a2!is ance3 STSS1or es Line-' STSArea 6 Re orna el :rea "e la superficie si es un pol6#ono o mul ipoli#ono' Las uni"a"es son"a"as por el SRI! usa"o' Re orna el :n#ulo3 en ra"ianes3 "el &ec or "efini"o por un pu o A al pun o B' Re orna el cen ro #eom? rico Re orna el pun o mas cercano en re "os #eome r6as Re orna rue si la #eome r6a "e B es a "en ro "e la #eome r6a "e A' Re orna rue si las #eome r6as ienen al#unos pun os en com.n'

STSA8imu 1 6 6 6 6 6 STSCen roi" STSCloses Poin STSCon ains STSCrosses

Pos #is N 9unciones

Relaciones espaciales 5 me"i"as STSLineCrossin#!irec ion J E&alua "os lines rin#s3 re ornan"o un n.mero en re NF 5 F que in"ica el ipo "e cruce que se iene'
6 6 6 6 6 6 6 >7 LI$E $O CROSS N;7 LI$E CROSS LE9T ;7 LI$E CROSS RIGKT NI7 LI$E (ULTICROSS E$! LE9T I7 LI$E (ULTICROSS E$! RIGKT NF7 LI$E (ULTICROSS E$! SA(E 9IRST LE9T F7 LI$E (ULTICROSS E$! SA(E 9IRST RIGKT

SELECT STSLineCrossin#!irec ion+ es 'linea;3 es 'lineaI- As l;ScrossSlI 3 STSLineCrossin#!irec ion+ es 'lineaI3 es 'linea;As lIScrossSl; 9RO( + SELECT STSGeom9romTe2 +VLI$ESTRI$G+IL ;=<3E< ;;G3G> D>3E= GF-V- As linea;3 STSGeom9romTe2 +VLI$ESTRI$G+;D; ;LG3I> ;G>3D; DG3;=; LF-V- As lineaI - As es O J cruce mul iple SELECT STSLineCrossin#!irec ion+ es 'linea;3 foo'lineaI- As l;ScrossSlI 3 STSLineCrossin#!irec ion+ es 'lineaI3 foo'linea;As lIScrossSl; 9RO( + SELECT STSGeom9romTe2 +VLI$ESTRI$G+IL ;=<3E< ;;G3G> D>3E= GF-V- As linea;3 STSGeom9romTe2 +VLI$ESTRI$G +I> ;G>3 D; DG3 ;=; LF-V- As lineaI - As es O J cruce simple

STS!is4oin 6 Re orna TRUE si las #eome r6as no compar en un mismo espacio'

Pos #is N 9unciones

Relaciones espaciales 5 me"i"as STS!is ance 6 Re orna la m6nima "is ancia +*asa"a en el spa ialSref- en re "os #eome r6as en uni"a"es "e la pro5eccin'

SELECT STS!is ance+ STSGeom9romTe2 +VPOI$T + NDD';>GD>;>FG<;LGE N;I'>GE>EL;IG=IL<D= -V3GFI=-3 STSGeom9romTe2 +VPOI$T + ND='E<FIE<<FDI=I<I N;I';LG<DEFD=IGE>LD -V3 GFI=- -O NN "is ancia en uni"a"es la lon SELECT STS!is ance+ STSTransform+STSGeom9romTe2 +VPOI$T + NDD';>GD>;>FG<;LGE N;I'>GE>EL;IG=IL<D= -V3GFI=-3FID;E-3 STSTransform+STSGeom9romTe2 +VLI$ESTRI$G + NDD';<<D;DILELD<LG N;I'IFFF==D=>DD><;F3 ND='<LDD<><=<<G=F N;I';E<>I>;<D=L -V3 GFI=-3FID;E- -O NN "is ancia en (e ros

STSKaus"orff!is ance 6 Re orna cuan i a i&amen e3 cuan seme4an es son "os #eome r6as3 opcionalmen e "e pue"e in"icar un fac or density,rac3 que in"ica la "ensificacion +o fraccionamien o- "e se#men os a comparar con la uni"a" an es "el procesamien o + 1 p7//en'0iCipe"ia'or#/0iCi/Kaus"orffS"is ance- ' STS(a2!is ance 6 Re orna la ma5or "is ancia en re "os #eome r6as'

Pos #is N 9unciones

Relaciones espaciales 5 me"i"as STS!9ull5)i 1in 6 Re orna TRUE si o"as las #eome r6as es :n comple amen e "en ro "e la "is ancia especifica"a "e la o ra Re orna TRUE si las #eome r6as es :n "en ro "e la "is ancia especifica"a "e la o ra' Re orna TRUE si am*as #eome rias son i#uales3 el or"en "e los &?r ices 5 la "ireccion es i#nora"a' Re orna TRUE si las #eome r6as se in ersec an' Re orna la lon#i uf "e un LI$ESTRI$G o (ULTILI$ESTRI$G' Las uni"a"es son "efini"as por el SRI!'

STS!)i 1in 6

STSEquals 6

STSIn ersec s 6 6 STSLen# 1

Pos #is N 9unciones

Relaciones espaciales 5 me"i"as STSLon#es Line 6 Re orna un LI$ESTRI$G que es la linea mas lar#a +ma5or "is anciaen re "os #eome r6as' EL primer &?r oice correspon"e a la primera #eome r6a' La lon#i u" "e la l6nea es la misma que nos re orna s Sma2"is ance' Re orna TRUE si las #eome r6as represen a la misma forma 5 los pun os en el mismo or"en' Re orna TRUE si am*as #eome r6as compar en el mismo espacio pero no son comple amen e con eni"os el uno por el o ro' Re orna el per6me ro "e un Pol5#on o (ul ipol5#on' Re orna un POI$T con la #aran ia que es a "en ro "e la #eome r6a'

STSOr"erin#Equals 6

STSO&erlaps 6

STSPerime er 6 6 STSPoin OnSurface

Pos #is N 9unciones

Relaciones espaciales 5 me"i"as STSRela e 6 Re orna TRUE si las #eome r6as ienen relaciones espaciales3 cumplen las especificaciones SQL/((' Re orna la linea mas cor a en re "os #eome r6as'

STSS1or es Line 6
SELECT STSAsTe2 + STSS1or es Line+VPOI$T+;>> ;>>-V77#eome r53 VLI$ESTRI$G +I> E>3 <E ;<>3 ;;> ;E>3 L> DL -V77#eome r5- - As slineO J en re un pun o 5 una linea SELECT STSAsTe2 + STSS1or es Line+STSGeom9romTe2 +VPOLXGO$++;DL ;L>3 I> G>3 L> =>3 ;IL ;>>3 ;DL ;L>--V-3 STSBuffer+STSGeom9romTe2 +VPOI$T+;;> ;D>-V-3 I>- - - As sline0C O J en re un pun o 5 un poli#ono

STSPro4ec 6 Re orna un pun o pro5ec a"o "es"e un pun o inicial3 "a"a la "is ancia 5 el an#ulo +#ra"os "ecimalesRe orna TRUE si las #eome r6as ienen al menos un pun o en com.n3 pero sus in eriores no se in ersec an' Re orna TRUE si la #eome r6a A es a comple amen e "en ro "e B

STSTouc1es 6

STS)i 1in 6

Pos #is N 9unciones

Procesamien o "e #eome r6as STSBuffer 6


6 6 6

Re orna una #eome r6a que represen a el corre"or "a"a una "is ancia 5 o ros a ri*u os opcionales'
STSBuffer+#eome r5 #;3 "is ancia-O STSBuffer+#eome r5 #;3 "is ancia3 can Sse#mScua"ran eS"elScirculo-O STSBuffer+#eome r5 #;3 "is ancia3 es iloSenS e2 os-O

6 6 6 6

Vqua"Sse#sH fV 7 +"efaul s o E-' Ven"capHroun"Yfla YsquareV 7 +"efaul s Broun"B-' V4oinHroun"Ymi reY*e&elV 7 +"efaul s Broun"B-' Vmi reSlimi H f'fV 7 ra"io limi e "e mi re'

STSCollec 6 Re orna una #eome r6a +(ULTIR- "e una coleccin "e o ras #eome r6as'

SELECT STSCollec +ARRAX+SELECT #eome ria 9RO( man8anas--O SELECT sec or3 STSCollec +f'#eome ria- as sin#le#eom 9RO( +SELECT sec or3+STS!ump+#eome ria--'#eom As #eome ria 9RO( man8anas - As f GROUP BX sec or

Pos #is N 9unciones

Procesamien o "e #eome r6as STSConca&eKull 6 Represen a una #eome r6a +pol6#ono cnca&o- que encierra o"as las #eom? ricas "en ro "el #rupo in"ica"o' Opcionalmen e se in"ica un fac or "e co*er ura 5 la consi"eracin "el procesamien o "e los 1uecos' Represen a el m6nimo pol6#ono con&e2o que encierra a o"as las #eome r6as "el #rupo' Re orna una #eome r6a que represen a a la par e que no in ersec a A con B'
STSGeom9romTe2 +VLI$ESTRI$G+L> L>3 L> ;L>-V---O

STSCon&e2Kull 6

STS!ifference 6
SELECT STSAsTe2 +STS!ifference+STSGeom9romTe2 +VLI$ESTRI$G+L> ;>>3 L> I>>-V-3

STS!ump 6 E2 ra las #eome rias ipo (ULTIR a #eome rias simples


SELECT STS!ump+#eome ria-3s Sas e2 ++STS!ump+#eome ria--'#eom- AS #eom 9RO( +SELECT STSGeom9romE)`T+VGEO(ETRXCOLLECTIO$+LI$ESTRI$G+> >3 ; ;-3LI$ESTRI$G+I I3 F F-3POI$T+> >--V- AS #eome ria- AS *

STS!umpPoin

Re orna un #rupo "e #eome rias con enie"o o"os los pun os "e la #eome ria in"ica"a'

Pos #is N 9unciones

Procesamien o "e #eome r6as STSIn ersec ion 6 Re orna una #eome r6a que represen a la in erseccin en re "os #eome r6as' 6 STS(emUnion 6 Seme4an e a STSUnion3 +usa menos memroia 5 mas iempo "e procesa"or-' Crea un GEO(ETRX COLLECTIO$3 con enien"o posi*les pol6#onos forma"os por LI$ESTRI$G "e un #rupo "e #eome r6as' In en a 1acer &ali"a una #eome r6a con o sin per"i"a "e &?r ices'

STS(aCe,ali"

STSPol5#oni8e 6

SELECT STSAs e2 +STSPol5#oni8e+#eome ria-- As #eome 9RO( +SELECT #eome ria 9RO( a*laSlineas OR!ER BX SS#i" LI(IT GL- As es O NN pol6#onos in"i&i"uales SELECT STSAs)`T++STS!ump+ es I'pol5coll--'#eom- As #eom e2 rep 9RO( +SELECT STSPol5#oni8e+#eome ria- As pol5coll 9RO( +SELECT #eome ria 9RO( a*laSlineas OR!ER BX SS#i" LI(IT GL- As es ;- As es IO

Pos #is N 9unciones

Procesamien o "e #eome r6as

STS$o"e

!efine no"os "e un LineS rin# +con&ir ien"olo en (ul iLineS rin#' SELECT STSAsE)`T+STS$o"e+VLI$ESTRI$G+> >3 ;> ;>3 > ;>3 ;> >-V77#eome r5-- as sali"a Re orna una linea paralela a un LineS rin# Remue&e los pun os repe i"os "e una #eome r6a ipo +(ul i-LineS rin#3 (ul i+Pol5#ons- 5 (ul ipoin Re orna una #eome r6a que con iene los se#men os compar i"os en re "os LineS rin#' Re ornauna collecion "e #eome rias resul an e "e ser cor a"o por o ra' Es a "isponi*le en la &ersin I'> E4em7 SELECT STSSpli +circulo3linea9RO( + SELECT STS(aCeLine+STS(aCePoin +;>3;>-3STS(aCePoin +;<>3;<>-- AS linea3 STS*uffer+STSGeom9romTe2 +VPOI$T+;>> <>-V-3L>- AS circulo- AS fooO SELECT STSAsTe2 ++STS!ump+STSSpli +circulo3linea---'#eom- AS 0C 9RO( + SELECT STS(aCeLine+STS(aCePoin +;>3;>-3STS(aCePoin +;<>3;<>-- AS linea3 STS*uffer+STSGeom9romTe2 +VPOI$T+;>> <>-V-3L>- AS circulo- AS fooO

STSOffse Cur&e

STSRemo&eRepea Poin s

STSS1are"Pa 1s

S&.SPLI&

Pos #is N 9unciones

Procesamien o "e #eome r6as STSSimplif5 6 Re orna una simplificacin "e una #eome r6a usan"o el al#ori mo !ou#lasNPeucCer

+1 p7//en'0iCipe"ia'or#/0iCi/RamerUEIUE>U<F!ou#lasUEIUE>U<FPeucCerSal#ori 1m -'
SELECT STS$poin s+#eome ria- As numSpun os3 STS$Poin s+STSSimplif5+#eome ria3>';-- As np>;SpocaSrecuccion3 STS$Poin s+STSSimplif5+#eome ria3>'L-- As np>LSre#ularSre"uccion3 STS$Poin s+STSSimplif5+#eome ria3;-- As np;Sal aSre"uccion3 STS$Poin s+STSSimplif5+#eome ria3;>-- As np;>Smu5Sal aSre"uccion3 +STSSimplif5+#eome ria3;>>is null- As np;>>SsinS#eome ria 9RO ( +SELECT STSBuffer+VPOI$T+; F-V3 ;>3;I- As #eome ria- As fooO

STSSimplif5Preser&eTopolo#5 6 6 Similar al an erior3 no crea #eome r6as no &ali"as' Re orna una #eome r6a que es las porciones "e las #eome r6as "e A 5 B que no se in ersec an' Re orna una #eome r6a que represen a la unin "e un #rupo "e #eome r6as STSS5m!ifference

STSUnion 6

Pos #is N 9unciones

Referencian"o a la linea STSLineSIn erpola eSPoin 6 Re orna un pun o in erpola"o a lo lar#o "e una linea' El se#un"o ar#umen o es un &alor "ecimal "e > a ; 5 represen a la fraccin "el o al "e la lon#i u" "e la linea en el cual el pun o sera locali8a"o'

SELECT STSAsE)`T+STSLineSIn erpola eSPoin +#eome ria3 >'I>-- 9RO( +SELECT STSGeom9rom)`T+VLI$ESTRI$G+IL L>3 ;>> ;IL3 ;L> ;<>-V- as #eome ria- As es O

STSLineSLoca eSPoin 6
6

Re orna un &alor en re > 5 ; que represen a la posicin mas cercana a la linea "e un pun o'
STSLineSLoca eSPoin +#eome riaS"eSlines rin#3 #eome ria "eSpoin -O

STSLineSSu*s rin# 6
6

Re orna un se#men o "e lines rin# "a"o el inicio 5 final "el mismo3 in"ica"o me"ian e fracciones con &alores en re > 5 ;'
STSLineSSu*s rin#+lines rin#3 inicio3 final-O

Pos #is N 9unciones

Referencian"o a la linea STSA""(easure 6 Re orna una #eome r6a con elemen o ( +measure- como resul a"o "e in erpolar en re el pun o inicial 5 final' 6 Si la #eome r6a no iene "imensin 3 es a#re#a"o' 6 Si la #eome r6a iene "imensin es so*rescri o con el nue&o &alor' 6

Solo se aplica a LI$ESTRI$G o (ul iLineS rin# E4em7 SELECT STSAs e2 +STSA""(easure+ STSGeom9romTe2 +VLI$ESTRI$G+; >3 I >3 G >-V-;3G-- as se#men oO SELECT STSAs e2 +STSA""(easure+ STSGeom9romE)`T+VLI$ESTRI$G+; > >3 I > ;L3 G > ;I-V-;>3G>-- as se#men oO SELECT STSAs e2 +STSA""(easure+ STSGeom9romE)`T+VLI$ESTRI$G+; > > L3 I > ;L I'F3 G > ;I ;;';-V-;>'G3G>';-as se#men oO SELECT STSAs e2 +STSA""(easure+ STSGeom9romTe2 +VLI$ESTRI$G (+; > >3 I > I'F'F3 G > ;;';-V-;>'G3G>';-- as se#men oO

6 STSA""(easure+#eome ria linea3 floa inicio3 floa final-O

POSTGIS

E2is en muc1as nue&as funciones3 e2 ensiones3 "ispara"ores + ri##ers-3 re#las3 res ricciones3 replica3 e c3 e c' que pue"en reali8arse con Po r#eSQL 5 Pos #is' Sin em*ar#o lue#o "e en en"er la forma como es a or#ani8a"a 3 conocer lo *:sico "e SQL 5 las funciones principales como STS!0i 1in3 STSIn ersec s3 e c' Se po"r: encon rar mo"os "e ra*a4o *as an e mas ela*ora"as 5 sofis ica"as que se pue"en reali8ar simplemen e con las el uso "e SQL 3 como complemen o o apo5o a consul as "irec as o consul as reali8a"as +con su correspon"ien e &isuali8acin- "es"e un pro"uc o SIG como Gis(ap' Usan"o GIS(AP3 po"emos f:cilmen e ela*orar 5 "escri*ir el forma o )`T las coor"ena"as "e un o*4e o3 posi*ili an"o un posi*le mo"o "e in#reso "e coor"ena"as como las que se re#is ren con un GPS' Sen encias SQL como SELECT ''STSGeom9romTe2 +VPOI$T V YY [ YY V V YY X V-Ves las mas u ili8a"a porque re orna las #eome r6as se#.n su con eni"o3 sin em*ar#o es posi*le u ili8ar o ras funciones como mo"o "e cons ruccin especifico como7

SELECT STS(aCePoin +2 3 5 3 P8Q3 PmQSELECT STS(aCeLine+STS(aCePoin +235-3STS(aCePoin +235--

POSTGIS J ,ali"ar #eome r6as

OGC "escri*e que se "e*e 1acer cuan"o una #eome r6a "e un elemen o +fea ure- no es &ali"a' Los pun os 5 lineas son #eneralmen e &ali"os +las lineas pue"en ser cerra"as o no3 simples o no3 pero aun una linea comple4a es &ali"a-' Pero los pol6#onos "e*en ser cons rui"os en una forma en par icular

Los pol6#onos son simples lines rin#s cerra"as' El anillo o lines rin# cerra"a3 que "efine un 1ueco3 "e*e es ar "en ro "e los anillos que "efinen el e2 erior' Los anillos no "e*en cru8arse Los anillos no "e*en ocar o ro anillo a menos que sea en un solo pun o'

Por E4emplo G pol6#onos en forma rian#ular que se ocan por un &?r ice no son &ali"os a menos que se "escri*an me"ian e un mul ipoli#ono Es impor an e la &ali"acin "e los elemen os3 por cuan o permi en ener una cali"a" "e "a os3 relaciones espaciales 5 opol#icas3 5 principalmen e por la "efinicin "e su #eome r6a Un pol6#ono cru8a"o +#eome r6a incorrec amen e "efini"a- "ar: como resul a"o "el calculo "el :rea +STSArea- H > +cero-

POSTGIS N ,ali"ar

Una forma "e &erificar la #eome r6a es usar STSIs,ali"+- que nos re orna el &alor TRUE o 9ALSE como resul a"o "e e&aluar su &ali"e8'

SELECT STSIs,ali"+#eome ria- from a*la O

STSIs,ali"Reason nos re orna la "escripcin o mo i&o por el cual no es &ali"o' El numero al final son las coor"ena"as "e lo que no es &ali"o' SI iene muc1os pun os "e errores3 solo la primera se mues ra'

SELECT STSIs,ali"Reason+#eome ria- from a*laO

!es"e la &ersin I'> se pue"e usar STSIs,ali"!e ail que nos mues ra en un solo a ri*u o 7 si es &ali"o3 el mo i&o3 su locali8acin Se pue"e usar &ali"+''- que re orna TRUE o 9ALSE3 reason+'''- que re orna la "escripcin 5 principalmen e loca ion+''que re orna la #eome r6a "e la locali8acin "el error'

SELECT loca ion+STSIs,ali"!e ail+#eome ria-- from a*laO SELECT STS(aCe,ali"+#eome ria- from a*laO

!es"e la &ersin I'> se pue"e corre#ir usan"o la funcin STS(aCe,ali"'

Pos #reSQL N Pos #is

)=emplos

S)*)7, ? from lotes S)*)7, cod@catastral+ man;ana+ lote AB-C lotesD S)*)7, ? from lotes 4Eere man;anaFG0"!!GD S)*)7, cod@catastral+ S,@.s,e5t/geometria2 AB-C lotesD S)*)7, cod@catastral+S,@Geometry,ype/geometria2 from lotesD S)*)7, cod@catastral+S,@.s,e5t/geometria2+S,@dimension/geometria2 from lotesD S)*)7, cod@catastral+S,@.s,e5t/geometria2+S,@srid/geometria2 from lotes S)*)7, cod@catastral+S,@.s,e5t/geometria2+S,@aste5t/envelope/geometria22 from lotes S)*)7, cod@catastral+S,@.s,e5t/geometria2+S,@aste5t/startpoint/geometria22 from lotes S)*)7, cod@catastral+S,@.s,e5t/geometria2+S,@aste5t/startpoint/S,@B-(9D.BH/geometria222 from lotes S)*)7, cod@catastral+S,@.s,e5t/geometria2+S,@aste5t/endpoint/S,@B-(9D.BH/geometria222 from lotes S)*)7, cod@catastral+S,@.s,e5t/geometria2+S,@aste5t/pointn/S,@B-(9D.BH/geometria2+222 from lotes S)*)7, cod@catastral+S,@.s,e5t/geometria2+S,@9%oints/S,@B-(9D.BH/geometria22 from lotes select cod@catastral+S,@.s,e5t/geometria2+S,@perimeter/geometria2 from lotesD select cod@catastral+S,@.s,e5t/geometria2+S,@area/geometria2 from lotesD select cod@catastral+S,@.s,e5t/geometria2+S,@9um0nteriorBings/geometria2 from lotesD select cod@catastral+S,@.s,e5t/geometria2+S,@aste5t/S,@)5teriorBing/geometria22 from lotes 4Eere S,@Geometry,ype/geometria2FGS,@%olygonGD

SELECCI79A% &7(7S L7S L7&ES A FC :E&%7S (E LA A8E9I(A A%EQ6IPA

E4emplo

Ca"a Geome ria "e ca"a lo e lo es "is ancia

Lis a "e lo es

una Geome ria "e o"as Las calles A,' Arequipa

SELECCI79A% &7(7S L7S L7&ES A FC :E&%7S (E LA A8E9I(A A%EQ6IPA

E4emplo

Seleccionar los e4es correspon"ien es a la a&eni"a arequipa "e la a*la e4esS&iales

selec S&.Aste-t0geometria1 from &ias 01ere to"onimia li4e LMA%EQ6IPAML

A#rupar en una sola #eome ria +para poser comparar- o"os los e4es

; selec as e2 +STSUnion+#eome ria-- from %select -eometria 0rom @ias =?ere toponimia like -AA"!>)IPAA-& as 2eometria.

SELECCI79A% &7(7S L7S L7&ES A FC :E&%7S (E LA A8E9I(A A%EQ6IPA

E4emplo

Comparar las "is ancias "e ca"a lo e a la #eome ria an erior


; selec R from lo es 01ere distance%2eometria,S#_2eom0romtext%%select astext%S#_)nion%2eometria&& 0rom %select 2eometria 0rom @ias =?ere toponimia like -AA"!>)IPAA-& as 2eometria&,B1&& CD86

Seleccionar por area


; selec co"Sca as ral3 S&.Area0geometria1 from lo es 01ere STS"is ance+#eome ria3STS#eomfrom e2 ++selec STSas e2 +STSUnion+#eome ria-- from +selec #eome ria from &ias 01ere oponimia liCe VUAREQUIPAUV- as #eome ria-3N;-]HL> and S&.area0geometria1NBCCC

E%E(PLO

Seleccionar lo es cerca "e un parque usan"o s S"0i 1in

SELECT *'#eome ria 9RO( parques n3 lo es * )KERE STS!)i 1in+*'#eome ria3 n'#eome ria3;>>-

-tra forma de seleccionar *otes cercanos a la &6a in"ica"a +con lo es


"uplica"as-

SELECT *'#eome ria3 co"Sca as ral3 area+*'#eome ria- 9RO( &ias n3 lo es * )KERE oponimia liCe VUAREQUIPAUV an" STS!)i 1in+*'#eome ria3 n'#eome ria3L>- an" s Sarea+*'#eome ria-WI>>>

-tra forma de seleccionar *otes cercano a a la vIa indicada /Sin lotes duplicados2

SELECT !ISTI$CT co"Sca as ral3 *'#eome ria3 area+*'#eome ria- 9RO( &ias n3 lo es * )KERE oponimia liCe VUAREQUIPAUV an" STS!)i 1in+*'#eome ria3 n'#eome ria3L>- an" STSArea+*'#eome ria-WI>>>

)liminar lo es con #eome rias "uplica"as

selec "is inc #eome ria from lo es NN o* enien"o solo la columna #eome ria selec "is inc on +#eome ria- R from lo es NN con o"o sus "a os

E4emplo

;> Lo es "e ma5or area en el "is ri o

SELECT co"Sca as ral3 s Sarea+#eome ria-/;>>> AS areaSm I 9RO( lo es OR!ER BX areaSm I !ESC LI(IT ;>

El perime ro "e los ;> lo es ma5ores

SELECT co"Sca as ral3 s Sarea+#eome ria-/;>>> AS areaSm I3 s Sperime er+#eome ria- AS perime ro 9RO( lo es OR!ER BX areaSm I !ESC LI(IT ;>

El perime ro "el lo e >=<<>>;

SELECT co"Sca as ral3 s Sarea+#eome ria-/;>>> AS areaSm I3 s Sperime er+#eome ria- AS perime ro 9RO( lo es )KERE co"Sca as ralHV>=<<>>;V

E4emplo

El area o al "e los lo es "el "is ri o en 1ec areas

SELECT sum+s Sarea+#eome ria--/;>>>> as 1ec area 9RO( lo es

El area "e o"os los lo es a ;>> me ros "e una coor"ena"a3 a#rupa"os por man8ana

SELECT man8ana3sum+s Sarea+#eome ria--/;>>>> as 1ec area 9RO( lo es 01ere STS!)ITKI$+#eome ria3 STSGEO(9RO(TE[T+VPOI$T +IDEELE';<;;D=>ELDF E=L<;FF'<;>E=F;>L-V-3;>>GROUP BX (A$cA$A

E4emplo "e pro5ecciones

Se u ili8an pro5ecciones #eo#raficas "escri as en )`T +se#.n las especificaciones "e OGC- 5 el forma o por la li*rer6a PRO%'G que u ili8a a"emas los co"i#os EPSG para una serie "e pro5ecciones 5a "escri as'

Consul a "el SRI! "e una a*la

SELECT SRI!+#eome ria- 9RO( lo es SELECT pro4G e2 9RO( spa ialSrefSs5s )KERE sri"HGFI= SELECT R 9RO( spa ialSrefSs5s )KERE sri"HFID;E

Consul a "e la "escripcion "el SRI! GFI=

Consul a "e la "escripcion "el SRI! FID;E

Pos #reSQL N Pos #is

7onectores para acceso desde las aplicaciones e5ternas


; ODBC

Creacin de un ODBC
; ; ; ; ; ;

@DBC

3om0re I# de localizacion o Dlocal1ostE #uerto$ por omisin FG.Base de datos Hsuario Cla"e

; ConectorC

; ; ; ; ;

I# de localizacion o Dlocal1ostE #uerto$ por omisin FG.Base de datos Hsuario Cla"e

org.postgres4l.Dri"er 2d0cCpostgres4lC local1ostCFG.- catastro

Conecciones con %!BC

. un -DB7

; sun.2d0c.od0c.@d0cOd0cDri"er ; 2d0cCod0cCD(3

. %-S,GB)S'*

; org.postgres4l.Dri"er ; 2d0cCpostgres4lC local1ostCFG.- 0asedatos

. .SJ00

; com.i0m.asGNN.access.&(GNN@DBCDri"er ; 2d0cCasGNNC+P-.+UT.-F.U

Pos #reSQL N Pos #is

7one5i8n mediante -DB7 o KDB7 desde


; E'cell ; &ccess ; Reporteadores

Crystal Report #enta1o IReport Di"ersos programas &plicaciones desarrolladas en @a"a$ CAA$ .3et$ #?#$ etc.

; Otros sistemas

Pos #reSQL N Pos #is

E'em"lo de codigo en 'ava usando directamente la libreria de "ostgis---5'ar2


impor 4a&a'sql'RO impor 4a&a'u il'RO impor 4a&a'lan#'RO im"ort org5"ostgis5OP pu*lic class %a&aGIS Z pu*lic s a ic &oi" main+S rin#PQ ar#s- Z 4a&a'sql'Connec ion connO r5 Z /RCar#a el "ri&er %!BC 5 es a*lece la cone2ion Class5>or9ame0Qorg5"ostgresRl5(riverQ1P S rin# url H Q'dbc2"ostgresRl2//local$ost2FJDB/databaseQP conn H !ri&er(ana#er'#e Connec ion+url3 Bpos #resB3 BB-O /R A#re#a el ipo #eome ria' Primero se "e*e "e 1acerla cone2in an es "e 1acerlo R/ 00org5"ostgresRl5P3Connection1conn15add(ata&#"e0Qge ometr#Q?Class5>or9ame0Qorg5"ostgis5P3geometr#Q11P 00org5"ostgresRl5P3Connection1conn15add(ata&#"e0Qbo -DdQ?Class5>or9ame0Qorg5"ostgis5P3bo-DdQ11P R/

/R Crea un s a emen 5 e4ecu a la consul a S a emen s H conn'crea eS a emen +-O

R/

Resul Se r H s'e2ecu eQuer5+Bselec #eome ria3 SS#i" from #eom a*laB-O 01ile+ r'ne2 +- - Z /R Recupera la #eome ria como un o*4e o R/ P3geometr# geom S 0P3geometr#1r5get7b'ect0A1P in i" H r'#e In +I-O S5s em'ou 'prin ln+BRo0 B M i" M B7B-O /R imprime la #eome ria R/ S5s em'ou 'prin ln+geom5toString01-O \ s'close+-O conn'close+-O \ ca c1+ E2cep ion e - Z e'prin S acCTrace+-O \ \ \

Pos #reSQL N Pos #is

PGGEO(ETRX es un o*4e o que con iene una "efinicin "e la opo lo#ia3 "epen"ien"o "el ipo +POI$T3 LI$ESTRI$G3 POLXGO$3 e c'-

P3geometr# geom S 0P3geometr#1r5get7b'ect0A1P if+ geom5get&#"e01 SS 3eometr#5P7L@379 - Z Pol#gon "l S 0Pol#gon1geom5get3eometr#01P for+ in r H >O r ] "l5num%ings01O rMM- Z Linear%ing rng S "l5get%ing0r1P S5s em'ou 'prin ln+BRin#7 B M r-O for+ in p H >O p ] rng5numPoints01O pMM - Z Point "t S rng5getPoint0"1P S5s em'ou 'prin ln+BPoin 7 B M p-O S5s em'ou 'prin ln+"t5toString01-O \ \ \

POSTGIS N Recomen"aciones

U ili8ar el in"ice espacial +GIST- para consul a eficien e "e #ran"es &ol.menes "e "a os +#eneralmen e usa"os con STS!)i 1in3 STSCon ains3 STSIn ersec s3STS)i 1in 5 los opera"ores lo#icos' Re&isar con el A"minis ra"or3 la op imi8acin "e la memoria3 Por e4emplo para mane4ar in"ices "e "a os "e ;>>( se recomien"a ener como m6nimo el para me ro )OR`S(E( H FGB' Los procesos "e man enimien o como ,ACUU( requiere un incremen o "e (AI$TE$E$CES)OR`S(E('

SET 0orCS(E( TO IGBO SET main enenceS0orCSmem TO ;GBO SET clien SminSmessa#e TO !EBIGO

SI la *ase "e "a os es ma5or que la memoria principal3 se "e*e consi"erar que se "e*e 1acer crecer mas el ser&i"or

Procesos "e en ra"a / sali"a son el @#ran cuello "e *o ellaA ' Consi"erar un arre#lo RAI! ;> Consi"erar un *uen arc1i&o "el sis ema Buena memoria A"ecua"o CPU+s-

POSTGIS I'>

Pos #is I'>

Pos #is I'> rae un #rupo "e cam*ios fuer es a las funcionali"a"es so*re pos #is ;'2 EL pro*lema es que no es compa i*le con la &ersin ;'L

Ka5 que mi#rar los "a os Una opcin es usar Gismap para #ra*ar a I'>

La principal ra8n es que Pos #is I'> incorpora una nue&a seriali8acion para el almacenamien o "e las #eome r6as en "isco'

(e4ora la seriali8acion "e la &ersin ;'2 para el sopor e "e nue&os ipos "e #eome r6as +cur&epol5#on3 mul icur&e3 mul isurface3 rian#le3 in33 pol51e"ral surface3 e c'-

Sopor e para #eome r6as F" 5 G" +calculo en I" 5 F" "e7 las "is ancia en re #eome r6as3 pun os mas cercanos3 per6me ros3 in erseccin3 con ener3 e c'-3 1a*ili a"o para consul as SQL usan"o compara"ores en F!

POSTGIS I'>

Sopor e "e nue&os ipos F!7


TRIA$GLE TI$ POLXKE!RALSUR9ACE' Crear superficies en F" +*loques3 formas #eom? ricas comple4as3 e c'STSAs[F!+#eome riaSTSAsG(L+F3''''STSAs e2 +#eome riaSTSAsBinar5+#eome ria9ree)rl7 1 p7//free0rl'sourcefor#e'ne Ins an Reali 57 1 p7//000'ins an reali 5'or#/e2amples [F!om7 1 p7//000'2F"om'or# ,i&a 5 S u"io +fue compra"o por microsof -' O ros7 1 p7//000'0e*F"'or#/2F"/&rml/ ools/&ie0ersSan"S*ro0sers

Sopor e "e forma os F!


Al#unos &isores F! usan"o forma o [F!


POSTGIS I'>

La "efinicin "e la columna GEO(ETRX "e la &ersion ;'27

calleSi" in e#er3 calleSnom*re c1arac er &ar5in#+;IE-3 #eome ria #eome r53 CO$STRAI$T enforceS"imsS#eome ria CKEC` +s Sn"ims+#eome ria- H I-3 CO$STRAI$T enforceS#eo 5peS#eome ria CKEC` +#eome r5 5pe+#eome ria- H VLI$ESTRI$GV77 e2 OR #eome ria IS $ULL-3 CO$STRAI$T enforceSsri"S#eome ria CKEC` +s Ssri"+#eome ria- H +FID;E--Se requiere que en su creacin se realice sin la columna GEO(ETRX3 5 pos eriormen e usar A""Geome r5Column +^-

A1ora se &e 7

calleSi" in e#er3 calleSnom*re c1arac er &ar5in#+;IE-3 #eome ria #eome r5+Geome r53FID;E-

Se u ili8a el par:me ro @ 5mo"A "e Pos #re <'2 en la "efinicin "el la es ruc ura "e la #eome r6a Es o permi e "efinir la columna #eome r6a con la sen encia sql CREATE TABLE opcionalmen e a A!!GEO(ETRXCOLU($S+'''-3 as6 mismo se pue"e eliminar la a*la "irec amen e o usan"o la funcin !ROPGEO(ETRXTABLE'

POSTGIS I'>

Crear una a*la se reali8a con7

CREATE TABLE calles + calleSi" SERIAL PRI(ART `EX3 calleSnom*re c1arac er &ar5in#+;IE-3 -eometria -eometry(Geometry&#"( %)

Es o permi e que "efinir una &is a 5 que sea reconoci"a au om: icamen e en el ca alo#o GEO(ETRXSCOLU($S' Se pue"e 1acer cam*uios "irec os en la #eome r6a3 en el sri" e c'

ALTER TABLE a*la ALTER COLU($ #eome ria SET !ATA TXPE #eome r5+GEO(ETRX3GFI=USI$G STS9orceSI!+STSTRansform+#eome ria3GFI=--

Las &is as requieren3 para su uso3 que se especifique +usan"o STSTRA$S9OR(- la #eome ria con un sri" si es necesario3 en caso con rario se lee como N; o >' Incorpora Topolo#ia J SQL/((

POSTGIS I'>

!iferencias en re mo"elo oplo#ico 5 mo"elo #eome rico

Las #eome r6as son represen aciones "e un espacio "on"e los o*4e os que compar en *or"es3 no"os o caras son propie arios "e su propia coor"ena"as' Topolo#ia es una represen acin normali8a"a no re"un"an e "e *or"es3 no"os o caras compar i"os' E"icin o ac uali8acin consis en e3 al e"i ar un no"o o"as las #eome r6as que lo compar en cam*ian' Re"uce almacenamien o To"o lo que se refiera re"es3 como calles3 re"es "e a#ua 5 alcan arilla"o3 re"es el?c ricas3 e c' E"#e N las lineas que conec an a los no"os' 9ace J "efine caras o pol6#onos $o"e J los pun os "e unin "e las lineas3 in"ica conec i&i"a"' Rela ion J "efine las relaciones en re un opo#eome r5 5 o ros elemen os "e la opolo#ia'

,en a4as

Usos recomen"a"o

Elemen os7

POSTGIS I'>

Se a"iciona un nue&o ipo "e "a o7 TopoGeome r5' Se a"iciona un sc1ema &7P7L73@ 5 "os a*las7 to"olog# 5 la#er Se a"icionaron L> funciones en POSTGIS para el mane4o "e la opolo#ia'

Crea eTopolo#5 !ropTopolo#5 ,ali"a eTopolo#5 Topolo#5Summar5 A""TopoGeome r5Column E c' AsG(L Geome r5 ToTopoGeom "e*era con&er ir las #eome r6as a opo#eome ria' Usa las funciones SQL/((

Como sali"a se pue"e o* ener


Procesamien o

POSTGIS I'>

E4emplo

SELECT opolo#5'Crea eTopolo#5+V&iasS opoV3FID;Eas opoi"O CREATE TABLE &ias'calles+ SS#i" serial primar5 Ce53 nom*re &arc1ar+;<<-3 cua"ra in e#er-O SELECT opolo#5'A""TopoGeome r5Column+V&iasS opoV3Vcall esV3V opoV3VLI$EV-O Se usa oTopoGeom para pasar "e una a*le con #eome ria a la a*la crea"a con opo#eome ria'

POSTGIS I'> RASTER

Una nue&a e2 ensin "e ipo "e columna es RASTER3 al i#ual que GEO(ETRX3 es :n implemen a"os en forma na i&a a la *ase "e "a os' Es o supone la "isponi*ili"a" "e funciones para la recuperacin "e "a os 5 me a"a os3 "arle si#nifica"o a los "a os 5 po"er reali8ar an:lisis en re ellos' Es a "ise/a"o para in e#rarse con GEO(ETRX 5 po"er reali8ar funciones en als que in er&en#an ras er 5 &ec or simul :neamen e En Pos #is Ras er los "a os se car#an "irec amen e en las a*las 5 ca"a una "e ellas represen a una co*er ura +co&era#e- comple a Una fila "e la a*la correspon"e a una ima#en3 par e "e la co*er ura o *loques + ile-' Se pue"en almacenar arc1i&os mul i*an"a 5 mane4ar los &alores $O!ATA +i#noran"o es os &alores para lo que son las operaciones a reali8ar-' Las im:#enes pue"en "i&i"irse en *loques 5 ca"a *loque se almacena como una fila3 el ama/o "el *loque es in"ica"o al momen o "e la car#a' Es os e recomien"a para im:#enes mu5 #ran"es' Los me a"a os se almacenan 4un o con los "a os "e la a*la3 as6 como su #eoreferencia' Si la ima#en iene un espacio pirami"al asocia"o +o&er&ie0s-3 *loques o eselas + iles- solapa"as o co*er uras no rec an#ulares3 Pos #is Ras er am*i?n almacenara esa informacin

POSTGIS I'> RASTER

Se pue"e almacenar "e "iferen es formas concep uales7

Almacenamiento de la imagen sin bloRues # sin relacionar

Pue"en solapar 5 ener #eoreferencia o no' Pue"en no ser rec an#ulares 5 los *loques pue"en ser "e "is in os ama/os' Pue"en no ser rec an#ulares 5 los *loque son "el mismo ama/o aunque pue"en fal ar al#unos3 no se raslapan' Co*er ura rec an#ular "e *loques "el i#ual ama/o sin raslapes pareci"o al ipo an erior' Es o no represen a una co*er ura comple a' O ras im:#enes pue"en formar el res o "e la co*er ura' $o se recomien"a para el an:lisis porque 1a5 que replicar las consul as en "is in as a*las' Ca"a #eome r6a se con&ier e en un peque/o ras er con al e2 ensin "e la #eome r6a ori#inal' $o iene por que ser comple a 5 los *loques pue"en ser "e "is in os ama/os 5 raslaparse' !epen"e "e las carac er6s icas "e la capa ori#inal'

Cobertura de bloRues irregulares

Cobertura de bloRues regulares

Cobertura rectangular de bloRues regulares

Imagen dividida en bloRues

Cobertura raster resultado de la rasteri;acion de una cobertura vectorial

POSTGIS I'> RASTER

Confi#uraciones posi*les "e almacenamien o "e im:#enes

POSTGIS I'> RASTER

$o 1a5 limi e en su ama/o' ;GB por Tile3 FI TB por co*er ura + a*la-3 Se usa una compresion +por Pos #resql-' E2is en mas "e D> funciones "isponi*les 5 mas en implemen acin'

Car#a "e "a os3 in"e2a"o In erseccin en re ras er o con #eome r6a3 E2 raccin "e &alores "e un especifico pi2el Opciones "e sali"a a forma os #eome r6a3 P$G3 %PG3 TI993 o con apo5o "e G!AL 9unciones "e cons ruccin3 para crear el ras er me"ian e operaciones ma em: icas en re o ras o "e #eome r6as Es a"6s icos3 Procesamien o3 "eformacin3 a4us es3 &alores3 e c'

POSTGIS I'>

E4emplo

Consul a "e forma os "isponi*les

ras erIp#sql NG SELECT s SG!AL!ri&ers+-O ras erIp#sql Ns FID;E N =G2=G NI NC arc1i&o' if a*lasali"a W proceso'sql ras erIp#sql Ns FID;E N =G2=G NI NC e7gcursosgim#gfo os>;' if or ofo o Y psql NU pos #res N" >> es Np LGFF selec oi"3lo0ri e+loSopen+oi"3;F;>DI-3pn#- as num*5 es from +&alues+loScrea e+>-3STSasP$G++selec ras 9RO( or ofo o )KERE ri"H;-- -- as &+oi"3pn#-O selec loSe2por +;LEFID3Ve7g es 'pn#V-O // se usa el oi" "e la consul a an erior selec loSunlinC+;LEFID-O // limpiar la memoria

Con&ersin en *a c1

Con&ersin "irec a

Gra*ar a un arc1i&o

POSTGIS I'>

El ipo Ras er 5 el ipo Geome r5 son o almen e in e#ra*les +a "iferencia "e los ipos ras er en o ras *ases "e "a os espaciales-'

SELECT or ofo o'ri"3 +STSSummar5S a s+S&.Cli"0rast?geoemtria1--'R AS es a"is ica 9RO( or ofo o3 8onas )KERE st.Intersects0geometria?S&.conve-Hull0rast11 A$! 8onas'co"HVIFVO

El o*4e o Ras er son fra#men o "e informacion que pue"en ser manipula"os como o*4e os &ec oriales' EL ras er es un mo"elo "e una coleccin "e fra#men os "e informacin que lo conponen' EL o*4e o RASTER pue"e ser anali8a"o3 com*inan"o con los o*4e os &ec oriales' El resul a"o "epen"e "el ras er +al uras3 pen"ien es3 ipo "e suelo3 e c'-

POSTGIS I'>

Es posi*le com*inar "os a*las me"ian e sen encias SQL3 usar funciones espaciales referi"as asl o*4e o Ras er 5/o al o*4e o &ec orial

STSAsP$G+ras erSTSAsTI99+ras erSTSAsG!ALRASTER+ras erSTSPOLXGO$+ras er3numeroS*an"aSTS(aCeEmp 5Ras er STSAsRas er+#eome riaSTSBan"+ras erSTSASRas er STSBan" STSReclass+ras erSTSResample+ras erSTSTransform+ras erSTS(apAl#e*ra+ras er-

POSTGIS I'>

E4emplo "e operaciones

O* ener la "is ri*ucion "el pi2el "e la *an"a ; "e o"as las par es + iles- "e una a*la ras er
Consul a "e las primeras F *an"as Consul ar los &alores "e los pi2eles "e solo la *an"a I Cam*iar el or"en "e las *an"as +"e ;3I3F a F3;3ICon&er ir un ras er clasifica"o a poli#ono o al o por ran#o "e &alores "el pi2el Reclasificacion "e pi2eles Re"uce el ama/o al ILU usan"o el me o"o Cu*eSpline Re"uce el ama/o al ILU usan"o el me o"o $eares $ei#1*or Prome"io "e &alor "e los pi2eles en un lo e especifico3 por e4emplo "e una ima#en lan"sa +area &er"e3 a#ua3 rans#os "e &alores3 e c'Consul a "e !ri&ers G!AL "isponi*les SELECT s SG!AL!ri&ers+-O Con&ier e a o ro forma o con G!AL

Selec STSAsG!ALRas er+ras 3VGTiffV- 9RO( or ofo o

POSTGIS I'>

E4emplo

O* ener la al ura "e un #rupo "e pun os oman"o como referencia un !E( O* ener las al uras "e una re" "e caminos3 para ca"a se#men o oman"o como referencia un !E( O* ener los "a os "e o"as las al uras o prome"io "e al uras para ca"a poli#ono "e una a*la 5 usan"o como referencia un !E(

POSTGIS I'> CO$TROL !E CALI!A!

Se pue"en #enerar en&ol&en es +Kulls- que se a4us en o ras #eome r6as Se pue"e 1acer a4us es +snap- a los elemen os mas cercanos Se pue"en "i&i"ir pol6#onos usan"o una linea como referencia

POSTGIS I'>

Se pue"en #enerar paralelas a la i8quier"a o "erec1a en forma lineal o cur&a Se pue"en re&isar la &ali"e8 "e las #eome rias Se pue"en mos rar en forma o la lon# forma ea"o

POSTGIS I'>

O ras funciones

STSRemo&eRepea e"Poin s+#eome ria

Elimina los pun os repe i"os "e una #eome ria Re orna una #eome ria con ramos compar i"os +e&alua inclu5en"o la "ireccionKomo#eni8a o simplifica una #eome ria +un #eome r5 collec ion con un pun o3 re orna un pun o3 un #eome r5 collec ion con "os pun os3 re orna un mul ipun o' Re orna la #eome ria en forma o #eo%SO$ +forma o facil "e leer en len#ua4es como C3 CMM3 Cf3 %a&a3 %a&aScrip 3 Perl3 P5 1on3 e c'-

STSS1are"Pa 1+#eome ria

STSCollec ionKomo#eni8e+#eome ria

STSGeom9romGeo%SO$+#eome ria

POSTGIS I'>

Sopor a un In"e2a"o `$$3 Se aplica principalmen e para a*las con #ran"es &ol.menes "e "a os con irre#ular "ensi"a" "e pun os3 permi e me4orar la eficiencia en su acceso'

`$$ H ` neares $ei#1*our Basa"o en un in"e2a"o en ar*ol Res rin#i"o a in"e2 Ce5s +e4m3 *oun"in# *o2Pun os7 respues a e2ac a O ros7 resul a"o *asa"o en la ca4a em&ol&en e To"os los cen ros po*la"os "el Peru +pun os

E4emplo7

Seleccionar los ;> po*la"os mas cercanos a o ro con co"i#o LDI=FI or"ena"os por "is ancia SELECT SS#i"3nom*re3"is ri o3 pro&incia3 "epar amen o3 ipo 9RO( po*la"os OR!ER BX #eome ria h +SELECT #eome ria 9RO( po*la"os )KERE SS#i"HLDI=FI- LI(IT ;> ] N W calcula or"enan"o por la "is ancia a los cen ros "e las ca4as ] f W calcula or"enan"o por la "is ancia a los *or"es "e la ca4a

El opera"os7

POSTGIS I'>
En #eneral las funcionali"a"es nue&as en la &ersin I'> compren"en7

9uncionali"a"es "e limpie8a "e "a os

SELECT STSCollec ionE2 rac +STS(aCe&ali"+#eome ria-3F- from a*laO A#re#a un mo"elo *asa"o en no"os3 caras 5 e2 remos' Usa"o principalmen e para re"es 5 #rafos' Sopor e "e ras er en la *ase "e "a os para su almacenamien o3 procesamien o +*an"as3 fil ros3 pen"ien es3 e c'- 5 sali"a + iff3 4p#3 pn#3 e c'In"ices I! 5 F!

Sopor e "e opolo#ia e2 en"i"a +ISO SQLN((

POSTGIS RASTER

In"ices mul i"imensionales

O*4e os primi i&os en F!'

GR&CI&(

You might also like