Commit b2aa5fc9036305a3611fc074dec084d43495410e
1 parent
ae57caca
Exists in
master
and in
7 other branches
Inclusão do parâmetro KML no mashup Openlayers
Showing
3 changed files
with
60 additions
and
4 deletions
Show diff stats
mashups/index.html
... | ... | @@ -27,8 +27,10 @@ conter um grande número de funcionalidades.</p> |
27 | 27 | <p>Para ver todos os parâmetros: <a href='openlayers.php'>i3geo/mashups/openlayers.php</a></p> |
28 | 28 | <p>Exemplo: todas as opções e um tema adicionado <a href='openlayers.php?temas=biomashp&largura=600'>openlayers.php?temas=biomashp&largura=600</a></p> |
29 | 29 | <p>Exemplo: Botões principais e barra de zoom maior <a href='openlayers.php?temas=biomashp&largura=600&botoes=pan,zoombox,zoomtot,distancia,area,identifica&numzoomlevels=10'>openlayers.php?temas=biomashp&largura=600&botoes=pan,zoombox,zoomtot,distancia,area,identifica&numzoomlevels=10</a> |
30 | -<p>Exemplo: Inclusão de pontos <a href='openlayers.php?temas=biomashp&largura=600&pontos=-54 -12 -56 -15'>openlayers.php?temas=biomashp&largura=600&pontos=-54 -12 -56 -15 | |
31 | -<p>Exemplo: Camada adicional como fundo <a href='openlayers.php?temas=biomashp&largura=600&fundo=biomashp'>openlayers.php?temas=biomashp&largura=600&fundo=biomashp | |
30 | +<p>Exemplo: Inclusão de pontos <a href='openlayers.php?temas=biomashp&largura=600&pontos=-54 -12 -56 -15'>openlayers.php?temas=biomashp&largura=600&pontos=-54 -12 -56 -15</a> | |
31 | +<p>Exemplo: Camada adicional como fundo <a href='openlayers.php?temas=biomashp&largura=600&fundo=biomashp'>openlayers.php?temas=biomashp&largura=600&fundo=biomashp</a> | |
32 | +<p>Exemplo: KML <a href='openlayers.php?temas=biomashp&largura=700&kml=http://localhost/i3geo/aplicmap/dados/sundials.kml'>openlayers.php?temas=biomashp&largura=700&kml=http://localhost/i3geo/aplicmap/dados/sundials.kml</a> | |
33 | + | |
32 | 34 | |
33 | 35 | </body> |
34 | 36 | <script> | ... | ... |
mashups/openlayers.js.php
... | ... | @@ -50,7 +50,7 @@ i3GEO.editorOL = { |
50 | 50 | {layers: "estadosl",FORMAT:'image/png'} |
51 | 51 | ), |
52 | 52 | fundo: "ol_mma,ol_wms,jpl_wms,osm_wms,top_wms,est_wms", |
53 | - | |
53 | + kml: [], | |
54 | 54 | layersIniciais: [], |
55 | 55 | botoes: { |
56 | 56 | 'pan':true, |
... | ... | @@ -170,6 +170,7 @@ i3GEO.editorOL = { |
170 | 170 | if(i3GEO.editorOL.layergrafico !== ""){ |
171 | 171 | i3GEO.editorOL.mapa.addLayers([i3GEO.editorOL.layergrafico]); |
172 | 172 | } |
173 | + i3GEO.editorOL.adicionaKml(); | |
173 | 174 | i3GEO.editorOL.adicionaMarcas(); |
174 | 175 | if(i3GEO.editorOL.maxext !== "") |
175 | 176 | {i3GEO.editorOL.mapa.zoomToMaxExtent();} |
... | ... | @@ -980,6 +981,51 @@ i3GEO.editorOL = { |
980 | 981 | layer.addFeatures(features); |
981 | 982 | i3GEO.editorOL.mapa.addLayer(layer); |
982 | 983 | }, |
984 | + adicionaKml: function(){ | |
985 | + var temp,n,i,id,url; | |
986 | + n = i3GEO.editorOL.kml.length; | |
987 | + for(i=0;i<n;i++){ | |
988 | + id = "kml"+i; | |
989 | + url = i3GEO.editorOL.kml[i]; | |
990 | + eval(id+" = new OpenLayers.Layer.Vector('"+id+"', {displayOutsideMaxExtent:true,displayInLayerSwitcher:false,visibility:true, strategies: [new OpenLayers.Strategy.Fixed()],protocol: new OpenLayers.Protocol.HTTP({url: '"+url+"',format: new OpenLayers.Format.KML({extractStyles: true,extractAttributes: true,maxDepth: 5})})})"); | |
991 | + eval("i3GEO.editorOL.mapa.addLayer("+id+");"); | |
992 | + eval("temp = "+id+".div;"); | |
993 | + temp.onclick = function(e){ | |
994 | + var targ,id,temp,features,n,i,j,g,html=""; | |
995 | + if (!e){e = window.event;} | |
996 | + if (e.target) | |
997 | + {targ = e.target;} | |
998 | + else | |
999 | + if (e.srcElement) | |
1000 | + {targ = e.srcElement;} | |
1001 | + | |
1002 | + temp = targ.id.split("_"); | |
1003 | + if(temp[0] === "OpenLayers.Geometry.Point"){ | |
1004 | + id = targ.id; | |
1005 | + temp = i3GEO.editorOL.mapa.getLayer(this.id); | |
1006 | + features = temp.features; | |
1007 | + n = features.length; | |
1008 | + for(i=0;i<n;i++){ | |
1009 | + if(features[i].geometry.id === id){ | |
1010 | + for (j in features[i].attributes) { | |
1011 | + html += j+": "+features[i].attributes[j]; | |
1012 | + } | |
1013 | + g = features[i].geometry; | |
1014 | + i3GEO.editorOL.mapa.addPopup(new OpenLayers.Popup.FramedCloud( | |
1015 | + "kml", | |
1016 | + new OpenLayers.LonLat(g.x,g.y), | |
1017 | + null, | |
1018 | + html, | |
1019 | + null, | |
1020 | + true | |
1021 | + )); | |
1022 | + | |
1023 | + } | |
1024 | + } | |
1025 | + } | |
1026 | + }; | |
1027 | + } | |
1028 | + }, | |
983 | 1029 | //obtido de openlayers.org |
984 | 1030 | propriedades: function(){ |
985 | 1031 | if(!document.getElementById("panelpropriedadesEditor")){ | ... | ... |
mashups/openlayers.php
... | ... | @@ -140,7 +140,8 @@ function ajuda(){ |
140 | 140 | <pre><b> |
141 | 141 | Mashup OpenLayers |
142 | 142 | Parâmetros: |
143 | - servidor - endereco do servidor OGC utilizado. Por default é ../ogc.php o que força o uso do i3geo local | |
143 | + kml - lista de endereços (url) de um arquivos kml que serão adicionados ao mapa. Separado por ',' | |
144 | + servidor - por default é ../ogc.php o que força o uso do i3geo local. Esse é o programa que será utilizado em conjunto com a lista definida no parâmetro 'temas' | |
144 | 145 | temas - lista com os temas (mapfiles) do i3Geo que serão incluídos no mapa |
145 | 146 | numzoomlevels - número de níveis de zoom, default=6 |
146 | 147 | maxextent - extensão geográfica do mapa (xmin,ymin,xmax,ymax) |
... | ... | @@ -252,6 +253,13 @@ i3GEO.editorOL.pontos = [<?php |
252 | 253 | echo $pontos; |
253 | 254 | } |
254 | 255 | ?>]; |
256 | +i3GEO.editorOL.kml = [<?php | |
257 | + if(isset($kml)){ | |
258 | + $kml = str_replace(" ",",",$kml); | |
259 | + $kml = explode(",",$kml); | |
260 | + echo "'".implode("','",$kml)."'"; | |
261 | + } | |
262 | +?>]; | |
255 | 263 | i3GEO.editorOL.marca = "<?php |
256 | 264 | if(isset($marca)){echo $marca;} |
257 | 265 | else | ... | ... |