Introducción a OpenLayers
Xeoinquedos organiza:
Curso de introducción a OpenLayers OpenLayers
20 de Mayo de 2011
Lugar: ETS de Camiños, Canais e Portos – Universidade de A Coruña, Camus de E!viña
Introducción a OpenLayers
Qué vamos a ver ➔
Introducción a la librería ➔
Añadiendo capas ➔
➔
Controles
Interacción con el servidor (a través de estándares OGC)
Introducción a OpenLayers
Qué vamos a ver ➔
Introducción a la librería ➔
Añadiendo capas ➔
➔
Controles
Interacción con el servidor (a través de estándares OGC)
Introducción a OpenLayers
Qué vamos a ver ➔
Introducción a la librería ➔
Añadiendo capas ➔
➔
Controles
Interacción con el servidor (a través de estándares OGC)
Introducción a la librería
•
¿Qué es? •
ra!e"or# GI$ desarrollado en %ava$cript para la creación de !apas "eb diná!icos
Introducción a la librería
•
¿Qué puedo &acer con él? •
Crear !apas interac'vos
Introducción a la librería
•
¿Qué puedo &acer con él? •
isualiar in*or!ación espacial + ,eo,rá-ca
Introducción a la librería
•
¿Qué puedo &acer con él? •
Incluir . superponer dis'ntos 'pos de capas
Introducción a la librería
•
¿Qué puedo &acer con él? •
/ditar in*or!ación espacial + ,eo,rá-ca
Introducción a la librería
•
¿Qué puedo &acer con él? •
Interactuar con servicios GI$ e0ternos
Introducción a la librería
•
¿Có!o lo &ace? •
Ar1uitectura !odular –
Capas
2
34$5 ector5 6475 Goo,le5 irtual/art&5 I!a,es888
–
Geo!etrías
2
9oint5 9ol.,on5 7inear:in,888
–
Controles
2
;oo!5 9an5 4easure5 4odi*.888
–
or!atos
2
34$5 3$5 O$45 6475 Geo%$O<5 Geo:$$888
–
9rotocolos
2
=>>95 $O$5 3$5 $Q7888
Introducción a la librería
•
4ás888 •
Creado en @@ por 4etacarta
•
7icencia es'lo B$ ( htp://svn.openlayers.org/runk/openlayers/license.x )
•
Actual!ente en la versión 8D@ (en breve la 8DD)
•
>rabaEando .a en la versión F8@
Introducción a la librería
•
¿ónde encuentro docu!entación . eEe!plos? •
htp://docs.openlayers.org/ •
•
=o!e de la docu!entación de Open7a.ers
htp://openlayers.org/dev/examples/ •
4ul'tud de eEe!plos de casi todo lo 1ue puede &acer
Introducción a la librería
•
¿ónde encuentro docu!entación . eEe!plos? •
htp://rac.osgeo.org/openlayers/wiki •
•
3i#i con eEe!plos5 docu!entación5 A9I docs888
7istas de correo (!u. ac'vas) •
htp://liss.osgeo.org/mailman/lisnfo/openlayersusers
•
htp://liss.osgeo.org/mailman/lisnfo/openlayersdev
Introducción a la librería ¡Hola Mundo! •
•
a!os a &acer esto
Hn !apa nave,able con una capa si!ple 34$5 obtenida de un servidor e0terno ( osgeo.org)
Introducción a la librería ¡Hola Mundo! •
¿Qué es 34$?
•
34$ 3eb 4ap $ervice
•
9rotocolo estándar OGC 1ue per!ite servir . consu!ir !apas
•
I!ple!entado por casi toda aplicación GI$
•
9or supuesto5 ta!bién por Open7a.ers
Introducción a la librería ¡Hola Mundo! •
9ara &acerlo necesito •
/ditor de te0to
•
7ibrería Open7a.ers J F opciones •
•
escar,ar la versión estable –
htp://openlayers.org/download/!pen"ayers#.$%.ar.gz
–
htp://openlayers.org/download/!pen"ayers#.$%.zip
escar,ar la versión runk del repositorio $ubversion –
•
svn checkou htp://svn.openlayers.org/runk/openlayers/
H'liar la hosed version5 pero car,as contra el servidor de openla.ers8or,888
Introducción a la librería ¡Hola Mundo! •
H'liare!os la versión runk •
•
•
/s la Kl'!a5 con todas las !eEoras añadidas tras la publicación de la versión 8D@ estable $oluciona un bu, aparecido con ire*o0 L al u'liar Open7a.ers en !odo de&ug (se co!enta !ás adelante) A día de &o.5 es prác'ca!ente i,ual a la *utura 8DD
Introducción a la librería ¡Hola Mundo! •
9ara verlo necesito •
Cual1uier nave,ador "eb
Introducción a la librería ¡Hola Mundo! 9asos D8/n la carpeta pKblicaM crear carpeta N curso-openlayers/” 8esco!pri!ir la librería . •
copiar la carpeta “openlayers/” dentro de la carpeta creada
F8Crear el arc&ivo Ncursoopenla.ers+ curso-"tmlP L8A picar códi,oR ' : (&unu: /var/www )*+,+*+,X*+,: -01023!+/hdocs
Introducción a la librería ¡Hola Mundo! •
9asos •
Crear estructura del =>47 •
/stablecer di!ensiones del !apa
•
/nlaar la librería
•
Crear el !apa •
Añadirle capas
•
Añadir controles
•
/stablecer centro . nivel de oo!
Introducción a la librería ¡Hola Mundo! 9ar'!os de una pá,ina base
Introducción a la librería ¡Hola Mundo! Inclui!os la librería . crea!os el !apa . las capas
"htt%&//2ma%0.tl.#(#.#r(/'m/2ma%0"> =lar& ?:a4?@ 5 ma%.a++Lar;layer 5 ma%.tCtr;' O%Lar.L#Lat;-7> A.7> 75 @ 4r%t,
Introducción a la librería ¡Hola Mundo! ¿Qué esta!os &aciendo? <4r%t t%"t*t/8a2a4r%t" r4"#%lar/l:/O%Lar.8",4r%t, •
/nlaa!os la librería descar,ada •
opciones ➔
Hn sólo -c&ero ➔
➔
para producción
Incluir O%Lar-.10/O%Lar.8
7ibrería desple,ada ➔
S S
para desarrollo (4ire&ug5)
Incluir O%Lar-.10/l:/O%Lar.8
Introducción a la librería ¡Hola Mundo! OEoR ➔
➔
7a versión desple,ada car,a todos los arc&ivos de Open7a.ers por separado (bueno para de&ug)
$ólo ellos
depuran con en !odo single6le
Introducción a la librería ¡Hola Mundo! ●
$i u'lias ire*o0 L888 ●
7a versión 8D@ estable 'ene un bu, con ire*o0 L –
●
/n !odo depuración5 car,ando todos los arc&ivos5 no los car,a bien
$olución ●
H'liar la versión runk svn checkou htp://svn.openlayers.org/runk/openlayers/ –
7os eEe!plos dados para este curso u'lian esta versión
Introducción a la librería ¡Hola Mundo! Crea!os una *unción ini78 a la 1ue lla!are!os al car,ar la pá,ina <4r%t t%"t*t/8a2a4r%t", 2ar ma%5 64t# init ; = .............. @ 4r%t, •
/n ella !ete!os el códi,o de inicialiación del !apa •
7a variable !ap se crea en el scope ,lobal (S de&ug)
Introducción a la librería ¡Hola Mundo! Crea!os el obEeto Open7a.ers84ap map ' O%Lar.Ma%; 'map' 5 •
/s el obEeto NcentralP de Open7a.ers
•
arias versiones del constructor •
•
/n esta se le pasa el id del TdivU 1ue contendrá el !apa Open7a.ers se encar,a de renderiar el !apa en él
Introducción a la librería ¡Hola Mundo! ●
Clase !pen"ayers.+ap ●
●
●
/s la clase *unda!ental de Open7a.ers5 representa el !apa Con'ene las capas5 los controles5 la con-,uración de visualiación888 9uede &aber varios por pá,ina
Introducción a la librería ¡Hola Mundo! Crea!os una capa 34$ (obEeto 1ue e0'ende de Open7a.ers87a.er) 2ar layer ' O%Lar.Lar.WM9; "O%Lar WM9"> "htt%&//2ma%0.tl.#(#.#r(/'m/2ma%0"> =lar& ?:a4?@ 5
9ará!etros S 9!pen"ayers )+
•
name no!bre arbitrario 1ue le da!os a la capa
•
url H:7 del servicio 34$
•
params pará!etros para la pe'ción 34$ S ;layers: <&asic<=
•
op#ons opciones para la capa (en este eEe!plo no lo usa!os)
S Nhtp://vmap%.les.osgeo.org/wms/vmapP
Introducción a la librería ¡Hola Mundo! ●
%erar1uía de clases !pen"ayers."ayer ●
:epresentan las dis'ntas capas 1ue se pueden añadir a un !apa –
34$5 3$5 34>$5 ector5 G475 6475 Geo:$$5 Goo,le5 O$45 Va&oo5 irtual/art& (Bin,)888
●
7a con-,uración depende del 'po de capa
●
%erar1uía e0tensible
Introducción a la librería ¡Hola Mundo! >ene!os 1ue añadir la capa al !apa . de-nir la ona 1ue va!os a visualiar ma%.a++Lar;layer 5 ma%.tCtr;' O%Lar.L#Lat;-7> A.7> 75 •
/l !étodo Open7a.ers84ap8setCenter() recibe el punto central . el nivel de oo! •
oo! @ S S se se visualia todo el exen del !apa
•
7a clase !pen"ayers."on"a representa pares la'tud5 lon,itud
•
Con esto5 Open7a.ers 'ene su-ciente para saber có!o dibuEar el !apa
Introducción a la librería ¡Hola Mundo! 9or Kl'!o5 lla!a!os al !étodo al car,ar la pá,ina <:#+ #l#a+"init()", ...............
/l !étodo se eEecuta al lanarse el evento onload 5 cosa 1ue ocurre tras car,ar la pá,ina ➔
Introducción a la librería ¡Hola Mundo! $ólo *alta de-nir las di!ensiones de nuestro !apa888
#map { width: 600px; heiht: !00px; rder: $px slid; %
Introducción a la librería ¡Hola Mundo! ●
V listoR Accede a &Wp++local&ost+cursoopenla.ers+cursoD8&t!l (o e1uivalente se,Kn la instalación del servidor "eb)
Introducción a OpenLayers
Qué vamos a ver ➔
Introducción a la librería ➔
$%adiendo capas ➔
➔
Controles
Interacción con el servidor (a través de estándares OGC)
Añadiendo capas &apas de 'oo(le ●
Goo,le 4aps o*rece su propio A9I ●
●
htp://code.google.com/inl/es/apis/maps/documenaon/>avascrip/
$in e!bar,o ●
●
●
$u licencia5 aun1ue per!isiva5 restrin,e su uso
Ade!ás5 podrás superponer las capas 1ue 1uieras
Añadiendo capas &apas de 'oo(le
●
●
Open7a.ers inclu.e un 'po especial de capa para ver las capas pKblicas de Goo,le
!pen"ayers."ayer.?oogle . !pen"ayers."ayer.?oogle.v@ ●
ado 1ue la versión 8X del A9I de Goo,le 4aps está deprecada u'liare!os la vF
Añadiendo capas &apas de 'oo(le ●
9ar'!os del -c&ero curso-2.html ●
9ri!ero &a. 1ue i!portar el A9I de Goo,le 4aps
<4r%t t%"t*t/8a2a4r%t" r4"#%lar/l:/O%Lar.8",4r%t, .........
●
Con el A9I v &acía *alta un A9I 6e.5 a&ora .a no
Añadiendo capas &apas de 'oo(le ●
Crea!os las capas5 i,ual 1ue en el pri!er eEe!plo5 . las añadi!os al !apa 2ar 64a ' O%Lar.Lar.##(l; "##(l FG4a"> =t%& (##(l.ma%.Ma%T%I+.TE))I$@ 5 2ar ma%a ' O%Lar.Lar.##(l; "##(l Ma%a"> =m##mL2l& 0@ 5 2ar h:r+a ' O%Lar.Lar.##(l; "##(l HG:r+a"> =t%& (##(l.ma%.Ma%T%I+.HYB)ID> m##mL2l& 0@ 5 2ar atlt ' O%Lar.Lar.##(l; "##(l 9atJlt"> =t%& (##(l.ma%.Ma%T%I+.9TELLITE> m##mL2l& @ 5 ma%.a++Lar;K64a> ma%a> h:r+a> atlt5
Añadiendo capas &apas de 'oo(le ●
íEate ●
●
Añadi!os las capas todas a la ve5 !ediante el !étodo addLayers() de la clase !pen"ayers.+ap :ecibe co!o pará!etro un arra. de capas –
●
A di*erencia del !étodo addLayer() 1ue recibe una capa
/l orden en 1ue se añaden es el orden en 1ue están contenidas en el arra. –
I!portante en cuanto a la superposición de capas (zindex )
Añadiendo capas &apas de 'oo(le ●
/l constructor recibe los pará!etros ●
name no!bre arbitrario 1ue le da!os a la capa
●
op#ons opciones para la capa de Goo,le –
–
S 9?oogle 4isicaA ...
$on 'pos de-nidos por el A9I de Goo,le 4aps
$e le puede indicar el nK!ero de niveles de oo! a cada capa
Añadiendo capas &apas de 'oo(le ●
9ara establecer el centro del !apa5 tene!os 1ue tener en cuenta 1ue la proyección de las capas de 'oo(le es dis#nta a la del primer e)emplo* ya no usa la#tud/lon(itud en (rados ●
>odo !apa . toda capa 'enen una pro.ección
●
>oda pro.ección 'ene un iden'-cador
●
Indica có!o se proyeca la in*or!ación espacial (F) en el !apa ()
●
$i no se indica nada5 Open7a.ers u'liará la /9$GLFY
●
Añadiendo capas &apas de 'oo(le ●
7as capas de Goo,le5 así co!o las de Va&oo5 Bin,5 . otros5 están en la pro.ección conocida co!o $p&erical 4ercator ●
>a!bién se conoce co!o /9$GZ@@ZDF (aun1ue no!bre el o-cial es /9$GF[\) –
●
●
)B45E "a explicaciFn es sencilla: G%%G$@ H ?!!?"A y se uliza porque se llamF asI exrao6cialmene primero
Al contrario 1ue otras5 trata la >ierra co!o una es*era5 no co!o un elipsoide $i se u'lia al,una capa en esta pro.ección5 los ele!entos (S capas) 1ue se superpon,an &an de estar en esa pro.ección (o repro.ectados a ella)
Añadiendo capas &apas de 'oo(le ●
/n tér!inos prác'cos ●
=a. 1ue reproyecar el centro 1ue se le pasa al !apa –
●
aldría pasárselo .a en la pro.ección de Goo,le5 pero no es &abitual !aneEar la in*or!ación ,eo,rá-ca en esa pro.ección
¿Có!o? –
Open7a.ers inclu.e !étodos para repro.ectar datos vectoriales (nunca r+ster! ) entre las pro.ecciones !ás &abituales ●
9ara otras5 se puede inte,rar *ácil!ente la librería proELEs (&Wp++proELEs8or,+)
Añadiendo capas &apas de 'oo(le ●
/l estableci!iento del centro del !apa 1ueda así ma%.tCtr;' O%Lar.L#Lat;-7> A.7&trans,rm; ' O%Lar.Pr#84t#;"EP9&A3"> map&et-rectin.ect() > 75
●
●
/l !étodo ransform78 de la clase 7on7at recibe pará!etros ●
7a pro.ección Nori,inalP
●
7a pro.ección Ndes'noP
/l !étodo map.ge,ro>econ!&>ec78 devolverá la pro.ección /9$GZ@@ZDF (pruébalo en el irebu,R)
Añadiendo capas &apas de 'oo(le ●
9or Kl'!o5 para poder ca!biar de capas5 añadi!os el control ma%.a++C#tr#l;' O%Lar.C#tr#l.Lar9't4hr;5
●
7os controles e0'enden la Eerar1uía !pen"ayers.Jonrol
●
=a. !uc&os prede-nidos5 entre ellos éste5 el "ayerwicher
●
●
Co!o su no!bre indica5 crea un selector de clases
●
ere!os al,unos otros !ás adelante
íEate có!o los controles5 al i,ual 1ue las capas5 las ,es'ona el obEeto !pen"ayers.+ap
Añadiendo capas &apas de 'oo(le ●
/l resultado (en htp://localhos/cursoopenlayers/curso#.hml )
Añadiendo capas &apas de ,in( .irtualart"0 •
Al i,ual 1ue Goo,le5 Bin, proporciona un A9I para trabaEar con !apas ➔
•
htp://www.microsoK.com/maps/developers/
9resenta ta!bién los !is!os inconvenientes •
Códi,o cerrado
•
A9I !enos !adura 1ue la de Goo,le •
•
V 1ue la de Open7a.ers
>a!bién se pueden incluir capas de Bin, con Open7a.ersR
Añadiendo capas &apas de ,in( .irtualart"0 •
e nuevo5 &are!os un eEe!plo sencillo
Añadiendo capas &apas de ,in( .irtualart"0 •
9ar'!os del códi,o proporcionado por el -c&ero curso-3.html •
•
Idén'co al del eEercicio anterior
Co!o en el eEe!plo de Goo,le5 tene!os 1ue i!portar el A9I de Bin, 4aps
<script src=" http://ecn&de&irtalearth&net/mapcntrl/mapcntrl&ashx=6&+m1t=en2s "> <4r%t t%"t*t/8a2a4r%t" r4"#%lar/l:/O%Lar.8",4r%t,
Añadiendo capas &apas de ,in( .irtualart"0 •
7a *or!a de crear las capas es idén'ca a la de las capas de Goo,le 2ar ma%a ' O%Lar.Lar.NrtalEarth;"Ma%a"> = t%& NEMa%9tl.9ha++ @5 2ar h:r+a ' O%Lar.Lar.NrtalEarth;"HG:r+a"> = t%& NEMa%9tl.H:r+ @5 2ar ara ' O%Lar.Lar.NrtalEarth;"Jra"> = t%& NEMa%9tl.ral @5 ma%.a++Lar;Kma%a> h:r+a> ara5
•
7os 'pos de capa5 de nuevo5 los de-ne la librería e0terna (Bin, 4aps)
Añadiendo capas &apas de ,in( .irtualart"0 •
9or Kl'!o5 añadi!os el "ayerwicher . centra!os el !apa ma%.tCtr;' O%Lar.L#Lat;-7> A.7> 75 ma%.a++C#tr#l;' O%Lar.C#tr#l.Lar9't4hr;5
Añadiendo capas &apas de ,in( .irtualart"0 •
íEate 1ue el centro lo establece!os en la'tud + lon,itud •
➔
7os !apas de Bin, se car,an en /9$GLFY5 a no ser 1ue se indi1ue lo contrario =abría 1ue indicarlo en las opciones de las capas 2ar ma%a ' O%Lar.Lar.NrtalEarth;"Ma%a"> = t%& NEMa%9tl.9ha++> spherical3ercatr: tre @5
•
/n ese caso &abría 1ue trans*or!ar las coordenadas i,ual 1ue &ici!os con las capas de Goo,le
Añadiendo capas &apas de 1pen2treetMap •
¿Qué es Open$treet4ap?
Añadiendo capas &apas de 1pen2treetMap •
¿Qué es Open$treet4ap? ●
htp://www.opensreemap.org/ :
9s un mapa li&remene edia&le por odo el mundo. sL hecho por personas como used.
•
Ade!ás de tener una inter*a propia en la "eb5 publica sus capas para 1ue cual1uiera pueda !ostrarlas . verlas (. de &ec&o editarlas)
Añadiendo capas &apas de 1pen2treetMap •
•
•
Open7a.ers incorpora un 'po de capa especí-co para O$4 9ara este eEe!plo par'!os del códi,o proporcionado en el -c&ero curso-4.html 8 Añadi!os si!ple!ente lo si,uiente lar ' O%Lar.Lar.O9M; "9m%l O9M Ma%"5 ma%.a++Lar;lar5 ma%.tCtr;' O%Lar.L#Lat;-7> A.7.tra6#rm; ' O%Lar.Pr#84t#;"EP9&A3"> ma%.(tPr#84t#O:84t; > 75
Añadiendo capas &apas de 1pen2treetMap •
íEate •
•
/l resultado
Añadiendo capas &apas 342 •
3$ 3eb eature $ervice •
•
/stándar OGC 9er!ite recuperar las propias ,eo!etrías . los atributos de las en'dades en'dad 2 feaure
•
Open7a.ers incorpora un 'po de capa especial5 pero está deprecada •
7o !eEor es u'liar una capa ector con un protocolo 3$
Añadiendo capas &apas 342 •
arias cosas a tener en cuenta en este eEe!plo
5ecesidad de un pro6y •
/l *unciona!iento de Open7a.ers es el si,uiente D8 /l nave,ador car,a el &t!l
Añadiendo capas &apas 342 8 Open7a.ers dibuEa el !apa . car,a las capas
888
=asta a&ora5 el nave,ador (a través de Open7a.ers) sólo pidió im+(enes a servidores e0ternos •
Al realiar pe'ciones X+"3BB,0equess5 las restricciones del nave,ador sólo deEan &acerlo al !is!o servidorpuerto de la pá,ina
Añadiendo capas &apas 342 ¿Có!o &ace!os entonces para pedir feaures (,eo!etrías ] propiedades X475 G475 te0to888)? ➔
•
A través de un proxy en la !á1uina 1ue sirve la pá,ina 1ue con'ene el !apa de Open7a.ers Open7a.ers8or, proporciona un pro0. CGI escrito en Python htp://rac.osgeo.org/openlayers/&rowser/runk/openlayers/examples/proxy.cgiEformaMx
•
Instalarlo en el servidor "eb ➔
Instrucciones htp://rac.osgeo.org/openlayers/wiki/4requenly*skedNuesonsO,roxy3os
Añadiendo capas &apas 342 >odavía *alta una cosa888 •
¿Có!o sabe Open7a.ers dónde está el pro0.? ●
●
/stableciendo la variable OpenLayers.ProxyHost a la ruta rela'va al pro0. A par'r de a&í5 cual1uier pe'ción ,es'onada por Open7a.ers suscep'ble de necesitar pasar por un pro0. lo &ará correcta!ente
Añadiendo capas &apas 342 Al ,rano8 •
9ar're!os del códi,o de curso-5.html 8
•
Co!o diEi!os5 lo pri!ero es establecer dónde está nuestro pro0. ●
/n Hbuntu5 3indo"s con XA499 . 4ac con 4A49 está en "/cg!n/proxy.cgurl#" <4r%t t%"t*t/8a2a4r%t", 2ar ma%5 O%Lar.Pr#*H#t "/4(-:/%r#*.4(rl"5 64t# t; = ....
Añadiendo capas &apas 342 •
ado 1ue nuestra capa 3$ sólo con'ene feaures de los //HH5 va!os a crear una capa base 34$ pri!ero 2ar :a ' O%Lar.Lar.WM9;"Ca%a :a"> "htt%&//tl4a4h.#(#.#r(/'m-4/Ba4.%"> =lar& ":a4"@ 5 ma%.a++Lar;:a5
•
Así conse,ui!os una i!a,en de *ondo de re*erencia
Añadiendo capas &apas 342 •
Crea!os la capa 3$5 a la cual le pasa!os al,unas opciones nuevas 1ue e0plica!os a con'nuación 2ar '6 ' O%Lar.Lar.N4t#r;"Ca%a WF9"> = trat(& K' O%Lar.9trat(.F*+;> %r#t#4#l& ' O%Lar.Pr#t#4#l.WF9;= rl& "htt%&//+m#.#%(#.#r(/(#r2r/'6"> 6atrT%& "tat"> 6atr$9& "htt%&//'''.#%%la.#r(/t#%%" @ @5 ma%.a++Lar;'65
Añadiendo capas &apas 342 •
•
íEate •
7a capa es en realidad una capa 1ecor
•
/l 1ue sea 3$5 6475 G475 etc8 lo establece el protocolo
/sto se debe a una decisión de diseño 1ue to!aron los desarrolladores de la librería •
/l nK!ero de capas au!enta constante!ente
•
4uc&as co!parten la naturale7a vectorial
➔
impli6caciFn de la li&rerIa
Añadiendo capas &apas 342 •
7a estrate,ia •
Indica a Open7a.ers có!o solicitar las feaures •
•
Al u'liar la estrate,ia 4ixed 5 Open7a.ers pedirá todas las *eatures e0istentes sólo una ve $i u'liáse!os la estrate,ia PP!X 5 Open7a.ers solicitaría feaures dentro del !arco 1ue se está visualiando •
/n este eEe!plo es asu!ible u'liar 4ixed por1ue •
•
$on pocas feaures $o!os !uc&os a la ve ) (!enos pe'ciones)
Añadiendo capas &apas 342 ●
/0isten otras (4ixedA 4ilerA 0efreshA ave...8
●
Co!binables
●
Al,unas sirven para otras cosas –
ave per!ite ,uardar ca!bios en el servidor
–
0efresh per!ite recar,ar !anual!ente o por intervalos las feaures
–
...
Añadiendo capas &apas 342 ●
/l protocolo 3$ %r#t#4#l& ' O%Lar.Pr#t#4#l.WF9;= rl& "htt%&//+m#.#%(#.#r(/(#r2r/'6"> 6atrT%& "tat"> 6atr$9& "htt%&//'''.#%%la.#r(/t#%%" @ ...
●
:ecibe pará!etros parecidos a los 1ue recibe una capa 34$
Añadiendo capas &apas 342 ●
●
●
●
url la H:7 del servicio 3$
S
"htt%&//+m#.#%(#.#r(/(#r2r/'6"
*eature>.pe el 'po de feaure (e1uivalente a la capa concreta en las capas 34$) S "tat" *eature<$ el namespace del 'po de feaure (cada 'po de feaure se de-ne en un espacio de no!bres) S "htt%&//'''.#%%la.#r(/t#%%" Con esto5 Open7a.ers 'ene su-ciente para pedir . dibuEar la capa
Añadiendo capas &apas 342 ●
9or Kl'!o5 establece!os el viewpor . añadi!os el selector de capas ma%.##mT#E*tt;' O%Lar.B#+;-1A0.A> Q.1> -AA.A> Q0.Q5 ma%.a++C#tr#l;' O%Lar.C#tr#l.Lar9't4hr;5
●
íEate ●
A&ora5 en lu,ar de establecer el centro5 de-ni!os directa!ente el ca!po de visión con el !étodo $oom%o&xtent() –
:ecibe co!o pará!etro un obEeto !pen"ayers.Pounds5 1ue de-ne un rectán,ulo a través de minxA minyA maxxA maxy
Añadiendo capas &apas 342 ●
/l resultado
Añadiendo capas &apas 342 ●
íEate ●
●
●
7a pe'ción (!ira el irebu,R) no recibe una i!a,en co!o con las capas 34$5 recibe un X47 con las ,eo!etrías /s Open7a.ers 1uien renderia al vuelo la i!a,en a par'r de los datos /l es'lo u'liado es el 1ue viene por de*ecto5 pero se puede con-,urar
Introducción a OpenLayers
Qué vamos a ver ➔
Introducción a la librería ➔
Añadiendo capas ➔
➔
&ontroles
Interacción con el servidor (a través de estándares OGC)
Controles Introducción a los &ontroles 4u. bonito Xur0o5 pero888 ¿a&ora 1ué? ●
Controles per!iten interactuar con el !apa 8 ➢
●
/0'enden a la clase Open7a.ers8Control
9aneles a,re,ación de controles8 ➢
/0'enden a la clase Open7a.ers89anel
Controles Introducción a los &ontroles ●
¿Quién puso eso a&í?
Controles Introducción a los &ontroles ●
Por defecto, si no se añade explícitamente ningún control al mapa, ste se iniciali!a con " controles# ●
●
●
●
OpenLayers$Control$ArgParser # OpenLayers$Control$ArgParser # # Lee los par%metros de la &'L y actuali!a el mapa$ Open7a.ers8Control8AWribu'on !uestra las atribuciones de los !apas consultados (propiedad ^aWribu'on^ de Open7a.ers87a.er)8 Open7a.ers8Control89an;oo! a,re,ación de dos controles 9an9anel . ;oo!9anel8 Open7a.ers8Control8
Controles 1tros controles prede8nidos ●
Open7a.ers8Control86e.boarde*aults para nave,ar por el !apa !ediante !ediante el teclado (_ec&as5 (_ec&as5 ]+5888)
●
Open7a.ers8Control89an;oo!Bar dibuEa una barra de oo! 1ue per!ite per!ite acercar . aleEar aleEar el !apa8
●
Open7a.ers8Control89an9anel dibuEa unos botones dentro dentro del visor para desplaar desplaar el !apa8
●
Open7a.ers8Control8;oo!9anel a,re,ación de los los tres controles controles 1ue ,es'onan ,es'onan el nivel nivel de oo! Open7a.ers8Control8;oo!In5 Open7a.ers8Control8;oo!In5 Open7a.ers8Control8;oo!>o4a0/0t Open7a.ers8Control8;oo!>o4a0/0tent5 ent5 Open7a.ers8Control8;oo!Out8 Open7a.ers8Control8;oo!Out8
●
Open7a.ers8Control89er!alin# crea un enlace a la visualiación visualiación actual del !apa8
●
Open7a.ers8Control84ouse9osi'on indica la posición del cursor cursor en el !apa8 !apa8
●
Open7a.ers8Control8Overvie"4ap !apa de re*erencia en en la es1uina in*erior derec&a derec&a del !apa8
●
Open7a.ers8Control87a.er$"itc&er per!ite ver la le.enda del !apa5 !apa5 !ostrando las capas disponibles disponibles . per!i'endo ele,ir las 1ue se desean visualiar8
●
Open7a.ers8Control84easure per!ite !edir !edir tanto distancias co!o co!o áreas dentro del visor8 visor8
●
888
Controles )emplo Añadi!os !ás controles al visor 64t# t; = 2ar ma% ' O%Lar.Ma%; ?ma%? > = cntrls: cntrls: 45 @5 @5 R // CO$T)OLE9 ma%.a++C#tr#l;' O%Lar.C#tr#l.$a2(at#;5 ma%.a++C#tr#l;' O%Lar.C#tr#l.ttr:t#;5 ma%.a++C#tr#l;' O%Lar.C#tr#l.Pa##mBar;5 ma%.a++C#tr#l;' O%Lar.C#tr#l.Lar9't4hr;=?a4+(?&6al@5 ma%.a++C#tr#l;' O%Lar.C#tr#l.r(Parr;5 ma%.a++C#tr#l;' O%Lar.C#tr#l.PrmalS;5 ma%.a++C#tr#l;' O%Lar.C#tr#l.M#P#t#;5 ma%.a++C#tr#l;' O%Lar.C#tr#l.O2r2'Ma%;5 ma%.a++C#tr#l;' O%Lar.C#tr#l.:#ar+D6alt;5 ma%.a++C#tr#l;' O%Lar.C#tr#l.94alL;5 R @
Controles )emplo ●
( a )ugar***
Controles &ontroles de edición ●
+stos controles tienen ue tener asociada una capa -ectorial . OpenLayers$Layer$/ector 0 sobre la ue se dibu)ar%n los elementos$ ●
OpenLayers$Control$1ra23eature # permite dibu)ar polígonos, líneas o puntos$
●
OpenLayers$Control$4odify3eature # permite modificar elementos$
●
●
●
OpenLayers$Control$5elect3eature # permite seleccionar elementos 6aciendo clic7 sobre ellos$ OpenLayers$Control$8ransform3eature # permite aplicar transformaciones a elementos OpenLayers$Control$+diting8oolbar # panel ue incorpora los controles de dibu)ar polígonos, líneas, puntos y na-egación$
Controles )emplo 9 Añadi!os controles de edición 64t# t; = R 2ar 24t#rlar ' O%Lar.Lar.N4t#r; "E+ta:l" 5 ... 2ar +t%al ' .penayers&7ntrl&8ditin9lar ;24t#rlar5 ma%.a++C#tr#l;+t%al5 R @
Controles )emplo 9 Añadi!os un nuevo control al toolbar 64t# t; = R 2ar 24t#rlar ' O%Lar.Lar.N4t#r; "E+ta:l" 5 ... 2ar +t%al ' O%Lar.C#tr#l.E+t(T##l:ar;24t#rlar5 2ar m#+66atr4trl ' .penayers&7ntrl&3di,yeatre ;24t#rlar> = ttl& "M#+6 Fatr"> +%laCla& "#lC#tr#lM#+6Fatr" @5 +t%al.a++C#tr#l;m#+66atr4trl5 ma%.a++C#tr#l;+t%al5 R @
Controles )emplo 9 ●
( a )ugar again***
Controles :e8niendo nuestros propios controles ●
+xtender la clase OpenLayers$Control o cualuiera de las clases de los controles predefinidos$ O%Lar.C#tr#l.MC#tr#l O%Lar.Cla;O%Lar.C#tr#l> = R @
Controles )emplo ; Control para borrar ele!entos O%Lar.C#tr#l.DltFatr O%Lar.Cla;O%Lar.C#tr#l> = tal& 64t#;lar> #%t# = O%Lar.C#tr#l.%r#t#t%.tal.a%%l;th> K#%t#5 th.lar lar5 th.ha+lr ' O%Lar.Ha+lr.Fatr; th> lar> =4l4S& th.4l4SFatr@ 5 @> 4l4SFatr& 64t#;6atr = th.lar.+tr#Fatr;K6atr5 @>
CL99$ME& "O%Lar.C#tr#l.DltFatr" @5
Introducción a OpenLayers
Qué vamos a ver ➔
Introducción a la librería ➔
Añadiendo capas ➔
➔
Controles
Interacción con el servidor a través de est+ndares 1'&0
Interacción con el ser-idor 1'& ●
Open Geospacial Consor'u!8 ●
Or,aniación estandariadora (DZZL)8
●
Internacional8
●
$in áni!o de lucro8
●
●
9ersi,ue5 sobre todo5 la interoperabilidad de los di*erentes siste!as GI$ ]L@@ !ie!bros8 &Wp++"""8open,eospa'al8or,+
Interacción con el ser-idor st+ndares 1'& ●
?+" 7?eography +arkup "anguage8: ●
●
Q+" 7Qeyhole +arkup "anguage8: ●
●
X47 para representar in*or!ación ,eo,rá-ca8
X47 para representar datos ,eo,rá-cos en F8
)+ 7)e& +ap erver8: ●
Inter*a para publicar !apas de in*or!ación ,eore*erenciadas (i!á,enes)8
Interacción con el ser-idor st+ndares 1'& ●
)4 7)e& 4eaure ervice8: ●
●
)J 7)e& Joverage ervice8: ●
●
Inter*a para publicar coberturas8
! 7ensor !&servaon ervice8: ●
●
Inter*a para publicar in*or!ación ,eoespacial a través de la "eb (G47 sobre =>>9)8
888
e-ne el !odo de acceso a los sensores a través de la "eb8
Interacción con el ser-idor 342 ●
OGC 3eb eature $ervice I!ple!enta'on $peci-ca'on
●
9e'ciones 3$ ●
GetCapabili'es ➢
●
escribeeature>.pe ➢
●
>emplo
>emplo
Geteature ➢
>emplo
Interacción con el ser-idor )emplo < 342 'et4eature 64t# t; = R (tFatr4#tr#l ' .penayers&7ntrl&eteatre;= %r#t#4#l& O%Lar.Pr#t#4#l.WF9.6r#mWM9Lar;'mlar> :#*& tr> h#2r& 6al> mlt%l& "h6t"> t#((l& "4trl" @5 (tFatr4#tr#l.2t.r(tr;" ,eatreselected"> th> 64t#; = l4tlar.a++Fatr;K.6atr5 m#+64#tr#l.+a4t2at;5 @5 (tFatr4#tr#l.2t.r(tr;" ,eatrenselected"> th> 64t#; = l4tlar.rm#2Fatr;K.6atr5 @5 ma%.a++C#tr#l;(tFatr4#tr#l5 (tFatr4#tr#l.a4t2at;5 R @
Interacción con el ser-idor )emplo < 342 'et4eature ●
V a ca!biar el !undoR
Interacción con el ser-idor 342-= ●
9er!ite ca!biar la in*or!ación en el servidor8
●
/Ee!plo con Open7a.ers &Wp++openla.ers8or,+dev+e0a!ples+"*sprotocoltransac'ons8&t!l
Interacción con el ser-idor 3M2 ●
OGC 3eb 4ap $ervice I!ple!enta'on $peci-ca'on
●
9e'ciones 34$ ●
GetCapabili'es ➢
●
escribe7a.er ➢
●
>emplo
Get4ap ➢
●
>emplo
>emplo
GeteatureIn*o ➢
>emplo
Interacción con el ser-idor )emplo 9< 3M2 'et4eatureIn>o 64t# t; = R 6# ' .penayers&7ntrl&3eteatren,;= rl& ?htt%&//2.t.#%(#.#r(/(#r2r/#'?> ttl& ?I+t6 6atr : 4l4S(?> rN:l& tr> 2tLtr& = (t6atr6#& 64t#;2t = 6 ;%#%% ! +6+ = ma%.rm#2P#%%;%#%%5 @ %#%% ' O%Lar.P#%%.Fram+Cl#+; "4h4S"> ma%.(tL#LatFr#mP*l;2t.*> ' O%Lar.9;Q0>Q0> 2t.t*t> ll> tr 5 ma%.a++P#%%;%#%%5 @ @ @5 ma%.a++C#tr#l;6#5 6#.a4t2at;5 R @
Interacción con el ser-idor )emplo 9< 3M2 'et4eatureIn>o ●
V consultando888
Introducción a OpenLayers
Gracias por asistir a este curso Gracias
Te "uedaste geoinquieto###$
%
Introducción a la librería
?ermanece conectado
Xeoinquedos &tt:''(eoin"uedos#)ordress#*om &tt:'')i+i#osgeo#org')i+i'eoin"uietos-.ona-/orte # 9xeoinuedos
%
Introducción a la librería
?ermanece conectado
OSGeo-ES Capítulo Local de la comunidad hispanohablante del OSGeo
.&tt:'')i+i#osgeo#org')i+i'Catu!o-Lo*a!-de-!a-*omunidad-&isano&a!ante0 # 9osgeoes
%
Introducción a OpenLayers
'racias a
Francisco u!a : 3uga
Micho García : mi*&ogar
Introducción a OpenLayers
I4PA'8I1O PO'#
:racia 3ern%nde! Lópe! gra*ia3de45gmai!#*om
;urxo 4nde! Pre!
: son(ur(o &tt:''!og#son(ur(o#*om son(ur(o5gmai!#*om