Commit b2aa5fc9036305a3611fc074dec084d43495410e

Authored by Edmar Moretti
1 parent ae57caca

Inclusão do parâmetro KML no mashup Openlayers

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 = [&lt;?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
... ...