Commit 2e9d74096dc2313a4893cfcfab9d1e00e70b60b5
1 parent
b51e077b
Exists in
master
and in
7 other branches
--no commit message
Showing
4 changed files
with
100 additions
and
85 deletions
Show diff stats
admin/admin.db
No preview for this file type
classesphp/mapa_openlayers.php
... | ... | @@ -67,6 +67,7 @@ inicializa(); |
67 | 67 | //nos casos do modo notile, a requisicao e feita como se fosse um wms |
68 | 68 | //quando for do tipo tms $_GET["tms"] contem os parametros do tile |
69 | 69 | // |
70 | + | |
70 | 71 | if(isset($_GET["tms"])){ |
71 | 72 | $_GET["WIDTH"] = 256; |
72 | 73 | $_GET["HEIGHT"] = 256; |
... | ... | @@ -83,10 +84,11 @@ if(isset($_GET["tms"])){ |
83 | 84 | $lat2 = ($y+1) / $n * 180.0 - 90.0; |
84 | 85 | $_GET["BBOX"] = $lon1." ".$lat1." ".$lon2." ".$lat2; |
85 | 86 | } |
87 | + | |
86 | 88 | //para o caso da versao 3 do OpenLayers |
87 | -//excluir? | |
88 | -if(isset($_GET["X"])){ | |
89 | - $box = explode(",",$_GET["BBOX"]); | |
89 | +if(isset($_GET["X"]) && !($_GET["REQUEST"] == "getfeatureinfo" || $_GET["REQUEST"] == "GetFeatureInfo" || strtolower($_GET["REQUEST"]) == "getfeature")){ | |
90 | + $box = str_replace(" ",",",$_GET["BBOX"]); | |
91 | + $box = explode(",",$box); | |
90 | 92 | $res = ($box[2] + 180) - ($box[0] + 180); |
91 | 93 | $res = $res / 256; |
92 | 94 | $z = intval((0.703125 / $res) / 4) + 1; |
... | ... | @@ -98,6 +100,7 @@ if(isset($_GET["X"])){ |
98 | 100 | $_GET["tms"] = "/".$_GET["layer"]."/".$z."/".$x."/".$y.".png"; |
99 | 101 | echo $_GET["BBOX"]." ".$_GET["tms"];exit; |
100 | 102 | } |
103 | + | |
101 | 104 | if(isset($_GET["TileMatrix"])){ |
102 | 105 | $_GET["WIDTH"] = 256; |
103 | 106 | $_GET["HEIGHT"] = 256; |
... | ... | @@ -128,6 +131,7 @@ if(isset($_GET["TileMatrix"])){ |
128 | 131 | |
129 | 132 | $_GET["BBOX"] = $lon1." ".$lat1." ".$lon2." ".$lat2; |
130 | 133 | } |
134 | + | |
131 | 135 | $map_fileX = $_SESSION["map_file"]; |
132 | 136 | // |
133 | 137 | //verifica se o request e OGC |
... | ... | @@ -139,11 +143,14 @@ if(!empty($_GET["request"])){ |
139 | 143 | // |
140 | 144 | $qyfile = dirname($map_fileX)."/".$_GET["layer"].".php"; |
141 | 145 | $qy = file_exists($qyfile); |
142 | -if($_GET["REQUEST"] == "GetFeatureInfo" || strtolower($_GET["REQUEST"]) == "getfeature"){ | |
146 | + | |
147 | +if($_GET["REQUEST"] == "getfeatureinfo" || $_GET["REQUEST"] == "GetFeatureInfo" || strtolower($_GET["REQUEST"]) == "getfeature"){ | |
143 | 148 | $_GET["DESLIGACACHE"] = "sim"; |
144 | 149 | } |
145 | -if($qy == false && $_GET["cache"] == "sim" && $_GET["DESLIGACACHE"] != "sim"){ | |
146 | - carregaCacheImagem($_SESSION["cachedir"],$_SESSION["map_file"],$_GET["tms"],$_SESSION["i3georendermode"]); | |
150 | +else{ | |
151 | + if($qy == false && $_GET["cache"] == "sim" && $_GET["DESLIGACACHE"] != "sim"){ | |
152 | + carregaCacheImagem($_SESSION["cachedir"],$_SESSION["map_file"],$_GET["tms"],$_SESSION["i3georendermode"]); | |
153 | + } | |
147 | 154 | } |
148 | 155 | // |
149 | 156 | //map_fileX e para o caso register_globals = On no PHP.INI |
... | ... | @@ -219,7 +226,6 @@ if(!isset($_GET["telaR"])){//no caso de projecoes remotas, o mapfile nao e alter |
219 | 226 | } |
220 | 227 | } |
221 | 228 | } |
222 | - | |
223 | 229 | if($layerName == $_GET["layer"]){ |
224 | 230 | if(strtolower($l->getmetadata("cache")) == "sim"){ |
225 | 231 | $cache = true; |
... | ... | @@ -228,7 +234,7 @@ if(!isset($_GET["telaR"])){//no caso de projecoes remotas, o mapfile nao e alter |
228 | 234 | $nomecache = $layerName; |
229 | 235 | } |
230 | 236 | } |
231 | - if($_GET["REQUEST"] == "GetFeatureInfo" || strtolower($_GET["REQUEST"]) == "getfeature" ){ | |
237 | + if($_GET["REQUEST"] == "getfeatureinfo" || $_GET["REQUEST"] == "GetFeatureInfo" || strtolower($_GET["REQUEST"]) == "getfeature" ){ | |
232 | 238 | $l->setmetadata("gml_include_items","all"); |
233 | 239 | $l->set("template","none.htm"); |
234 | 240 | $l->setmetadata("WMS_INCLUDE_ITEMS","all"); |
... | ... | @@ -243,6 +249,7 @@ if(!isset($_GET["telaR"])){//no caso de projecoes remotas, o mapfile nao e alter |
243 | 249 | } |
244 | 250 | } |
245 | 251 | } |
252 | + | |
246 | 253 | if (!function_exists('imagepng')){ |
247 | 254 | $_GET["TIPOIMAGEM"] = ""; |
248 | 255 | } |
... | ... | @@ -273,9 +280,13 @@ if(isset($_GET["mapext"])){ |
273 | 280 | // |
274 | 281 | //qd a cahamda e para um WMS, redireciona para ogc.php |
275 | 282 | // |
276 | -if($_GET["REQUEST"] == "GetFeatureInfo" || $_GET["REQUEST"] == "getfeature"){ | |
283 | +if($_GET["REQUEST"] == "getfeatureinfo" || $_GET["REQUEST"] == "GetFeatureInfo" || $_GET["REQUEST"] == "getfeature"){ | |
277 | 284 | $req = ms_newowsrequestobj(); |
285 | + if($_GET["BBOX"]){ | |
286 | + $_GET["BBOX"] = str_replace(" ",",",$_GET["BBOX"]); | |
287 | + } | |
278 | 288 | $_GET = array_merge($_GET,$_POST); |
289 | + | |
279 | 290 | foreach ($_GET as $k=>$v){ |
280 | 291 | $req->setParameter($k, $v); |
281 | 292 | } |
... | ... | @@ -283,7 +294,6 @@ if($_GET["REQUEST"] == "GetFeatureInfo" || $_GET["REQUEST"] == "getfeature"){ |
283 | 294 | $server = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']; |
284 | 295 | $or = $proto.$server.$_SERVER['PHP_SELF']; |
285 | 296 | $mapa->setmetadata("wfs_onlineresource",$or."?".$_SERVER["QUERY_STRING"]); |
286 | - | |
287 | 297 | ms_ioinstallstdouttobuffer(); |
288 | 298 | $mapa->owsdispatch($req); |
289 | 299 | $contenttype = ms_iostripstdoutbuffercontenttype(); |
... | ... | @@ -560,7 +570,7 @@ function inicializa(){ |
560 | 570 | ilegal(); |
561 | 571 | } |
562 | 572 | session_start(); |
563 | - if($_GET["REQUEST"] == "GetFeatureInfo" || strtolower($_GET["REQUEST"]) == "getfeature"){ | |
573 | + if($_GET["REQUEST"] == "getfeatureinfo" || $_GET["REQUEST"] == "GetFeatureInfo" || strtolower($_GET["REQUEST"]) == "getfeature"){ | |
564 | 574 | return; |
565 | 575 | } |
566 | 576 | if(@$_SESSION["fingerprint"]){ | ... | ... |
ferramentas/editorol/editorol.js
... | ... | @@ -747,13 +747,16 @@ i3GEO.editorOL = |
747 | 747 | YAHOO.legendaeditorOL.container.panel.show(); |
748 | 748 | } |
749 | 749 | }, |
750 | - captura : function(lonlat) { | |
751 | - // if(i3GEO.desenho.layergrafico !== ""){return;} | |
752 | - | |
753 | - var d = 0.1, layers = [ | |
754 | - i3GEO.editorOL.layerAtivo() | |
755 | - ], xy = lonlat.split(","), u = layers[0].url + "&REQUEST=getfeature&service=wfs&version=1.0.0"; | |
756 | - u += "&OUTPUTFORMAT=gml2&typename=" + layers[0].params.LAYERS; | |
750 | + captura : function(x,y,tema) { | |
751 | + var d = 0.1, | |
752 | + layer = i3geoOL.getLayersByName(tema)[0], | |
753 | + xy = [x,y], | |
754 | + u = layer.getSource().getUrls()[0], | |
755 | + poligono, retorno; | |
756 | + | |
757 | + u += "&REQUEST=getfeature&service=wfs&version=1.0.0"; | |
758 | + u += "&OUTPUTFORMAT=gml2&typename=undefined"; | |
759 | + | |
757 | 760 | // remove parametros nao desejados |
758 | 761 | if (i3GEO.Interface.openlayers.googleLike === true) { |
759 | 762 | u += "&SRS=EPSG:3857"; |
... | ... | @@ -761,12 +764,10 @@ i3GEO.editorOL = |
761 | 764 | u = u.replace("&cache=sim", "&DESLIGACACHE=sim"); |
762 | 765 | u = u.replace("&Z=${z}&X=${x}&Y=${y}", ""); |
763 | 766 | u = u.replace("Z=${z}&X=${x}&Y=${y}", ""); |
764 | - // u += | |
765 | - // "&filter=<Filter><Intersects><PropertyName>Geometry</PropertyName><gml:Point><gml:coordinates>"+lonlat+"</gml:coordinates></gml:Point></Intersects></Filter>"; | |
766 | 767 | |
767 | 768 | xy[0] = xy[0] * 1; |
768 | 769 | xy[1] = xy[1] * 1; |
769 | - var poligono = | |
770 | + poligono = | |
770 | 771 | (xy[0] - d) + "," |
771 | 772 | + (xy[1] + d) |
772 | 773 | + " " |
... | ... | @@ -788,46 +789,13 @@ i3GEO.editorOL = |
788 | 789 | u += |
789 | 790 | "&filter=<Filter><Intersects><PropertyName>Geometry</PropertyName><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:posList>" + poligono |
790 | 791 | + "</gml:posList></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></Intersects></Filter>"; |
791 | - | |
792 | - document.body.style.cursor = "wait"; | |
793 | - if (document.getElementById("i3geoMapa")) { | |
794 | - document.getElementById("i3geoMapa").style.cursor = "wait"; | |
795 | - } | |
796 | - OpenLayers.Request.issue({ | |
797 | - method : "GET", | |
798 | - url : u, | |
799 | - callback : function(retorno) { | |
800 | - document.body.style.cursor = "default"; | |
801 | - if (document.getElementById("i3geoMapa")) { | |
802 | - document.getElementById("i3geoMapa").style.cursor = "default"; | |
803 | - } | |
804 | - var i, n, f, fromgml = new OpenLayers.Format.GML({ | |
805 | - geometryName : "msGeometry" | |
806 | - }), gml = fromgml.read(retorno.responseText); | |
807 | - n = gml.length; | |
808 | - for (i = 0; i < n; i++) { | |
809 | - f = gml[i]; | |
810 | - f["attributes"] = { | |
811 | - opacidade : i3GEO.editorOL.simbologia.opacidade, | |
812 | - texto : i3GEO.editorOL.simbologia.texto, | |
813 | - fillColor : i3GEO.editorOL.simbologia.fillColor, | |
814 | - strokeWidth : i3GEO.editorOL.simbologia.strokeWidth, | |
815 | - strokeColor : i3GEO.editorOL.simbologia.strokeColor, | |
816 | - pointRadius : i3GEO.editorOL.simbologia.pointRadius, | |
817 | - graphicName : i3GEO.editorOL.simbologia.graphicName, | |
818 | - registros : f["attributes"] | |
819 | - }; | |
820 | - } | |
821 | - i3GEO.desenho.layergrafico.addFeatures(gml); | |
822 | - }, | |
823 | - failure : function() { | |
824 | - document.body.style.cursor = "default"; | |
825 | - if (document.getElementById("i3geoMapa")) { | |
826 | - document.getElementById("i3geoMapa").style.cursor = "default"; | |
827 | - } | |
828 | - alert("Erro"); | |
829 | - } | |
830 | - }); | |
792 | + retorno = function(r){ | |
793 | + //parser gml | |
794 | + }; | |
795 | + u = i3GEO.configura.locaplic + "/classesphp/proxy.php?" | |
796 | + + u | |
797 | + + "&tipoRetornoProxy=string"; | |
798 | + cpJSON.call(u, "foo", retorno, ""); | |
831 | 799 | }, |
832 | 800 | salvaGeometrias : function() { |
833 | 801 | var geos = i3GEO.desenho.layergrafico.selectedFeatures, n = geos.length, ins = ""; |
... | ... | @@ -1514,18 +1482,45 @@ i3GEO.editorOL = |
1514 | 1482 | url = layer.getSource().getUrls()[0]; |
1515 | 1483 | xy = evt.target.downPx_; |
1516 | 1484 | retorno = function(r){ |
1517 | - var xy = evt.feature.getGeometry().getFirstCoordinate(); | |
1485 | + var texto = "", lonlattexto, xy, temp, temp1, n, i, f = [], textoN = r.split(":"); | |
1486 | + xy = evt.feature.getGeometry().getFirstCoordinate(); | |
1518 | 1487 | i3GEO.eventos.cliquePerm.ativo = true; |
1519 | - i3GEO.Interface.openlayers.balao(r,"", xy[0], xy[1]); | |
1488 | + try { | |
1489 | + if (textoN.length > 1) { | |
1490 | + temp = textoN[2].replace(/\n\r/g, ""); | |
1491 | + temp = temp.replace(/'/g, ""); | |
1492 | + temp = temp.replace(/\n/g, "|"); | |
1493 | + temp = temp.replace(/_/g, " "); | |
1494 | + temp = temp.replace(/=/g, ":"); | |
1495 | + temp = temp.split("|"); | |
1496 | + n = temp.length; | |
1497 | + for (i = 0; i < n; i++) { | |
1498 | + temp1 = temp[i].replace(/^\s+/, ""); | |
1499 | + temp1 = temp1.replace(/\s+$/, ""); | |
1500 | + if (temp1 != "") | |
1501 | + f.push(temp1); | |
1502 | + } | |
1503 | + texto = "<pre>" + f.join("<br>") + "</pre>"; | |
1504 | + } | |
1505 | + } catch (e) {} | |
1506 | + //funcao para capturar a geometria | |
1507 | + lonlattexto = | |
1508 | + "<span style=font-size:12px;color:blue;cursor:pointer onclick='i3GEO.editorOL.captura(" + xy[0] | |
1509 | + + "," | |
1510 | + + xy[1] | |
1511 | + + ",\"" | |
1512 | + + tema.value | |
1513 | + + "\")'>edita geometria</span><br>"; | |
1514 | + i3GEO.Interface.openlayers.balao("<div style='text-align:left' >" + lonlattexto + texto + "</div>","", xy[0], xy[1], false, false); | |
1520 | 1515 | i3GEO.eventos.cliquePerm.ativo = false; |
1521 | 1516 | }; |
1522 | 1517 | p = i3GEO.configura.locaplic + "/classesphp/proxy.php?" |
1523 | 1518 | + url |
1524 | 1519 | + "&tipoRetornoProxy=string&REQUEST=GetFeatureInfo&TIPOIMAGEM=nenhum&DESLIGACACHE=sim&STYLES=&SERVICE=WMS&VERSION=1.1.1&FEATURE_COUNT=1" |
1525 | 1520 | + "&FORMAT=image/png&INFO_FORMAT=text/plain&SRS=EPSG:4326" |
1526 | - + "&LAYERS= " + tema.value | |
1527 | - + "&layer= " + tema.value | |
1528 | - + "&QUERY_LAYERS= " + tema.value | |
1521 | + + "&LAYERS=" + tema.value | |
1522 | + + "&layer=" + tema.value | |
1523 | + + "&QUERY_LAYERS=" + tema.value | |
1529 | 1524 | + "&HEIGHT=" + i3GEO.parametros.h |
1530 | 1525 | + "&WIDTH=" + i3GEO.parametros.w |
1531 | 1526 | + "&BBOX=" + i3geoOL.getExtent().toBBOX().split(",").join(" ") | ... | ... |
js/interface.js
... | ... | @@ -735,9 +735,15 @@ i3GEO.Interface = |
735 | 735 | minWidth : '200px', |
736 | 736 | baloes : [] |
737 | 737 | }, |
738 | - balao : function(texto, completo, x, y) { | |
738 | + balao : function(texto, completo, x, y, botaoMais, botaoProp) { | |
739 | 739 | var icone, painel, b, cabecalho, conteudo, p = i3GEO.Interface.openlayers.BALAOPROP, removeBaloes; |
740 | 740 | |
741 | + if(botaoMais === undefined){ | |
742 | + botaoMais = true; | |
743 | + } | |
744 | + if(botaoProp === undefined){ | |
745 | + botaoProp = true; | |
746 | + } | |
741 | 747 | removeBaloes = function() { |
742 | 748 | var t, n = i3GEO.Interface.openlayers.BALAOPROP.baloes.length, i; |
743 | 749 | for (i = 0; i < n; i++) { |
... | ... | @@ -775,25 +781,29 @@ i3GEO.Interface = |
775 | 781 | }; |
776 | 782 | cabecalho.appendChild(icone); |
777 | 783 | // icone das propriedades |
778 | - icone = document.createElement("div"); | |
779 | - icone.className = "i3GEOiconeFerramentas"; | |
780 | - icone.style.left = "3px"; | |
781 | - icone.onclick = function() { | |
782 | - i3GEO.janela.prompt($trad("tolerancia"), function() { | |
783 | - i3GEO.mapa.RESOLUCAOTIP = $i("i3GEOjanelaprompt").value; | |
784 | - }, i3GEO.mapa.RESOLUCAOTIP); | |
785 | - return false; | |
786 | - }; | |
787 | - cabecalho.appendChild(icone); | |
784 | + if(botaoProp === true){ | |
785 | + icone = document.createElement("div"); | |
786 | + icone.className = "i3GEOiconeFerramentas"; | |
787 | + icone.style.left = "3px"; | |
788 | + icone.onclick = function() { | |
789 | + i3GEO.janela.prompt($trad("tolerancia"), function() { | |
790 | + i3GEO.mapa.RESOLUCAOTIP = $i("i3GEOjanelaprompt").value; | |
791 | + }, i3GEO.mapa.RESOLUCAOTIP); | |
792 | + return false; | |
793 | + }; | |
794 | + cabecalho.appendChild(icone); | |
795 | + } | |
788 | 796 | // icone mais info |
789 | - icone = document.createElement("div"); | |
790 | - icone.className = "i3GEOiconeMais"; | |
791 | - icone.style.left = "9px"; | |
792 | - icone.onclick = function() { | |
793 | - i3GEO.janela.mensagemSimples("<div style='overflow:auto;height:100%'>" + completo + "</div>", ""); | |
794 | - return false; | |
795 | - }; | |
796 | - cabecalho.appendChild(icone); | |
797 | + if(botaoMais === true){ | |
798 | + icone = document.createElement("div"); | |
799 | + icone.className = "i3GEOiconeMais"; | |
800 | + icone.style.left = "9px"; | |
801 | + icone.onclick = function() { | |
802 | + i3GEO.janela.mensagemSimples("<div style='overflow:auto;height:100%'>" + completo + "</div>", ""); | |
803 | + return false; | |
804 | + }; | |
805 | + cabecalho.appendChild(icone); | |
806 | + } | |
797 | 807 | // icone x |
798 | 808 | icone = document.createElement("div"); |
799 | 809 | icone.className = "ol-popup-closer"; | ... | ... |