Curso Postgis
Curso 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
)odelo Espacial
Basado En las Especific. Del OGC
Esquema L#ico
Ser&icios "e (apa en )e*
In erne / In rane
APLICACIO$ES %a&a/'$ET/'''
PRO!UCTO GIS
(&il +S,G-
&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"
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
Las primeras &ersiones "e las *ases "e "a os espaciales son rela i&amen e nue&as
;<<= 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
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
7istas Disparadores 8*riggers9 %unciones Operadores *ipos de datos #rocedimientos almacenados 8(tore #rocedure9
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'
DBEn el mun"o "el sof 0are li*re3 E2is en *ases "e "a os (u5 po en es
)y(:! #ostgre(:!
!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
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
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
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'
$.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
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
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
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
Definicin del (uperHsuario y la Cla"e Configuracin y optimizacin de los arc1i"os pgI10a.conf y postgres4l.conf
Pos #reSQL
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
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
(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
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
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
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
^ )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 "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><
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$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
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
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'
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
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
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'
%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 .
%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 -
Pos #reSQL
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 '''
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
(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'
(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
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 `$$-'
(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'-
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(
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
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'
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
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-'
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
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
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
Pro4G
Li*[(LI
Li*l0#eom
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
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
7ectorial
Raster
Datos espaciales
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
Geometria Geometry
#oint
Cur"e
(urface
Geometry Collection
!ine(tring
#olygon
)ultisurface
)ulticur"e
)ultipoint
)ultipolygon
)ultilinestring
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
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
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
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
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=-'
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
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-'
!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-'
,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"-
Tipos
,is as
Sc1eme
Topolo#5
Constraint
($),&R-.)& enforce_dims_ eometria (6#(2 (st_ndims( eometria) 7 2); ($),&R-.)& enforce_srid_ eometria (6#(2 (st_srid( eometria) 7 (32458));
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-&.
!a consulta de datos se puede realizar usando funciones geograficas de comparacion y an5lisis entre los o02etos 8registros9 y su geometria.
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
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#
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
E4emplos
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
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
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
-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?
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'
(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
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+--
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
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'
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
A"minis ra i&as
A""Geome r5Column
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
!ropGeome r5Column
!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
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'
A"minis ra i&as
Pos GISS9ullS,ersion
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
A"minis ra i&as
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-
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-'
Ac uali8a el SRI! "e o"os los elemen os en una columna #eome r6a3 ac uali8an"o sus con rains 5 referencias'
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
STSGeo#9rom)`B
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
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$
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
STSLines rin#9rom)`B
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"
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
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
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
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
STS)`TToSQL
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'
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
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
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'
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(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
E"i ores
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
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
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$
STS9ORCESRKR 6 9uer8a a la orien acin "e los &?r ices a se#uir la re#la "e la @mano "erec1aA
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 ;>> ;>>--
E"i ores
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
STSScale
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
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
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'
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
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
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-'
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
; AFGB
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'
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'
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
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'
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
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
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
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
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!umpPoin
Re orna un #rupo "e #eome rias con enie"o o"os los pun os "e la #eome ria in"ica"a'
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
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&
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
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
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
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
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'
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'
!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
)=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
E4emplo
Lis a "e lo es
E4emplo
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.
E4emplo
E%E(PLO
SELECT *'#eome ria 9RO( parques n3 lo es * )KERE STS!)i 1in+*'#eome ria3 n'#eome ria3;>>-
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>>>
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
SELECT co"Sca as ral3 s Sarea+#eome ria-/;>>> AS areaSm I 9RO( lo es OR!ER BX areaSm I !ESC LI(IT ;>
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 ;>
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 "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
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'
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
Creacin de un ODBC
; ; ; ; ; ;
@DBC
3om0re I# de localizacion o Dlocal1ostE #uerto$ por omisin FG.Base de datos Hsuario Cla"e
; ConectorC
; ; ; ; ;
. un -DB7
; sun.2d0c.od0c.@d0cOd0cDri"er ; 2d0cCod0cCD(3
. %-S,GB)S'*
. .SJ00
; com.i0m.asGNN.access.&(GNN@DBCDri"er ; 2d0cCasGNNC+P-.+UT.-F.U
Crystal Report #enta1o IReport Di"ersos programas &plicaciones desarrolladas en @a"a$ CAA$ .3et$ #?#$ etc.
; Otros sistemas
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 \ \ \
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'> 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'>
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
POSTGIS I'>
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'>
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'>
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/((
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'
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
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'
$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
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'>
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
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(
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
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'-
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
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!
POSTGIS RASTER
GR&CI&(