Commit 67ddb62b8f8deb57c1aeeb61ddbb1d3513f8d78b
1 parent
b7a38ce3
Exists in
master
and in
7 other branches
--no commit message
Showing
6 changed files
with
86 additions
and
1 deletions
Show diff stats
classesjs/classe_barradebotoes.js
| @@ -1081,12 +1081,14 @@ i3GEO.barraDeBotoes = { | @@ -1081,12 +1081,14 @@ i3GEO.barraDeBotoes = { | ||
| 1081 | 'ponto':true, | 1081 | 'ponto':true, |
| 1082 | 'poligono':true, | 1082 | 'poligono':true, |
| 1083 | 'edita':true, | 1083 | 'edita':true, |
| 1084 | + 'selecao':true, | ||
| 1084 | 'apaga':true, | 1085 | 'apaga':true, |
| 1085 | 'procura':false, | 1086 | 'procura':false, |
| 1086 | 'propriedades':true, | 1087 | 'propriedades':true, |
| 1087 | 'salva':true, | 1088 | 'salva':true, |
| 1088 | 'ajuda':true, | 1089 | 'ajuda':true, |
| 1089 | - 'fecha':true | 1090 | + 'fecha':true, |
| 1091 | + 'uniao':true | ||
| 1090 | }; | 1092 | }; |
| 1091 | i3GEO.editorOL.layergrafico = new OpenLayers.Layer.Vector("Edição",{displayInLayerSwitcher:false,visibility:true}); | 1093 | i3GEO.editorOL.layergrafico = new OpenLayers.Layer.Vector("Edição",{displayInLayerSwitcher:false,visibility:true}); |
| 1092 | i3GEO.editorOL.mapa.addLayers([i3GEO.editorOL.layergrafico]); | 1094 | i3GEO.editorOL.mapa.addLayers([i3GEO.editorOL.layergrafico]); |
mashups/openlayers.css
| @@ -112,6 +112,12 @@ background-position:-522px 0; | @@ -112,6 +112,12 @@ background-position:-522px 0; | ||
| 112 | .olControlEditingToolbar1 .propriedadesItemActive { | 112 | .olControlEditingToolbar1 .propriedadesItemActive { |
| 113 | background-position:-522px -28px; | 113 | background-position:-522px -28px; |
| 114 | } | 114 | } |
| 115 | +.olControlEditingToolbar1 .uniaoItemInactive { | ||
| 116 | + background-position:-551px 0; | ||
| 117 | +} | ||
| 118 | +.olControlEditingToolbar1 .uniaoItemActive { | ||
| 119 | + background-position:-551px -28px; | ||
| 120 | +} | ||
| 115 | .olControlEditingToolbar1 { | 121 | .olControlEditingToolbar1 { |
| 116 | width:600px; | 122 | width:600px; |
| 117 | float:right; | 123 | float:right; |
mashups/openlayers.js.php
| @@ -52,8 +52,10 @@ i3GEO.editorOL = { | @@ -52,8 +52,10 @@ i3GEO.editorOL = { | ||
| 52 | 'ponto':true, | 52 | 'ponto':true, |
| 53 | 'poligono':true, | 53 | 'poligono':true, |
| 54 | 'edita':true, | 54 | 'edita':true, |
| 55 | + 'uniao':true, | ||
| 55 | 'apaga':true, | 56 | 'apaga':true, |
| 56 | 'procura':true, | 57 | 'procura':true, |
| 58 | + 'selecao':true, | ||
| 57 | 'salva':true, | 59 | 'salva':true, |
| 58 | 'ajuda':true, | 60 | 'ajuda':true, |
| 59 | 'propriedades':true, | 61 | 'propriedades':true, |
| @@ -617,6 +619,17 @@ i3GEO.editorOL = { | @@ -617,6 +619,17 @@ i3GEO.editorOL = { | ||
| 617 | controles.push(button); | 619 | controles.push(button); |
| 618 | adiciona = true; | 620 | adiciona = true; |
| 619 | } | 621 | } |
| 622 | + if(botoes.uniao===true){ | ||
| 623 | + button = new OpenLayers.Control.Button({ | ||
| 624 | + displayClass: "uniao", | ||
| 625 | + trigger: function(){ | ||
| 626 | + i3GEO.editorOL.carregajts("i3GEO.editorOL.uniao()"); | ||
| 627 | + }, | ||
| 628 | + title: "Une geometrias" | ||
| 629 | + }); | ||
| 630 | + controles.push(button); | ||
| 631 | + adiciona = true; | ||
| 632 | + } | ||
| 620 | //botao de seleção | 633 | //botao de seleção |
| 621 | if(botoes.selecao===true){ | 634 | if(botoes.selecao===true){ |
| 622 | button = new OpenLayers.Control.SelectFeature( | 635 | button = new OpenLayers.Control.SelectFeature( |
| @@ -839,6 +852,63 @@ i3GEO.editorOL = { | @@ -839,6 +852,63 @@ i3GEO.editorOL = { | ||
| 839 | if(temp.checked === true) | 852 | if(temp.checked === true) |
| 840 | {i3GEOOLsplit.activate();} | 853 | {i3GEOOLsplit.activate();} |
| 841 | }, | 854 | }, |
| 855 | + uniao: function(){ | ||
| 856 | + var geosel = i3GEO.editorOL.layergrafico.selectedFeatures, | ||
| 857 | + polis,linhas,pontos,uniaopolis,uniaolinhas,uniaopontos; | ||
| 858 | + if(geosel.length > 1){ | ||
| 859 | + polis = i3GEO.editorOL.retornaGeometriasTipo(geosel,"OpenLayers.Geometry.Polygon"); | ||
| 860 | + linhas = i3GEO.editorOL.retornaGeometriasTipo(geosel,"OpenLayers.Geometry.LineString"); | ||
| 861 | + pontos = i3GEO.editorOL.retornaGeometriasTipo(geosel,"OpenLayers.Geometry.Point"); | ||
| 862 | + if(polis) | ||
| 863 | + {uniaopolis = i3GEO.editorOL.uniaojts(polis);} | ||
| 864 | + if(linhas) | ||
| 865 | + {uniaolinhas = i3GEO.editorOL.uniaojts(linhas);} | ||
| 866 | + if(pontos) | ||
| 867 | + {uniaopontos = i3GEO.editorOL.uniaojts(pontos);} | ||
| 868 | + if(uniaopolis) | ||
| 869 | + {i3GEO.editorOL.layergrafico.addFeatures(uniaopolis);} | ||
| 870 | + if(uniaolinhas) | ||
| 871 | + {i3GEO.editorOL.layergrafico.addFeatures(uniaolinhas);} | ||
| 872 | + if(uniaopontos) | ||
| 873 | + {i3GEO.editorOL.layergrafico.addFeatures(uniaopontos);} | ||
| 874 | + } | ||
| 875 | + else | ||
| 876 | + {alert("Selecione pelo menos dois elementos");} | ||
| 877 | + }, | ||
| 878 | + uniaojts: function(geoms){ | ||
| 879 | + var n = geoms.length, | ||
| 880 | + rwkt = new jsts.io.WKTReader(), | ||
| 881 | + wwkt = new jsts.io.WKTWriter(), | ||
| 882 | + fwkt = new OpenLayers.Format.WKT(), | ||
| 883 | + wkt, | ||
| 884 | + g, | ||
| 885 | + i,uniao; | ||
| 886 | + if(n > 1){ | ||
| 887 | + wkt = fwkt.write(geoms[0]); | ||
| 888 | + alert(wkt) | ||
| 889 | + uniao = rwkt.read(wkt); | ||
| 890 | + for(i=1;i <= n;i++){ | ||
| 891 | + wkt = fwkt.write(geoms[i]); | ||
| 892 | + g = readerwkt.read(wkt); | ||
| 893 | + uniao = uniao.union(g); | ||
| 894 | + } | ||
| 895 | + uniao = wwkt.write(uniao); | ||
| 896 | + return [fwkt.read(uniao)]; | ||
| 897 | + } | ||
| 898 | + else | ||
| 899 | + {return false;} | ||
| 900 | + }, | ||
| 901 | + retornaGeometriasTipo: function(features,tipo){ | ||
| 902 | + var n = features.length, | ||
| 903 | + lista = [], | ||
| 904 | + i,temp; | ||
| 905 | + for(i=0;i<n;i++){ | ||
| 906 | + temp = features[i].geometry; | ||
| 907 | + if(temp.CLASS_NAME == tipo) | ||
| 908 | + {lista.push(temp);} | ||
| 909 | + } | ||
| 910 | + return lista; | ||
| 911 | + }, | ||
| 842 | flashFeatures: function(features, index) { | 912 | flashFeatures: function(features, index) { |
| 843 | if(!index) { | 913 | if(!index) { |
| 844 | index = 0; | 914 | index = 0; |
| @@ -855,5 +925,8 @@ i3GEO.editorOL = { | @@ -855,5 +925,8 @@ i3GEO.editorOL = { | ||
| 855 | if(index <= features.length) { | 925 | if(index <= features.length) { |
| 856 | window.setTimeout(function() {i3GEO.editorOL.flashFeatures(features, index);}, 75); | 926 | window.setTimeout(function() {i3GEO.editorOL.flashFeatures(features, index);}, 75); |
| 857 | } | 927 | } |
| 928 | + }, | ||
| 929 | + carregajts: function(funcao){ | ||
| 930 | + i3GEO.util.scriptTag(i3GEO.configura.locaplic+"/pacotes/jsts/jstsi3geo.js",funcao,"i3GEOjts",true); | ||
| 858 | } | 931 | } |
| 859 | }; | 932 | }; |
| 860 | \ No newline at end of file | 933 | \ No newline at end of file |
mashups/openlayers.php
| @@ -65,6 +65,8 @@ if(isset($botoes)){ | @@ -65,6 +65,8 @@ if(isset($botoes)){ | ||
| 65 | {$objBotoes[] = "'poligono':true";} | 65 | {$objBotoes[] = "'poligono':true";} |
| 66 | if(in_array("edita",$botoes)) | 66 | if(in_array("edita",$botoes)) |
| 67 | {$objBotoes[] = "'edita':true";} | 67 | {$objBotoes[] = "'edita':true";} |
| 68 | + if(in_array("uniao",$botoes)) | ||
| 69 | + {$objBotoes[] = "'uniao':true";} | ||
| 68 | if(in_array("apaga",$botoes)) | 70 | if(in_array("apaga",$botoes)) |
| 69 | {$objBotoes[] = "'apaga':true";} | 71 | {$objBotoes[] = "'apaga':true";} |
| 70 | if(in_array("procura",$botoes)) | 72 | if(in_array("procura",$botoes)) |
| @@ -172,6 +174,7 @@ Parâmetros: | @@ -172,6 +174,7 @@ Parâmetros: | ||
| 172 | linha | 174 | linha |
| 173 | poligono | 175 | poligono |
| 174 | edita | 176 | edita |
| 177 | + uniao | ||
| 175 | apaga | 178 | apaga |
| 176 | captura | 179 | captura |
| 177 | procura | 180 | procura |
mashups/openlayers.png
ms_criamapa.php
| @@ -159,6 +159,7 @@ include_once ($caminho."classesphp/pega_variaveis.php"); | @@ -159,6 +159,7 @@ include_once ($caminho."classesphp/pega_variaveis.php"); | ||
| 159 | include_once ($caminho."classesphp/funcoes_gerais.php"); | 159 | include_once ($caminho."classesphp/funcoes_gerais.php"); |
| 160 | if(!isset($dir_tmp)) | 160 | if(!isset($dir_tmp)) |
| 161 | {include_once ($caminho."ms_configura.php");} | 161 | {include_once ($caminho."ms_configura.php");} |
| 162 | + | ||
| 162 | if (!isset($debug)) | 163 | if (!isset($debug)) |
| 163 | {error_reporting(0);$debug="nao";} | 164 | {error_reporting(0);$debug="nao";} |
| 164 | else | 165 | else |