Commit c2cffa75d7ef7549f98d302cee3cc45bfdff4f42
1 parent
28cecf2e
Exists in
master
and in
7 other branches
Conversão do editor vetorial de OL2 para OL3
Showing
1 changed file
with
144 additions
and
143 deletions
Show diff stats
ferramentas/editorol/editorol.js
| @@ -60,7 +60,7 @@ i3GEO.editorOL = | @@ -60,7 +60,7 @@ i3GEO.editorOL = | ||
| 60 | opacidade : 0.8, | 60 | opacidade : 0.8, |
| 61 | texto : "", | 61 | texto : "", |
| 62 | fillColor : "250,180,15", | 62 | fillColor : "250,180,15", |
| 63 | - strokeWidth : 2, | 63 | + strokeWidth : 5, |
| 64 | strokeColor : "250,150,0", | 64 | strokeColor : "250,150,0", |
| 65 | pointRadius : 4, | 65 | pointRadius : 4, |
| 66 | graphicName : "square", | 66 | graphicName : "square", |
| @@ -80,6 +80,8 @@ i3GEO.editorOL = | @@ -80,6 +80,8 @@ i3GEO.editorOL = | ||
| 80 | map : i3geoOL | 80 | map : i3geoOL |
| 81 | }), | 81 | }), |
| 82 | nomeFuncaoSalvar : "i3GEO.editorOL.salvaGeo()", | 82 | nomeFuncaoSalvar : "i3GEO.editorOL.salvaGeo()", |
| 83 | + //substituir por i3GEO.Interface.openlayers.fundoDefault() | ||
| 84 | + /* | ||
| 83 | e_oce : new ol.layer.Tile( | 85 | e_oce : new ol.layer.Tile( |
| 84 | { | 86 | { |
| 85 | title : "ESRI Ocean Basemap", | 87 | title : "ESRI Ocean Basemap", |
| @@ -163,6 +165,7 @@ i3GEO.editorOL = | @@ -163,6 +165,7 @@ i3GEO.editorOL = | ||
| 163 | }) | 165 | }) |
| 164 | }), | 166 | }), |
| 165 | fundo : "e_ims,e_wsm,ol_mma,ol_wms,top_wms", | 167 | fundo : "e_ims,e_wsm,ol_mma,ol_wms,top_wms", |
| 168 | + */ | ||
| 166 | kml : [], | 169 | kml : [], |
| 167 | layersIniciais : [], | 170 | layersIniciais : [], |
| 168 | //essa configuracao dos botoes afeta apenas o mashup | 171 | //essa configuracao dos botoes afeta apenas o mashup |
| @@ -976,35 +979,34 @@ i3GEO.editorOL = | @@ -976,35 +979,34 @@ i3GEO.editorOL = | ||
| 976 | i3GEO.util.comboTemas("editorOLcomboTemaEditavel", funcaoCombo, "editorOLondeComboTemaEditavel", "", false, "editavel"); | 979 | i3GEO.util.comboTemas("editorOLcomboTemaEditavel", funcaoCombo, "editorOLondeComboTemaEditavel", "", false, "editavel"); |
| 977 | } | 980 | } |
| 978 | }, | 981 | }, |
| 982 | + //muda a classe do botao para marca-lo como ativo | ||
| 983 | + marcaBotao : function(classeBotao){ | ||
| 984 | + //desmarca todos os botoes | ||
| 985 | + var i, n, botoes = $i("i3GEObarraEdicao").getElementsByTagName("div"); | ||
| 986 | + n = botoes.length; | ||
| 987 | + for(i = 0; i < n; i++){ | ||
| 988 | + botoes[i].className = botoes[i].className.replace("ItemActive","ItemInactive"); | ||
| 989 | + botoes[i].className = botoes[i].className.replace(classeBotao+"ItemInactive",classeBotao+"ItemActive"); | ||
| 990 | + } | ||
| 991 | + i3GEO.editorOL.removeInteracoes(); | ||
| 992 | + }, | ||
| 993 | + //interacoes criadas ao ativar algum botao | ||
| 994 | + //usado para remover as interacoes | ||
| 995 | + interacoes : [], | ||
| 996 | + removeInteracoes: function(){ | ||
| 997 | + var i, n; | ||
| 998 | + n = i3GEO.editorOL.interacoes.length; | ||
| 999 | + for(i = 0; i < n; i++){ | ||
| 1000 | + i3geoOL.removeInteraction(i3GEO.editorOL.interacoes[i]); | ||
| 1001 | + } | ||
| 1002 | + i3GEO.editorOL.interacoes = []; | ||
| 1003 | + }, | ||
| 979 | criaBotoes : function(botoes) { | 1004 | criaBotoes : function(botoes) { |
| 980 | if($i("i3GEObarraEdicao")){ | 1005 | if($i("i3GEObarraEdicao")){ |
| 981 | $i("i3GEObarraEdicao").style.display = "block"; | 1006 | $i("i3GEObarraEdicao").style.display = "block"; |
| 982 | return; | 1007 | return; |
| 983 | } | 1008 | } |
| 984 | - var largura = 30, temp, controles = [], adiciona = true, sketchSymbolizers = { | ||
| 985 | - "Point" : { | ||
| 986 | - pointRadius : 4, | ||
| 987 | - graphicName : "square", | ||
| 988 | - fillColor : "white", | ||
| 989 | - fillOpacity : 1, | ||
| 990 | - strokeWidth : 1, | ||
| 991 | - strokeOpacity : 1, | ||
| 992 | - strokeColor : "#333333" | ||
| 993 | - }, | ||
| 994 | - "Line" : { | ||
| 995 | - strokeWidth : 3, | ||
| 996 | - strokeOpacity : 1, | ||
| 997 | - strokeColor : "#666666", | ||
| 998 | - strokeDashstyle : "dash" | ||
| 999 | - }, | ||
| 1000 | - "Polygon" : { | ||
| 1001 | - strokeWidth : 2, | ||
| 1002 | - strokeOpacity : 1, | ||
| 1003 | - strokeColor : "#666666", | ||
| 1004 | - fillColor : "white", | ||
| 1005 | - fillOpacity : 0.3 | ||
| 1006 | - } | ||
| 1007 | - }; | 1009 | + var temp, controles = [], adiciona = true; |
| 1008 | //cria o painel onde entrarão os icones | 1010 | //cria o painel onde entrarão os icones |
| 1009 | i3GEOpanelEditor = document.createElement("div"); | 1011 | i3GEOpanelEditor = document.createElement("div"); |
| 1010 | i3GEOpanelEditor.id = "i3GEObarraEdicao"; | 1012 | i3GEOpanelEditor.id = "i3GEObarraEdicao"; |
| @@ -1018,24 +1020,24 @@ i3GEO.editorOL = | @@ -1018,24 +1020,24 @@ i3GEO.editorOL = | ||
| 1018 | YAHOO.procura.container.panel.show(); | 1020 | YAHOO.procura.container.panel.show(); |
| 1019 | }; | 1021 | }; |
| 1020 | i3GEOpanelEditor.appendChild(temp); | 1022 | i3GEOpanelEditor.appendChild(temp); |
| 1021 | - largura += 30; | ||
| 1022 | } | 1023 | } |
| 1023 | if (botoes.pan === true) { | 1024 | if (botoes.pan === true) { |
| 1024 | temp = document.createElement("div"); | 1025 | temp = document.createElement("div"); |
| 1025 | temp.className = "editorOLpanItemInactive olButton"; | 1026 | temp.className = "editorOLpanItemInactive olButton"; |
| 1026 | temp.title = "pan"; | 1027 | temp.title = "pan"; |
| 1027 | temp.onclick = function(){ | 1028 | temp.onclick = function(){ |
| 1029 | + i3GEO.editorOL.marcaBotao("editorOLpan"); | ||
| 1028 | }; | 1030 | }; |
| 1029 | i3GEOpanelEditor.appendChild(temp); | 1031 | i3GEOpanelEditor.appendChild(temp); |
| 1030 | - largura += 30; | ||
| 1031 | } | 1032 | } |
| 1032 | if (botoes.zoombox === true) { | 1033 | if (botoes.zoombox === true) { |
| 1033 | temp = document.createElement("div"); | 1034 | temp = document.createElement("div"); |
| 1034 | temp.className = "editorOLzoomboxItemInactive olButton"; | 1035 | temp.className = "editorOLzoomboxItemInactive olButton"; |
| 1035 | temp.title = "zoombox"; | 1036 | temp.title = "zoombox"; |
| 1036 | - temp.onclick = i3GEO.barraDeBotoes.defBotao("zoomli").funcaoonclick; | 1037 | + temp.onclick = function(){ |
| 1038 | + i3GEO.barraDeBotoes.defBotao("zoomli").funcaoonclick; | ||
| 1039 | + }; | ||
| 1037 | i3GEOpanelEditor.appendChild(temp); | 1040 | i3GEOpanelEditor.appendChild(temp); |
| 1038 | - largura += 30; | ||
| 1039 | } | 1041 | } |
| 1040 | if (botoes.zoomtot === true) { | 1042 | if (botoes.zoomtot === true) { |
| 1041 | temp = document.createElement("div"); | 1043 | temp = document.createElement("div"); |
| @@ -1049,7 +1051,6 @@ i3GEO.editorOL = | @@ -1049,7 +1051,6 @@ i3GEO.editorOL = | ||
| 1049 | } | 1051 | } |
| 1050 | }; | 1052 | }; |
| 1051 | i3GEOpanelEditor.appendChild(temp); | 1053 | i3GEOpanelEditor.appendChild(temp); |
| 1052 | - largura += 30; | ||
| 1053 | } | 1054 | } |
| 1054 | if (botoes.zoomin === true) { | 1055 | if (botoes.zoomin === true) { |
| 1055 | temp = document.createElement("div"); | 1056 | temp = document.createElement("div"); |
| @@ -1060,7 +1061,6 @@ i3GEO.editorOL = | @@ -1060,7 +1061,6 @@ i3GEO.editorOL = | ||
| 1060 | v.setZoom(v.getZoom() + 1); | 1061 | v.setZoom(v.getZoom() + 1); |
| 1061 | }; | 1062 | }; |
| 1062 | i3GEOpanelEditor.appendChild(temp); | 1063 | i3GEOpanelEditor.appendChild(temp); |
| 1063 | - largura += 30; | ||
| 1064 | } | 1064 | } |
| 1065 | if (botoes.zoomout === true) { | 1065 | if (botoes.zoomout === true) { |
| 1066 | temp = document.createElement("div"); | 1066 | temp = document.createElement("div"); |
| @@ -1071,7 +1071,6 @@ i3GEO.editorOL = | @@ -1071,7 +1071,6 @@ i3GEO.editorOL = | ||
| 1071 | v.setZoom(v.getZoom() - 1); | 1071 | v.setZoom(v.getZoom() - 1); |
| 1072 | }; | 1072 | }; |
| 1073 | i3GEOpanelEditor.appendChild(temp); | 1073 | i3GEOpanelEditor.appendChild(temp); |
| 1074 | - largura += 30; | ||
| 1075 | } | 1074 | } |
| 1076 | if (botoes.legenda === true) { | 1075 | if (botoes.legenda === true) { |
| 1077 | temp = document.createElement("div"); | 1076 | temp = document.createElement("div"); |
| @@ -1081,139 +1080,141 @@ i3GEO.editorOL = | @@ -1081,139 +1080,141 @@ i3GEO.editorOL = | ||
| 1081 | i3GEO.editorOL.mostraLegenda(); | 1080 | i3GEO.editorOL.mostraLegenda(); |
| 1082 | }; | 1081 | }; |
| 1083 | i3GEOpanelEditor.appendChild(temp); | 1082 | i3GEOpanelEditor.appendChild(temp); |
| 1084 | - largura += 30; | ||
| 1085 | } | 1083 | } |
| 1086 | if (botoes.distancia === true) { | 1084 | if (botoes.distancia === true) { |
| 1087 | temp = document.createElement("div"); | 1085 | temp = document.createElement("div"); |
| 1088 | temp.className = "editorOLdistanciaItemInactive olButton"; | 1086 | temp.className = "editorOLdistanciaItemInactive olButton"; |
| 1089 | temp.title = $trad("d21t"); | 1087 | temp.title = $trad("d21t"); |
| 1090 | - temp.onclick = i3GEO.barraDeBotoes.defBotao("mede").funcaoonclick; | 1088 | + temp.onclick = function(){ |
| 1089 | + i3GEO.editorOL.marcaBotao("editorOLdistancia"); | ||
| 1090 | + i3GEO.barraDeBotoes.defBotao("mede").funcaoonclick; | ||
| 1091 | + }; | ||
| 1091 | i3GEOpanelEditor.appendChild(temp); | 1092 | i3GEOpanelEditor.appendChild(temp); |
| 1092 | - largura += 30; | ||
| 1093 | } | 1093 | } |
| 1094 | if (botoes.area === true) { | 1094 | if (botoes.area === true) { |
| 1095 | temp = document.createElement("div"); | 1095 | temp = document.createElement("div"); |
| 1096 | temp.className = "editorOLareaItemInactive olButton"; | 1096 | temp.className = "editorOLareaItemInactive olButton"; |
| 1097 | temp.title = $trad("d21at"); | 1097 | temp.title = $trad("d21at"); |
| 1098 | - temp.onclick = i3GEO.barraDeBotoes.defBotao("area").funcaoonclick; | 1098 | + temp.onclick = function(){ |
| 1099 | + i3GEO.editorOL.marcaBotao("editorOLarea"); | ||
| 1100 | + i3GEO.barraDeBotoes.defBotao("area").funcaoonclick; | ||
| 1101 | + } | ||
| 1099 | i3GEOpanelEditor.appendChild(temp); | 1102 | i3GEOpanelEditor.appendChild(temp); |
| 1100 | - largura += 30; | ||
| 1101 | } | 1103 | } |
| 1102 | - i3GEOpanelEditor.style.width = largura + "px"; | ||
| 1103 | - i3GEO.editorOL.mapa.getViewport().getElementsByClassName("ol-overlaycontainer-stopevent")[0].appendChild(i3GEOpanelEditor); | ||
| 1104 | - | ||
| 1105 | - /* | ||
| 1106 | - | ||
| 1107 | if (botoes.linha === true) { | 1104 | if (botoes.linha === true) { |
| 1108 | - | ||
| 1109 | - button = new OpenLayers.Control.DrawFeature(i3GEO.desenho.layergrafico, OpenLayers.Handler.Path, { | ||
| 1110 | - displayClass : "editorOLlinha", | ||
| 1111 | - title : $trad("dlinha"), | ||
| 1112 | - type : OpenLayers.Control.TYPE_TOOL, | ||
| 1113 | - callbacks : { | ||
| 1114 | - done : function(feature) { | ||
| 1115 | - var f = new OpenLayers.Feature.Vector(feature); | ||
| 1116 | - f["attributes"] = { | ||
| 1117 | - opacidade : i3GEO.editorOL.simbologia.opacidade, | ||
| 1118 | - texto : i3GEO.editorOL.simbologia.texto, | ||
| 1119 | - fillColor : i3GEO.editorOL.simbologia.fillColor, | ||
| 1120 | - strokeWidth : i3GEO.editorOL.simbologia.strokeWidth, | ||
| 1121 | - strokeColor : i3GEO.editorOL.simbologia.strokeColor, | ||
| 1122 | - pointRadius : i3GEO.editorOL.simbologia.pointRadius, | ||
| 1123 | - graphicName : i3GEO.editorOL.simbologia.graphicName | ||
| 1124 | - }; | ||
| 1125 | - i3GEO.desenho.layergrafico.addFeatures([ | ||
| 1126 | - f | ||
| 1127 | - ]); | ||
| 1128 | - if (document.getElementById("panellistagEditor")) { | ||
| 1129 | - i3GEO.editorOL.listaGeometrias(); | ||
| 1130 | - } | ||
| 1131 | - i3GEO.editorOL.sobeLayersGraficos(); | 1105 | + temp = document.createElement("div"); |
| 1106 | + temp.className = "editorOLlinhaItemInactive olButton"; | ||
| 1107 | + temp.title = $trad("dlinha"); | ||
| 1108 | + temp.onclick = function(){ | ||
| 1109 | + i3GEO.editorOL.marcaBotao("editorOLlinha"); | ||
| 1110 | + var draw = new ol.interaction.Draw({ | ||
| 1111 | + type : "LineString" | ||
| 1112 | + }); | ||
| 1113 | + //adiciona a interacao para poder ser removida | ||
| 1114 | + i3GEO.editorOL.interacoes.push(draw); | ||
| 1115 | + i3GEO.Interface.openlayers.interacoes[0].setActive(false); | ||
| 1116 | + draw.on("drawend", function(evt) { | ||
| 1117 | + evt.feature.setStyle( | ||
| 1118 | + new ol.style.Style({ | ||
| 1119 | + stroke: new ol.style.Stroke({ | ||
| 1120 | + color: 'rgba(' + i3GEO.editorOL.simbologia.strokeColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', | ||
| 1121 | + width: i3GEO.editorOL.simbologia.strokeWidth | ||
| 1122 | + }), | ||
| 1123 | + fill: new ol.style.Fill({ | ||
| 1124 | + color: 'rgba(' + i3GEO.editorOL.simbologia.fillColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')' | ||
| 1125 | + }) | ||
| 1126 | + }) | ||
| 1127 | + ); | ||
| 1128 | + i3GEO.desenho.layergrafico.getSource().addFeature(evt.feature); | ||
| 1129 | + draw.setActive(false); | ||
| 1130 | + draw.setActive(true); | ||
| 1131 | + if (document.getElementById("panellistagEditor")) { | ||
| 1132 | + i3GEO.editorOL.listaGeometrias(); | ||
| 1132 | } | 1133 | } |
| 1133 | - } | ||
| 1134 | - }); | ||
| 1135 | - controles.push(button); | ||
| 1136 | - adiciona = true; | ||
| 1137 | - | 1134 | + }); |
| 1135 | + i3geoOL.addInteraction(draw); | ||
| 1136 | + }; | ||
| 1137 | + i3GEOpanelEditor.appendChild(temp); | ||
| 1138 | } | 1138 | } |
| 1139 | + //TODO falta definir imagem | ||
| 1139 | if (botoes.ponto === true) { | 1140 | if (botoes.ponto === true) { |
| 1140 | - | ||
| 1141 | - button = new OpenLayers.Control.DrawFeature(i3GEO.desenho.layergrafico, OpenLayers.Handler.Point, { | ||
| 1142 | - displayClass : "editorOLponto", | ||
| 1143 | - title : $trad("dponto"), | ||
| 1144 | - type : OpenLayers.Control.TYPE_TOOL, | ||
| 1145 | - callbacks : { | ||
| 1146 | - done : function(feature) { | ||
| 1147 | - var f, style_mark; | ||
| 1148 | - if (i3GEO.editorOL.simbologia.externalGraphic != "") { | ||
| 1149 | - style_mark = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']); | ||
| 1150 | - style_mark.externalGraphic = i3GEO.editorOL.simbologia.externalGraphic; | ||
| 1151 | - style_mark.graphicWidth = i3GEO.editorOL.simbologia.graphicWidth; | ||
| 1152 | - style_mark.graphicHeight = i3GEO.editorOL.simbologia.graphicHeight; | ||
| 1153 | - style_mark.fillOpacity = i3GEO.editorOL.simbologia.opacidade; | ||
| 1154 | - f = new OpenLayers.Feature.Vector(feature, null, style_mark); | ||
| 1155 | - } else { | ||
| 1156 | - f = new OpenLayers.Feature.Vector(feature); | ||
| 1157 | - } | ||
| 1158 | - f["attributes"] = { | ||
| 1159 | - opacidade : i3GEO.editorOL.simbologia.opacidade, | ||
| 1160 | - texto : i3GEO.editorOL.simbologia.texto, | ||
| 1161 | - fillColor : i3GEO.editorOL.simbologia.fillColor, | ||
| 1162 | - strokeWidth : i3GEO.editorOL.simbologia.strokeWidth, | ||
| 1163 | - strokeColor : i3GEO.editorOL.simbologia.strokeColor, | ||
| 1164 | - pointRadius : i3GEO.editorOL.simbologia.pointRadius, | ||
| 1165 | - graphicName : i3GEO.editorOL.simbologia.graphicName, | ||
| 1166 | - externalGraphic : i3GEO.editorOL.simbologia.externalGraphic, | ||
| 1167 | - graphicHeight : i3GEO.editorOL.simbologia.graphicHeight, | ||
| 1168 | - graphicWidth : i3GEO.editorOL.simbologia.graphicWidth | ||
| 1169 | - }; | ||
| 1170 | - i3GEO.desenho.layergrafico.addFeatures([ | ||
| 1171 | - f | ||
| 1172 | - ]); | ||
| 1173 | - if (document.getElementById("panellistagEditor")) { | ||
| 1174 | - i3GEO.editorOL.listaGeometrias(); | ||
| 1175 | - } | ||
| 1176 | - i3GEO.editorOL.sobeLayersGraficos(); | 1141 | + temp = document.createElement("div"); |
| 1142 | + temp.className = "editorOLpontoItemInactive olButton"; | ||
| 1143 | + temp.title = $trad("dponto"); | ||
| 1144 | + temp.onclick = function(){ | ||
| 1145 | + i3GEO.editorOL.marcaBotao("editorOLponto"); | ||
| 1146 | + var draw = new ol.interaction.Draw({ | ||
| 1147 | + type : "Point" | ||
| 1148 | + }); | ||
| 1149 | + //adiciona a interacao para poder ser removida | ||
| 1150 | + i3GEO.editorOL.interacoes.push(draw); | ||
| 1151 | + i3GEO.Interface.openlayers.interacoes[0].setActive(false); | ||
| 1152 | + draw.on("drawend", function(evt) { | ||
| 1153 | + evt.feature.setStyle( | ||
| 1154 | + new ol.style.Style({ | ||
| 1155 | + image: new ol.style.Circle({ | ||
| 1156 | + radius: i3GEO.editorOL.simbologia.pointRadius, | ||
| 1157 | + fill: new ol.style.Fill({ | ||
| 1158 | + color: 'rgba(' + i3GEO.editorOL.simbologia.fillColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')' | ||
| 1159 | + }), | ||
| 1160 | + stroke: new ol.style.Stroke({ | ||
| 1161 | + color: 'rgba(' + i3GEO.editorOL.simbologia.strokeColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', | ||
| 1162 | + width: i3GEO.editorOL.simbologia.pointRadius / 3 | ||
| 1163 | + }) | ||
| 1164 | + }) | ||
| 1165 | + }) | ||
| 1166 | + ); | ||
| 1167 | + i3GEO.desenho.layergrafico.getSource().addFeature(evt.feature); | ||
| 1168 | + draw.setActive(false); | ||
| 1169 | + draw.setActive(true); | ||
| 1170 | + if (document.getElementById("panellistagEditor")) { | ||
| 1171 | + i3GEO.editorOL.listaGeometrias(); | ||
| 1177 | } | 1172 | } |
| 1178 | - } | ||
| 1179 | - }); | ||
| 1180 | - controles.push(button); | ||
| 1181 | - adiciona = true; | ||
| 1182 | - | 1173 | + }); |
| 1174 | + i3geoOL.addInteraction(draw); | ||
| 1175 | + }; | ||
| 1176 | + i3GEOpanelEditor.appendChild(temp); | ||
| 1183 | } | 1177 | } |
| 1184 | if (botoes.poligono === true) { | 1178 | if (botoes.poligono === true) { |
| 1185 | - | ||
| 1186 | - button = new OpenLayers.Control.DrawFeature(i3GEO.desenho.layergrafico, OpenLayers.Handler.Polygon, { | ||
| 1187 | - displayClass : "editorOLpoligono", | ||
| 1188 | - title : $trad("dpol"), | ||
| 1189 | - type : OpenLayers.Control.TYPE_TOOL, | ||
| 1190 | - // handlerOptions: {holeModifier: "altKey"}, | ||
| 1191 | - callbacks : { | ||
| 1192 | - done : function(feature) { | ||
| 1193 | - var f = new OpenLayers.Feature.Vector(feature); | ||
| 1194 | - f["attributes"] = { | ||
| 1195 | - opacidade : i3GEO.editorOL.simbologia.opacidade, | ||
| 1196 | - texto : i3GEO.editorOL.simbologia.texto, | ||
| 1197 | - fillColor : i3GEO.editorOL.simbologia.fillColor, | ||
| 1198 | - strokeWidth : i3GEO.editorOL.simbologia.strokeWidth, | ||
| 1199 | - strokeColor : i3GEO.editorOL.simbologia.strokeColor, | ||
| 1200 | - pointRadius : i3GEO.editorOL.simbologia.pointRadius, | ||
| 1201 | - graphicName : i3GEO.editorOL.simbologia.graphicName | ||
| 1202 | - }; | ||
| 1203 | - i3GEO.desenho.layergrafico.addFeatures([ | ||
| 1204 | - f | ||
| 1205 | - ]); | ||
| 1206 | - if (document.getElementById("panellistagEditor")) { | ||
| 1207 | - i3GEO.editorOL.listaGeometrias(); | ||
| 1208 | - } | ||
| 1209 | - i3GEO.editorOL.sobeLayersGraficos(); | 1179 | + temp = document.createElement("div"); |
| 1180 | + temp.className = "editorOLpoligonoItemInactive olButton"; | ||
| 1181 | + temp.title = $trad("dpoligono"); | ||
| 1182 | + temp.onclick = function(){ | ||
| 1183 | + i3GEO.editorOL.marcaBotao("editorOLpoligono"); | ||
| 1184 | + var draw = new ol.interaction.Draw({ | ||
| 1185 | + type : "Polygon" | ||
| 1186 | + }); | ||
| 1187 | + //adiciona a interacao para poder ser removida | ||
| 1188 | + i3GEO.editorOL.interacoes.push(draw); | ||
| 1189 | + i3GEO.Interface.openlayers.interacoes[0].setActive(false); | ||
| 1190 | + draw.on("drawend", function(evt) { | ||
| 1191 | + evt.feature.setStyle( | ||
| 1192 | + new ol.style.Style({ | ||
| 1193 | + stroke: new ol.style.Stroke({ | ||
| 1194 | + color: 'rgba(' + i3GEO.editorOL.simbologia.strokeColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', | ||
| 1195 | + width: i3GEO.editorOL.simbologia.strokeWidth | ||
| 1196 | + }), | ||
| 1197 | + fill: new ol.style.Fill({ | ||
| 1198 | + color: 'rgba(' + i3GEO.editorOL.simbologia.fillColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')' | ||
| 1199 | + }) | ||
| 1200 | + }) | ||
| 1201 | + ); | ||
| 1202 | + i3GEO.desenho.layergrafico.getSource().addFeature(evt.feature); | ||
| 1203 | + draw.setActive(false); | ||
| 1204 | + draw.setActive(true); | ||
| 1205 | + if (document.getElementById("panellistagEditor")) { | ||
| 1206 | + i3GEO.editorOL.listaGeometrias(); | ||
| 1210 | } | 1207 | } |
| 1211 | - } | ||
| 1212 | - }); | ||
| 1213 | - controles.push(button); | ||
| 1214 | - adiciona = true; | ||
| 1215 | - | 1208 | + }); |
| 1209 | + i3geoOL.addInteraction(draw); | ||
| 1210 | + }; | ||
| 1211 | + i3GEOpanelEditor.appendChild(temp); | ||
| 1216 | } | 1212 | } |
| 1213 | + | ||
| 1214 | + i3GEOpanelEditor.style.width = i3GEOpanelEditor.getElementsByTagName("div").length * 33 + "px"; | ||
| 1215 | + i3GEO.editorOL.mapa.getViewport().getElementsByClassName("ol-overlaycontainer-stopevent")[0].appendChild(i3GEOpanelEditor); | ||
| 1216 | + | ||
| 1217 | + /* | ||
| 1217 | if (botoes.texto === true) { | 1218 | if (botoes.texto === true) { |
| 1218 | 1219 | ||
| 1219 | button = new OpenLayers.Control.DrawFeature(i3GEO.desenho.layergrafico, OpenLayers.Handler.Point, { | 1220 | button = new OpenLayers.Control.DrawFeature(i3GEO.desenho.layergrafico, OpenLayers.Handler.Point, { |