From 2d8520f71bff2d9efdbd29322566d0a35ee2228e Mon Sep 17 00:00:00 2001 From: edmarmoretti Date: Thu, 31 Aug 2017 11:03:24 -0300 Subject: [PATCH] Correção no estilo e nas mensagens enviadas ao usuário pela opção de salvar geometrias do editor vetorial --- ferramentas/editorol/editorol.js | 4919 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- js/dicionario.js | 2 +- 2 files changed, 2470 insertions(+), 2451 deletions(-) diff --git a/ferramentas/editorol/editorol.js b/ferramentas/editorol/editorol.js index ace1792..1689933 100755 --- a/ferramentas/editorol/editorol.js +++ b/ferramentas/editorol/editorol.js @@ -41,705 +41,705 @@ */ if (!i3GEO || typeof (i3GEO) === 'undefined') { - var i3GEO = {}; - i3GEO.Interface = {}; - navn = false; - navm = false; - $i = function(id) { - return document.getElementById(id); - }; - app = navigator.appName.substring(0, 1); - if (app === 'N') { - navn = true; - } else { - navm = true; - } + var i3GEO = {}; + i3GEO.Interface = {}; + navn = false; + navm = false; + $i = function(id) { + return document.getElementById(id); + }; + app = navigator.appName.substring(0, 1); + if (app === 'N') { + navn = true; + } else { + navm = true; + } } i3GEO.editorOL = - { - MUSTACHESALVAGEOMETRIAS: "", - MUSTACHEFERRAMENTAS: "", - MUSTACHEPROPRIEDADES: "", - layerDefault: "", - simbologia : { - opacidade : 0.8, - texto : "", - fillColor : "250,180,15", - strokeWidth : 5, - strokeColor : "250,150,0", - pointRadius : 4, - graphicName : "square", - fontSize : "12px", - fontColor : "0,0,0", - externalGraphic : "", - graphicHeight : 25, - graphicWidth : 25 - }, - backup : new ol.layer.Vector({ - source : new ol.source.Vector({ - features : new ol.Collection(), - useSpatialIndex : false, - name : "Backup" - }), - //map : i3geoOL, - visible : false - }), - e_oce : new ol.layer.Tile({ - title : "ESRI Ocean Basemap", - visible : false, - isBaseLayer : true, - name : "oce", - source : new ol.source.TileArcGISRest({ - url : "http://server.arcgisonline.com/ArcGIS/rest/services/Ocean_Basemap/MapServer", - attributions: [ - new ol.Attribution({ - html: 'Tiles © ArcGIS' - }) - ] - }) - }), - e_ims : new ol.layer.Tile({ - title : "ESRI Imagery World 2D", - visible : false, - isBaseLayer : true, - name : "ims", - source : new ol.source.TileArcGISRest({ - url : "http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer", - attributions: [ - new ol.Attribution({ - html: 'Tiles © ArcGIS' - }) - ] - }) - }), - e_wsm : new ol.layer.Tile({ - title : "ESRI World Street Map", - visible : false, - isBaseLayer : true, - name : "wsm", - source : new ol.source.TileArcGISRest({ - url : "http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer", - attributions: [ - new ol.Attribution({ - html: 'Tiles © ArcGIS' - }) - ] - }) - }), - ol_mma : new ol.layer.Tile({ - title : "Base carto MMA", - visible : false, - isBaseLayer : true, - name : "bra", - source : new ol.source.TileWMS({ - url : "http://mapas.mma.gov.br/cgi-bin/mapserv?map=/opt/www/html/webservices/baseraster.map&", - params : { - 'layers' : "baseraster", - 'srs' : "EPSG:4326", - 'format' : "image/png" - } - }) - }), - e_tms : new ol.layer.Tile({ - title : "OSGEO", - visible : false, - isBaseLayer : true, - name : "tms", - source : new ol.source.TileWMS({ - url : "http://tilecache.osgeo.org/wms-c/Basic.py/", - params : { - 'layers' : "basic", - 'type' : "png", - 'srs' : "EPSG:4326", - 'format' : "image/png", - 'VERSION' : '1.1.1' - }, - attributions: [ - new ol.Attribution({ - html: '© 2006-2010, TileCache Contributors' - }) - ] - }) - }), - top_wms : new ol.layer.Tile({ - title : "Toponímia MMA", - visible : false, - isBaseLayer : true, - name : "bra", - source : new ol.source.TileWMS({ - url : "http://mapas.mma.gov.br/cgi-bin/mapserv?map=/opt/www/html/webservices/baseref.map&", - params : { - 'layers' : "base", - 'srs' : "EPSG:4326", - 'format' : "image/png" - } - }) - }), - est_wms : new ol.layer.Tile({ - title : "Estados do Brasil", - visible : false, - isBaseLayer : true, - name : "bra", - source : new ol.source.TileWMS({ - url : "http://mapas.mma.gov.br/i3geo/ogc.php?tema=estadosl&", - params : { - 'layers' : "estadosl", - 'srs' : "EPSG:4326", - 'format' : "image/png" - } - }) - }), - fundo: "e_ims,e_wsm,ol_mma,ol_wms,top_wms,est_wms,e_oce", - nomeFuncaoSalvar : "i3GEO.editorOL.salvaGeo()", - kml : [], - layersIniciais : [], - //essa configuracao dos botoes afeta apenas o mashup - //para a configuração do editor dentro de um mapa normal, veja i3GEO.barraDebotoes.editor.ativaPainel() - botoes : { - 'imprimir': false, - 'grid': false, - 'pan' : false, - 'zoombox' : false, - 'zoomtot' : false, - 'zoomin' : false, - 'zoomout' : false, - 'distancia' : false, - 'area' : false, - 'identifica' : false, - 'linha' : true, - 'ponto' : true, - 'poligono' : true, - 'texto' : true, - 'edita' : true, - 'listag' : true, - 'corta' : true, - 'apaga' : true, - 'procura' : false, - 'selecao' : true, - 'selecaotudo' : true, - 'salva' : true, - 'ajuda' : true, - 'propriedades' : true, - 'fecha' : false, - 'tools' : true, - 'undo' : false, - 'frente' : false, - 'legenda' : false, - 'rodadomouse' : true, - 'novaaba' : false - }, - pontos : [], - marca : "../pacotes/openlayers/img/marker-gold.png", - controles : [], - tiles : true, - incluilayergrafico : true, - ativalayerswitcher : false, - ativarodadomouse : true, - legendahtml : false, - numzoom : 12, - minresolution : 0.703125, - maxext : "", - mapext : [-76.5125927, -39.3925675209, -29.5851853, 9.49014852081], - mapa : "", - //ids das features graficas selecionadas - idsSelecionados : [], - //backup das features - featuresBackup : [], - resolutions : [], - matrixIds : [], - //utilizado pelo mashup - inicia : function() { - var projectionExtent, size,resolutions,matrixIds,z; - if (i3GEO.Interface.openlayers.googleLike === true) { - projectionExtent = ol.proj.get('EPSG:3857').getExtent(); - } else { - projectionExtent = ol.proj.get('EPSG:4326').getExtent(); - } - size = ol.extent.getWidth(projectionExtent) / 256; - resolutions = new Array(40); - matrixIds = new Array(40); - for (z = 0; z < 40; ++z) { - resolutions[z] = size / Math.pow(2, z); - matrixIds[z] = z; - } - i3GEO.editorOL.resolutions = resolutions; - i3GEO.editorOL.matrixIds = matrixIds; +{ + MUSTACHESALVAGEOMETRIAS: "", + MUSTACHEFERRAMENTAS: "", + MUSTACHEPROPRIEDADES: "", + layerDefault: "", + simbologia : { + opacidade : 0.8, + texto : "", + fillColor : "250,180,15", + strokeWidth : 5, + strokeColor : "250,150,0", + pointRadius : 4, + graphicName : "square", + fontSize : "12px", + fontColor : "0,0,0", + externalGraphic : "", + graphicHeight : 25, + graphicWidth : 25 + }, + backup : new ol.layer.Vector({ + source : new ol.source.Vector({ + features : new ol.Collection(), + useSpatialIndex : false, + name : "Backup" + }), + //map : i3geoOL, + visible : false + }), + e_oce : new ol.layer.Tile({ + title : "ESRI Ocean Basemap", + visible : false, + isBaseLayer : true, + name : "oce", + source : new ol.source.TileArcGISRest({ + url : "http://server.arcgisonline.com/ArcGIS/rest/services/Ocean_Basemap/MapServer", + attributions: [ + new ol.Attribution({ + html: 'Tiles © ArcGIS' + }) + ] + }) + }), + e_ims : new ol.layer.Tile({ + title : "ESRI Imagery World 2D", + visible : false, + isBaseLayer : true, + name : "ims", + source : new ol.source.TileArcGISRest({ + url : "http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer", + attributions: [ + new ol.Attribution({ + html: 'Tiles © ArcGIS' + }) + ] + }) + }), + e_wsm : new ol.layer.Tile({ + title : "ESRI World Street Map", + visible : false, + isBaseLayer : true, + name : "wsm", + source : new ol.source.TileArcGISRest({ + url : "http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer", + attributions: [ + new ol.Attribution({ + html: 'Tiles © ArcGIS' + }) + ] + }) + }), + ol_mma : new ol.layer.Tile({ + title : "Base carto MMA", + visible : false, + isBaseLayer : true, + name : "bra", + source : new ol.source.TileWMS({ + url : "http://mapas.mma.gov.br/cgi-bin/mapserv?map=/opt/www/html/webservices/baseraster.map&", + params : { + 'layers' : "baseraster", + 'srs' : "EPSG:4326", + 'format' : "image/png" + } + }) + }), + e_tms : new ol.layer.Tile({ + title : "OSGEO", + visible : false, + isBaseLayer : true, + name : "tms", + source : new ol.source.TileWMS({ + url : "http://tilecache.osgeo.org/wms-c/Basic.py/", + params : { + 'layers' : "basic", + 'type' : "png", + 'srs' : "EPSG:4326", + 'format' : "image/png", + 'VERSION' : '1.1.1' + }, + attributions: [ + new ol.Attribution({ + html: '© 2006-2010, TileCache Contributors' + }) + ] + }) + }), + top_wms : new ol.layer.Tile({ + title : "Toponímia MMA", + visible : false, + isBaseLayer : true, + name : "bra", + source : new ol.source.TileWMS({ + url : "http://mapas.mma.gov.br/cgi-bin/mapserv?map=/opt/www/html/webservices/baseref.map&", + params : { + 'layers' : "base", + 'srs' : "EPSG:4326", + 'format' : "image/png" + } + }) + }), + est_wms : new ol.layer.Tile({ + title : "Estados do Brasil", + visible : false, + isBaseLayer : true, + name : "bra", + source : new ol.source.TileWMS({ + url : "http://mapas.mma.gov.br/i3geo/ogc.php?tema=estadosl&", + params : { + 'layers' : "estadosl", + 'srs' : "EPSG:4326", + 'format' : "image/png" + } + }) + }), + fundo: "e_ims,e_wsm,ol_mma,ol_wms,top_wms,est_wms,e_oce", + nomeFuncaoSalvar : "i3GEO.editorOL.salvaGeo()", + kml : [], + layersIniciais : [], + //essa configuracao dos botoes afeta apenas o mashup + //para a configuração do editor dentro de um mapa normal, veja i3GEO.barraDebotoes.editor.ativaPainel() + botoes : { + 'imprimir': false, + 'grid': false, + 'pan' : false, + 'zoombox' : false, + 'zoomtot' : false, + 'zoomin' : false, + 'zoomout' : false, + 'distancia' : false, + 'area' : false, + 'identifica' : false, + 'linha' : true, + 'ponto' : true, + 'poligono' : true, + 'texto' : true, + 'edita' : true, + 'listag' : true, + 'corta' : true, + 'apaga' : true, + 'procura' : false, + 'selecao' : true, + 'selecaotudo' : true, + 'salva' : true, + 'ajuda' : true, + 'propriedades' : true, + 'fecha' : false, + 'tools' : true, + 'undo' : false, + 'frente' : false, + 'legenda' : false, + 'rodadomouse' : true, + 'novaaba' : false + }, + pontos : [], + marca : "../pacotes/openlayers/img/marker-gold.png", + controles : [], + tiles : true, + incluilayergrafico : true, + ativalayerswitcher : false, + ativarodadomouse : true, + legendahtml : false, + numzoom : 12, + minresolution : 0.703125, + maxext : "", + mapext : [-76.5125927, -39.3925675209, -29.5851853, 9.49014852081], + mapa : "", + //ids das features graficas selecionadas + idsSelecionados : [], + //backup das features + featuresBackup : [], + resolutions : [], + matrixIds : [], + //utilizado pelo mashup + inicia : function() { + var projectionExtent, size,resolutions,matrixIds,z; + if (i3GEO.Interface.openlayers.googleLike === true) { + projectionExtent = ol.proj.get('EPSG:3857').getExtent(); + } else { + projectionExtent = ol.proj.get('EPSG:4326').getExtent(); + } + size = ol.extent.getWidth(projectionExtent) / 256; + resolutions = new Array(40); + matrixIds = new Array(40); + for (z = 0; z < 40; ++z) { + resolutions[z] = size / Math.pow(2, z); + matrixIds[z] = z; + } + i3GEO.editorOL.resolutions = resolutions; + i3GEO.editorOL.matrixIds = matrixIds; - i3GEO.editorOL.incluilayergrafico = true; + i3GEO.editorOL.incluilayergrafico = true; - i3GEO.Interface.openlayers.parametrosView = { - projection : "EPSG:4326", - resolutions: resolutions, - minResolution: i3GEO.editorOL.minresolution, - maxResolution: resolutions[i3GEO.editorOL.numzoom] - }; - i3GEO.Interface.openlayers.parametrosMap = { - target : "i3geoMapa", - layers : [], - controls : [] - }; + i3GEO.Interface.openlayers.parametrosView = { + projection : "EPSG:4326", + resolutions: resolutions, + minResolution: i3GEO.editorOL.minresolution, + maxResolution: resolutions[i3GEO.editorOL.numzoom] + }; + i3GEO.Interface.openlayers.parametrosMap = { + target : "i3geoMapa", + layers : [], + controls : [] + }; - i3GEO.Interface.openlayers.cria(); - i3GEO.editorOL.mapa = i3geoOL; + i3GEO.Interface.openlayers.cria(); + i3GEO.editorOL.mapa = i3geoOL; - // ativabotoes e boolean - if(i3GEO.editorOL.controles.length === 0){ - i3GEO.editorOL.controles = [ - new ol.interaction.DoubleClickZoom(), - new ol.interaction.KeyboardPan(), - new ol.interaction.KeyboardZoom(), - new ol.interaction.MouseWheelZoom(), - new ol.interaction.PinchRotate(), - new ol.interaction.PinchZoom(), - new ol.interaction.DragZoom(), - new ol.interaction.DragPan(), - new ol.control.Zoom(), - new ol.control.ZoomSlider(), - new ol.control.ScaleLine() - ]; - } - var alayers = [], fundo = (i3GEO.editorOL.fundo).split(","), nfundo = fundo.length, ncontroles = - i3GEO.editorOL.controles.length, i, n, temp; + // ativabotoes e boolean + if(i3GEO.editorOL.controles.length === 0){ + i3GEO.editorOL.controles = [ + new ol.interaction.DoubleClickZoom(), + new ol.interaction.KeyboardPan(), + new ol.interaction.KeyboardZoom(), + new ol.interaction.MouseWheelZoom(), + new ol.interaction.PinchRotate(), + new ol.interaction.PinchZoom(), + new ol.interaction.DragZoom(), + new ol.interaction.DragPan(), + new ol.control.Zoom(), + new ol.control.ZoomSlider(), + new ol.control.ScaleLine() + ]; + } + var alayers = [], fundo = (i3GEO.editorOL.fundo).split(","), nfundo = fundo.length, ncontroles = + i3GEO.editorOL.controles.length, i, n, temp; - if (i3GEO.editorOL.ativarodadomouse === "false") { - i3GEO.editorOL.ativarodadomouse = false; - } - if (i3GEO.editorOL.ativarodadomouse === "true") { - i3GEO.editorOL.ativarodadomouse = true; - } - if (i3GEO.editorOL.legendahtml === "false") { - i3GEO.editorOL.legendahtml = false; - } - if (i3GEO.editorOL.legendahtml === "true") { - i3GEO.editorOL.legendahtml = true; - } + if (i3GEO.editorOL.ativarodadomouse === "false") { + i3GEO.editorOL.ativarodadomouse = false; + } + if (i3GEO.editorOL.ativarodadomouse === "true") { + i3GEO.editorOL.ativarodadomouse = true; + } + if (i3GEO.editorOL.legendahtml === "false") { + i3GEO.editorOL.legendahtml = false; + } + if (i3GEO.editorOL.legendahtml === "true") { + i3GEO.editorOL.legendahtml = true; + } - if (i3GEO.editorOL.incluilayergrafico === "false") { - i3GEO.editorOL.incluilayergrafico = false; - } - if (i3GEO.editorOL.incluilayergrafico === "true") { - i3GEO.editorOL.incluilayergrafico = true; - } - if (i3GEO.editorOL.incluilayergrafico === true) { - if (!i3GEO.desenho.layergrafico) { - i3GEO.editorOL.criaLayerGrafico(); - } - } else { - i3GEO.desenho.layergrafico = ""; - i3GEO.editorOL.botoes.linha = false; - i3GEO.editorOL.botoes.ponto = false; - i3GEO.editorOL.botoes.poligono = false; - i3GEO.editorOL.botoes.texto = false; - i3GEO.editorOL.botoes.edita = false; - i3GEO.editorOL.botoes.listag = false; - i3GEO.editorOL.botoes.corta = false; - i3GEO.editorOL.botoes.apaga = false; - i3GEO.editorOL.botoes.selecao = false; - i3GEO.editorOL.botoes.selecaotudo = false; - i3GEO.editorOL.botoes.salva = false; - i3GEO.editorOL.botoes.propriedades = false; - i3GEO.editorOL.botoes.fecha = false; - i3GEO.editorOL.botoes.tools = false; - i3GEO.editorOL.botoes.undo = false; - i3GEO.editorOL.botoes.frente = false; - i3GEO.editorOL.botoes.novaaba = false; - } - for (i = 0; i < ncontroles; i++) { - i3GEO.editorOL.mapa.addControl(i3GEO.editorOL.controles[i]); - } - if (i3GEO.editorOL.fundo != "") { - for (i = nfundo - 1; i >= 0; i--) { - if (fundo[i] != "" && i3GEO.editorOL[fundo[i]]) { - alayers.push(i3GEO.editorOL[fundo[i]]); - i3GEO.editorOL[fundo[i]].setVisibility(true); - } - } - } - i3GEO.editorOL.mapa.addLayers(alayers); - if (i3GEO.editorOL.layersIniciais !== "") { - n = i3GEO.editorOL.layersIniciais.length; - for (i = 0; i < n; i++) { - // singleTile deve ser definido em cada layer - // i3GEO.editorOL.layersIniciais[i].singleTile = single; - i3GEO.editorOL.mapa.addLayer(i3GEO.editorOL.layersIniciais[i]); - } - } - if (!i3GEO.desenho.layergrafico && i3GEO.editorOL.incluilayergrafico === true) { - i3GEO.editorOL.mapa.addLayers([ - i3GEO.desenho.layergrafico - ]); - } - i3GEO.editorOL.adicionaKml(); - i3GEO.editorOL.adicionaMarcas(); + if (i3GEO.editorOL.incluilayergrafico === "false") { + i3GEO.editorOL.incluilayergrafico = false; + } + if (i3GEO.editorOL.incluilayergrafico === "true") { + i3GEO.editorOL.incluilayergrafico = true; + } + if (i3GEO.editorOL.incluilayergrafico === true) { + if (!i3GEO.desenho.layergrafico) { + i3GEO.editorOL.criaLayerGrafico(); + } + } else { + i3GEO.desenho.layergrafico = ""; + i3GEO.editorOL.botoes.linha = false; + i3GEO.editorOL.botoes.ponto = false; + i3GEO.editorOL.botoes.poligono = false; + i3GEO.editorOL.botoes.texto = false; + i3GEO.editorOL.botoes.edita = false; + i3GEO.editorOL.botoes.listag = false; + i3GEO.editorOL.botoes.corta = false; + i3GEO.editorOL.botoes.apaga = false; + i3GEO.editorOL.botoes.selecao = false; + i3GEO.editorOL.botoes.selecaotudo = false; + i3GEO.editorOL.botoes.salva = false; + i3GEO.editorOL.botoes.propriedades = false; + i3GEO.editorOL.botoes.fecha = false; + i3GEO.editorOL.botoes.tools = false; + i3GEO.editorOL.botoes.undo = false; + i3GEO.editorOL.botoes.frente = false; + i3GEO.editorOL.botoes.novaaba = false; + } + for (i = 0; i < ncontroles; i++) { + i3GEO.editorOL.mapa.addControl(i3GEO.editorOL.controles[i]); + } + if (i3GEO.editorOL.fundo != "") { + for (i = nfundo - 1; i >= 0; i--) { + if (fundo[i] != "" && i3GEO.editorOL[fundo[i]]) { + alayers.push(i3GEO.editorOL[fundo[i]]); + i3GEO.editorOL[fundo[i]].setVisibility(true); + } + } + } + i3GEO.editorOL.mapa.addLayers(alayers); + if (i3GEO.editorOL.layersIniciais !== "") { + n = i3GEO.editorOL.layersIniciais.length; + for (i = 0; i < n; i++) { + // singleTile deve ser definido em cada layer + // i3GEO.editorOL.layersIniciais[i].singleTile = single; + i3GEO.editorOL.mapa.addLayer(i3GEO.editorOL.layersIniciais[i]); + } + } + if (!i3GEO.desenho.layergrafico && i3GEO.editorOL.incluilayergrafico === true) { + i3GEO.editorOL.mapa.addLayers([ + i3GEO.desenho.layergrafico + ]); + } + i3GEO.editorOL.adicionaKml(); + i3GEO.editorOL.adicionaMarcas(); - i3GEO.editorOL.coordenadas(); - //i3GEO.editorOL.criaJanelaBusca(); - i3GEO.editorOL.criaBotoes(i3GEO.editorOL.botoes); - if (i3GEO.editorOL.ativalayerswitcher === true) { - //i3GEO.editorOL.ativaLayerSwitcher(); - } - if (i3GEO.editorOL.ativarodadomouse === false) { - i3GEO.editorOL.desativaRodaDoMouse(); - } - //TODO testar numzoom - /* + i3GEO.editorOL.coordenadas(); + //i3GEO.editorOL.criaJanelaBusca(); + i3GEO.editorOL.criaBotoes(i3GEO.editorOL.botoes); + if (i3GEO.editorOL.ativalayerswitcher === true) { + //i3GEO.editorOL.ativaLayerSwitcher(); + } + if (i3GEO.editorOL.ativarodadomouse === false) { + i3GEO.editorOL.desativaRodaDoMouse(); + } + //TODO testar numzoom + /* if (i3GEO.editorOL.numzoom !== "") { i3GEO.editorOL.mapa.getView().setOptions({ minResolution : i3GEO.editorOL.minresolution, maxResolution : }); } - */ - if (i3GEO.editorOL.maxext !== "") { - i3GEO.editorOL.mapa.getView().setProperties({ - extent : i3GEO.editorOL.maxext - }); - } - if (i3GEO.editorOL.mapext != "") { - var m = i3GEO.util.extGeo2OSM(i3GEO.editorOL.mapext); - i3GEO.editorOL.mapa.zoomToExtent(m); - } - //i3GEO.editorOL.sobeLayersGraficos(); - // evita que botoes de opcoes propaguem - // o mashup utiliza esse tipo de botao junto ao nome do layer - temp = i3GEO.editorOL.pegaControle("OpenLayers.Control.LayerSwitcher"); - if (temp) { - temp = temp.dataLayersDiv.getElementsByTagName("label"); - n = temp.length; - for (i = 0; i < n; i++) { - // YAHOO.util.Event.addListener(temp[i], "click", YAHOO.util.Event.stopEvent); - temp[i].onclick = ""; - } - } - }, - criaLayerGrafico : function() { - i3GEO.desenho.openlayers.criaLayerGrafico(); - }, - layersLigados : function() { - var l, layers = i3GEO.editorOL.mapa.getLayers(), nlayers = layers.getLength(), ins = [], i; - for (i = 0; i < nlayers; i++) { - l = layers.item(i); - if (l.getVisible() === true) { - ins.push(l); - } - } - return ins; - }, - layerPorParametro : function(parametro, valor) { - var layers = i3GEO.editorOL.mapa.layers, nlayers = layers.length, ins = [], i; - for (i = 0; i < nlayers; i++) { - if (layers[i][parametro] || layers[i][parametro.toLowerCase()]) { - if (layers[i][parametro] === valor || layers[i][parametro.toLowerCase()] === valor) { - ins.push(layers[i]); - } - } else { - if (layers[i].params && layers[i].params[parametro] && layers[i].params[parametro] === valor) { - ins.push(layers[i]); - } - } - } - return ins; - }, - // layers clonados sao copias WMS de layers TMS necessarios para realizar o getfeature - // sao criados quando o layer e adicionado - layersClonados : function(paramsLayers) { - var layers = i3GEO.editorOL.mapa.layers, nlayers = layers.length, i; - for (i = 0; i < nlayers; i++) { - if (layers[i].params && layers[i].params.CLONETMS === paramsLayers) { - return (layers[i]); - } - } - return false; - }, - layertms2wms : function(tms) { - var layer, url; - url = tms.url.replace("&cache=sim", "&DESLIGACACHE=sim"); - url = url.replace("&Z=${z}&X=${x}&Y=${y}", ""); - url = url.replace("Z=${z}&X=${x}&Y=${y}", ""); - layer = new OpenLayers.Layer.WMS(tms.layername + "_clone", url, { - layers : tms.name, - transparent : true - }, { - gutter : 0, - isBaseLayer : false, - displayInLayerSwitcher : false, - opacity : 1, - visibility : true, - singleTile : true - }); - // i3GEO.editorOL.mapa.addLayer(layer); - return layer; - }, - // remove o layer clonado com layertms2wms - removeClone : function() { - var nome = i3GEO.editorOL.layerAtivo().layername + "_clone", busca = i3GEO.editorOL.mapa.getLayersByName(nome); - if (busca.length > 0) { - i3GEO.editorOL.mapa.removeLayer(i3GEO.editorOL.mapa.getLayersByName(camada.name)[0], false); - } - }, - coordenadas : function() { - // - // substitui o controle que mostra as coordenadas - // - var idcoord = i3GEO.editorOL.mapa.getControlsBy("separator", " "); - if (idcoord[0]) { - i3GEO.editorOL.mapa.events.register("mousemove", i3GEO.editorOL.mapa, function(e) { - var p, lonlat, d; - if (navm) { - p = new OpenLayers.Pixel(e.x, e.y); - } else { - p = e.xy; - } - // altera o indicador de localizacao - lonlat = i3GEO.editorOL.mapa.getLonLatFromPixel(p); - lonlat = i3GEO.util.projOSM2Geo(lonlat); - d = i3GEO.calculo.dd2dms(lonlat.lon, lonlat.lat); - try { - $i(idcoord[0].id).innerHTML = "Long: " + d[0] + "
Lat: " + d[1]; - } catch (e) { - if (typeof (console) !== 'undefined') { - console.error(e); - } - } - }); - } - }, - criaJanelaBusca : function() { - var layers = i3GEO.editorOL.layersLigados(), nlayers = layers.length, i, ins, combo = - ""; - ins = "
" + $trad("a7") + ":
" + combo; - ins += "
" + $trad("x64") + ":
"; - ins += "
" + $trad("t23") + ":
"; - ins += "

"; - ins += "
'" + $trad("result") + "':
"; + */ + if (i3GEO.editorOL.maxext !== "") { + i3GEO.editorOL.mapa.getView().setProperties({ + extent : i3GEO.editorOL.maxext + }); + } + if (i3GEO.editorOL.mapext != "") { + var m = i3GEO.util.extGeo2OSM(i3GEO.editorOL.mapext); + i3GEO.editorOL.mapa.zoomToExtent(m); + } + //i3GEO.editorOL.sobeLayersGraficos(); + // evita que botoes de opcoes propaguem + // o mashup utiliza esse tipo de botao junto ao nome do layer + temp = i3GEO.editorOL.pegaControle("OpenLayers.Control.LayerSwitcher"); + if (temp) { + temp = temp.dataLayersDiv.getElementsByTagName("label"); + n = temp.length; + for (i = 0; i < n; i++) { + // YAHOO.util.Event.addListener(temp[i], "click", YAHOO.util.Event.stopEvent); + temp[i].onclick = ""; + } + } + }, + criaLayerGrafico : function() { + i3GEO.desenho.openlayers.criaLayerGrafico(); + }, + layersLigados : function() { + var l, layers = i3GEO.editorOL.mapa.getLayers(), nlayers = layers.getLength(), ins = [], i; + for (i = 0; i < nlayers; i++) { + l = layers.item(i); + if (l.getVisible() === true) { + ins.push(l); + } + } + return ins; + }, + layerPorParametro : function(parametro, valor) { + var layers = i3GEO.editorOL.mapa.layers, nlayers = layers.length, ins = [], i; + for (i = 0; i < nlayers; i++) { + if (layers[i][parametro] || layers[i][parametro.toLowerCase()]) { + if (layers[i][parametro] === valor || layers[i][parametro.toLowerCase()] === valor) { + ins.push(layers[i]); + } + } else { + if (layers[i].params && layers[i].params[parametro] && layers[i].params[parametro] === valor) { + ins.push(layers[i]); + } + } + } + return ins; + }, + // layers clonados sao copias WMS de layers TMS necessarios para realizar o getfeature + // sao criados quando o layer e adicionado + layersClonados : function(paramsLayers) { + var layers = i3GEO.editorOL.mapa.layers, nlayers = layers.length, i; + for (i = 0; i < nlayers; i++) { + if (layers[i].params && layers[i].params.CLONETMS === paramsLayers) { + return (layers[i]); + } + } + return false; + }, + layertms2wms : function(tms) { + var layer, url; + url = tms.url.replace("&cache=sim", "&DESLIGACACHE=sim"); + url = url.replace("&Z=${z}&X=${x}&Y=${y}", ""); + url = url.replace("Z=${z}&X=${x}&Y=${y}", ""); + layer = new OpenLayers.Layer.WMS(tms.layername + "_clone", url, { + layers : tms.name, + transparent : true + }, { + gutter : 0, + isBaseLayer : false, + displayInLayerSwitcher : false, + opacity : 1, + visibility : true, + singleTile : true + }); + // i3GEO.editorOL.mapa.addLayer(layer); + return layer; + }, + // remove o layer clonado com layertms2wms + removeClone : function() { + var nome = i3GEO.editorOL.layerAtivo().layername + "_clone", busca = i3GEO.editorOL.mapa.getLayersByName(nome); + if (busca.length > 0) { + i3GEO.editorOL.mapa.removeLayer(i3GEO.editorOL.mapa.getLayersByName(camada.name)[0], false); + } + }, + coordenadas : function() { + // + // substitui o controle que mostra as coordenadas + // + var idcoord = i3GEO.editorOL.mapa.getControlsBy("separator", " "); + if (idcoord[0]) { + i3GEO.editorOL.mapa.events.register("mousemove", i3GEO.editorOL.mapa, function(e) { + var p, lonlat, d; + if (navm) { + p = new OpenLayers.Pixel(e.x, e.y); + } else { + p = e.xy; + } + // altera o indicador de localizacao + lonlat = i3GEO.editorOL.mapa.getLonLatFromPixel(p); + lonlat = i3GEO.util.projOSM2Geo(lonlat); + d = i3GEO.calculo.dd2dms(lonlat.lon, lonlat.lat); + try { + $i(idcoord[0].id).innerHTML = "Long: " + d[0] + "
Lat: " + d[1]; + } catch (e) { + if (typeof (console) !== 'undefined') { + console.error(e); + } + } + }); + } + }, + criaJanelaBusca : function() { + var layers = i3GEO.editorOL.layersLigados(), nlayers = layers.length, i, ins, combo = + ""; + ins = "
" + $trad("a7") + ":
" + combo; + ins += "
" + $trad("x64") + ":
"; + ins += "
" + $trad("t23") + ":
"; + ins += "

"; + ins += "
'" + $trad("result") + "':
"; - YAHOO.namespace("procura.container"); - YAHOO.procura.container.panel = new YAHOO.widget.Panel("panelprocura", { - zIndex : 2000, - iframe : false, - width : "250px", - visible : false, - draggable : true, - close : true - }); - YAHOO.procura.container.panel.setHeader("Encontre no mapa"); - YAHOO.procura.container.panel.setBody(ins); - YAHOO.procura.container.panel.setFooter(""); - YAHOO.procura.container.panel.render(document.body); - YAHOO.procura.container.panel.center(); + YAHOO.namespace("procura.container"); + YAHOO.procura.container.panel = new YAHOO.widget.Panel("panelprocura", { + zIndex : 2000, + iframe : false, + width : "250px", + visible : false, + draggable : true, + close : true + }); + YAHOO.procura.container.panel.setHeader("Encontre no mapa"); + YAHOO.procura.container.panel.setBody(ins); + YAHOO.procura.container.panel.setFooter(""); + YAHOO.procura.container.panel.render(document.body); + YAHOO.procura.container.panel.center(); - document.getElementById("i3GEOOLbotaoBusca").onclick = - function() { - var layer = i3GEO.editorOL.layerAtivo(), item = document.getElementById("i3GEOOLbuscaItem").value, palavra = - document.getElementById("i3GEOOLpalavraBusca").value; - if (item === "" || palavra === "") { - alert("Escolha o item e o texto de busca"); - return; - } - i3GEO.editorOL.busca(layer, item, palavra, "i3GEOOLcomboresultado"); - }; - document.getElementById("i3GEOOLlistaTemasBusca").onchange = function() { - i3GEO.editorOL.ativaTema(this.value); - document.getElementById("i3GEOOLcomboitens").innerHTML = "..."; - i3GEO.editorOL.listaItens(i3GEO.editorOL.layerAtivo(), "i3GEOOLcomboitens", "i3GEOOLbuscaItem"); - }; + document.getElementById("i3GEOOLbotaoBusca").onclick = + function() { + var layer = i3GEO.editorOL.layerAtivo(), item = document.getElementById("i3GEOOLbuscaItem").value, palavra = + document.getElementById("i3GEOOLpalavraBusca").value; + if (item === "" || palavra === "") { + alert("Escolha o item e o texto de busca"); + return; + } + i3GEO.editorOL.busca(layer, item, palavra, "i3GEOOLcomboresultado"); + }; + document.getElementById("i3GEOOLlistaTemasBusca").onchange = function() { + i3GEO.editorOL.ativaTema(this.value); + document.getElementById("i3GEOOLcomboitens").innerHTML = "..."; + i3GEO.editorOL.listaItens(i3GEO.editorOL.layerAtivo(), "i3GEOOLcomboitens", "i3GEOOLbuscaItem"); + }; - }, - criaComboTemas : function() { - var layers = i3GEO.editorOL.layersLigados(), nlayers = layers.length, i, nometema = "", combo = - ""; - return combo; - }, - atualizaJanelaAtivaTema : function() { - var combo = i3GEO.editorOL.criaComboTemas(); - YAHOO.temaativo.container.panel.setBody(combo); - }, - criaJanelaAtivaTema : function() { - var temp; - if (!document.getElementById("paneltemaativo")) { - YAHOO.namespace("temaativo.container"); - YAHOO.temaativo.container.panel = new YAHOO.widget.Panel("paneltemaativo", { - zIndex : 20000, - iframe : true, - width : "250px", - visible : false, - draggable : true, - close : true - }); - YAHOO.temaativo.container.panel.setBody(""); - if (i3GEO && typeof i3GEO != undefined && i3GEO != "") { - YAHOO.temaativo.container.panel - .setHeader("Tema ativo
"); - } else { - YAHOO.temaativo.container.panel.setHeader($trad("tativo")); - } - YAHOO.temaativo.container.panel.setFooter(""); - YAHOO.temaativo.container.panel.render(document.body); - YAHOO.temaativo.container.panel.show(); - YAHOO.temaativo.container.panel.center(); - i3GEO.editorOL.atualizaJanelaAtivaTema(); - YAHOO.util.Event.addListener(YAHOO.temaativo.container.panel.close, "click", function() { - i3GEO.editorOL.marcaBotao(); - if (i3GEO.eventos) { - i3GEO.eventos.adicionaEventos("ATUALIZAARVORECAMADAS", [ - "i3GEO.editorOL.atualizaJanelaAtivaTema()" - ]); - } - }); - if (i3GEO && typeof i3GEO != undefined && i3GEO != "") { - if (i3GEO.eventos) { - i3GEO.eventos.adicionaEventos("ATUALIZAARVORECAMADAS", [ - "i3GEO.editorOL.atualizaJanelaAtivaTema()" - ]); - } - } - temp = $i("paneltemaativo_minimizaCabecalho"); - if (temp) { - temp.onclick = function() { - i3GEO.janela.minimiza("paneltemaativo"); - }; - } - } else { - YAHOO.temaativo.container.panel.show(); - i3GEO.editorOL.atualizaJanelaAtivaTema(); - } - }, - ativaTema : function(id) { - document.getElementById("i3GEOOLlistaTemasAtivos").value = id; - }, - layerAtivo : function() { - if(i3GEO.editorOL.layerDefault && i3GEO.editorOL.layerDefault != ""){ - return i3GEO.editorOL.layerPorParametro("LAYERS",i3GEO.editorOL.layerDefault); - } else { - var id = document.getElementById("i3GEOOLlistaTemasAtivos"); - if (id) { - id = id.value; - } else { - id = i3GEO.temaAtivo; - } - if (id == "") { - return []; - } else { - return i3GEO.editorOL.layersLigados()[id]; - } - } - }, - listaItens : function(layer, idonde, idobj) { - if (!layer) { - return; - } - if (!layer.params) { - return; - } - var u = layer.url + "&request=describefeaturetype&service=wfs&version=1.0.0"; - u += "&typename=" + layer.params.LAYERS; - document.body.style.cursor = "wait"; - document.getElementById("i3geoMapa").style.cursor = "wait"; - OpenLayers.Request.issue({ - method : "GET", - url : u, - callback : function(retorno) { - document.body.style.cursor = "default"; - document.getElementById("i3geoMapa").style.cursor = "default"; - var fromgml = new OpenLayers.Format.WFSDescribeFeatureType({ - geometryName : "msGeometry" - }), gml = fromgml.read(retorno.responseText), prop = gml.featureTypes[0].properties, nprop = prop.length, i, combo = - ""; - document.getElementById(idonde).innerHTML = combo; - }, - failure : function() { - document.body.style.cursor = "default"; - document.getElementById("i3geoMapa").style.cursor = "default"; - alert("Erro"); - } - }); - }, - busca : function(layer, item, palavra, onde) { - document.body.style.cursor = "wait"; - document.getElementById("i3geoMapa").style.cursor = "wait"; - var u = layer.url + "&request=getfeature&service=wfs&version=1.0.0"; - u = u.replace("Z=${z}&X=${x}&Y=${y}", ""); - u += "&OUTPUTFORMAT=gml2&typename=" + layer.params.LAYERS; - u += - "&filter=" + item - + "*" - + palavra - + "*"; - document.body.style.cursor = "wait"; - document.getElementById("i3geoMapa").style.cursor = "wait"; - document.getElementById(onde).innerHTML = "..."; - OpenLayers.Request.issue({ - method : "GET", - url : u, - callback : function(retorno) { - document.body.style.cursor = "default"; - document.getElementById("i3geoMapa").style.cursor = "default"; - var fromgml = new OpenLayers.Format.GML({ - geometryName : "msGeometry" - }), gml = fromgml.read(retorno.responseText), ngml = gml.length, i, ins = - ""; - document.getElementById(onde).innerHTML = ins; - }, - failure : function() { - document.body.style.cursor = "default"; - document.getElementById("i3geoMapa").style.cursor = "default"; - alert("Erro"); - } - }); - }, - zoomPara : function(bbox) { - var b = new OpenLayers.Bounds.fromString(bbox); - i3GEO.editorOL.mapa.zoomToExtent(b); - }, - mostraLegenda : function() { - var prop, layer, layers = i3GEO.editorOL.mapa.getLayers(), nlayers = layers.getLength(), ins = "", i, icone = "", url, f = "", fonte = ""; - for (i = 0; i < nlayers; i++) { - layer = layers.item(i); - prop = layer.getProperties(); - //monta a url para fazer a requisicao da legenda - //para os temas que nao sao baselayers - if(prop.source.getUrls){ - url = prop.source.getUrls()[0]; - url = url.replace("&cache=sim", "&DESLIGACACHE=sim"); - url = url.replace("&Z=${z}&X=${x}&Y=${y}", ""); - url = url.replace("Z=${z}&X=${x}&Y=${y}", ""); - url += "&REQUEST=getlegendgraphic&service=wms&version=1.0.0"; - if (i3GEO.Interface.openlayers.googleLike === true) { - url += "&SRS=EPSG:3857"; - } - icone = ""; - //TODO criar a legenda para uso no mashup - //caso do mashup - if (i3GEO.editorOL.legendahtml === true) { - // os parametros FORMAT e SERVICE sao inseridos de forma redundante para grantir - // caso seja um TMS - url = url.replace("image%2Fpng", "text/html") + "&FORMAT=text/html&SERVICE=WMS"; - // verifica se a camada veio de um plugin de classe_plugini3geo - // e insere o icone se for necessario - /* + }, + criaComboTemas : function() { + var layers = i3GEO.editorOL.layersLigados(), nlayers = layers.length, i, nometema = "", combo = + ""; + return combo; + }, + atualizaJanelaAtivaTema : function() { + var combo = i3GEO.editorOL.criaComboTemas(); + YAHOO.temaativo.container.panel.setBody(combo); + }, + criaJanelaAtivaTema : function() { + var temp; + if (!document.getElementById("paneltemaativo")) { + YAHOO.namespace("temaativo.container"); + YAHOO.temaativo.container.panel = new YAHOO.widget.Panel("paneltemaativo", { + zIndex : 20000, + iframe : true, + width : "250px", + visible : false, + draggable : true, + close : true + }); + YAHOO.temaativo.container.panel.setBody(""); + if (i3GEO && typeof i3GEO != undefined && i3GEO != "") { + YAHOO.temaativo.container.panel + .setHeader("Tema ativo
"); + } else { + YAHOO.temaativo.container.panel.setHeader($trad("tativo")); + } + YAHOO.temaativo.container.panel.setFooter(""); + YAHOO.temaativo.container.panel.render(document.body); + YAHOO.temaativo.container.panel.show(); + YAHOO.temaativo.container.panel.center(); + i3GEO.editorOL.atualizaJanelaAtivaTema(); + YAHOO.util.Event.addListener(YAHOO.temaativo.container.panel.close, "click", function() { + i3GEO.editorOL.marcaBotao(); + if (i3GEO.eventos) { + i3GEO.eventos.adicionaEventos("ATUALIZAARVORECAMADAS", [ + "i3GEO.editorOL.atualizaJanelaAtivaTema()" + ]); + } + }); + if (i3GEO && typeof i3GEO != undefined && i3GEO != "") { + if (i3GEO.eventos) { + i3GEO.eventos.adicionaEventos("ATUALIZAARVORECAMADAS", [ + "i3GEO.editorOL.atualizaJanelaAtivaTema()" + ]); + } + } + temp = $i("paneltemaativo_minimizaCabecalho"); + if (temp) { + temp.onclick = function() { + i3GEO.janela.minimiza("paneltemaativo"); + }; + } + } else { + YAHOO.temaativo.container.panel.show(); + i3GEO.editorOL.atualizaJanelaAtivaTema(); + } + }, + ativaTema : function(id) { + document.getElementById("i3GEOOLlistaTemasAtivos").value = id; + }, + layerAtivo : function() { + if(i3GEO.editorOL.layerDefault && i3GEO.editorOL.layerDefault != ""){ + return i3GEO.editorOL.layerPorParametro("LAYERS",i3GEO.editorOL.layerDefault); + } else { + var id = document.getElementById("i3GEOOLlistaTemasAtivos"); + if (id) { + id = id.value; + } else { + id = i3GEO.temaAtivo; + } + if (id == "") { + return []; + } else { + return i3GEO.editorOL.layersLigados()[id]; + } + } + }, + listaItens : function(layer, idonde, idobj) { + if (!layer) { + return; + } + if (!layer.params) { + return; + } + var u = layer.url + "&request=describefeaturetype&service=wfs&version=1.0.0"; + u += "&typename=" + layer.params.LAYERS; + document.body.style.cursor = "wait"; + document.getElementById("i3geoMapa").style.cursor = "wait"; + OpenLayers.Request.issue({ + method : "GET", + url : u, + callback : function(retorno) { + document.body.style.cursor = "default"; + document.getElementById("i3geoMapa").style.cursor = "default"; + var fromgml = new OpenLayers.Format.WFSDescribeFeatureType({ + geometryName : "msGeometry" + }), gml = fromgml.read(retorno.responseText), prop = gml.featureTypes[0].properties, nprop = prop.length, i, combo = + ""; + document.getElementById(idonde).innerHTML = combo; + }, + failure : function() { + document.body.style.cursor = "default"; + document.getElementById("i3geoMapa").style.cursor = "default"; + alert("Erro"); + } + }); + }, + busca : function(layer, item, palavra, onde) { + document.body.style.cursor = "wait"; + document.getElementById("i3geoMapa").style.cursor = "wait"; + var u = layer.url + "&request=getfeature&service=wfs&version=1.0.0"; + u = u.replace("Z=${z}&X=${x}&Y=${y}", ""); + u += "&OUTPUTFORMAT=gml2&typename=" + layer.params.LAYERS; + u += + "&filter=" + item + + "*" + + palavra + + "*"; + document.body.style.cursor = "wait"; + document.getElementById("i3geoMapa").style.cursor = "wait"; + document.getElementById(onde).innerHTML = "..."; + OpenLayers.Request.issue({ + method : "GET", + url : u, + callback : function(retorno) { + document.body.style.cursor = "default"; + document.getElementById("i3geoMapa").style.cursor = "default"; + var fromgml = new OpenLayers.Format.GML({ + geometryName : "msGeometry" + }), gml = fromgml.read(retorno.responseText), ngml = gml.length, i, ins = + ""; + document.getElementById(onde).innerHTML = ins; + }, + failure : function() { + document.body.style.cursor = "default"; + document.getElementById("i3geoMapa").style.cursor = "default"; + alert("Erro"); + } + }); + }, + zoomPara : function(bbox) { + var b = new OpenLayers.Bounds.fromString(bbox); + i3GEO.editorOL.mapa.zoomToExtent(b); + }, + mostraLegenda : function() { + var prop, layer, layers = i3GEO.editorOL.mapa.getLayers(), nlayers = layers.getLength(), ins = "", i, icone = "", url, f = "", fonte = ""; + for (i = 0; i < nlayers; i++) { + layer = layers.item(i); + prop = layer.getProperties(); + //monta a url para fazer a requisicao da legenda + //para os temas que nao sao baselayers + if(prop.source.getUrls){ + url = prop.source.getUrls()[0]; + url = url.replace("&cache=sim", "&DESLIGACACHE=sim"); + url = url.replace("&Z=${z}&X=${x}&Y=${y}", ""); + url = url.replace("Z=${z}&X=${x}&Y=${y}", ""); + url += "&REQUEST=getlegendgraphic&service=wms&version=1.0.0"; + if (i3GEO.Interface.openlayers.googleLike === true) { + url += "&SRS=EPSG:3857"; + } + icone = ""; + //TODO criar a legenda para uso no mashup + //caso do mashup + if (i3GEO.editorOL.legendahtml === true) { + // os parametros FORMAT e SERVICE sao inseridos de forma redundante para grantir + // caso seja um TMS + url = url.replace("image%2Fpng", "text/html") + "&FORMAT=text/html&SERVICE=WMS"; + // verifica se a camada veio de um plugin de classe_plugini3geo + // e insere o icone se for necessario + /* if (layers[i].options.plugini3geo) { if (layers[i].params.LAYERS) { // wms @@ -759,1225 +759,1244 @@ i3GEO.editorOL = icone = i3GEO.configura.ferramentasLayers[fer].icone(layers[i]); } } - */ + */ - fonte = ""; - if(prop.link_tema != ""){ - fonte = " link"; - } + fonte = ""; + if(prop.link_tema != ""){ + fonte = " link"; + } - ins += icone + prop.name + fonte + "

"; - // necessario pq nao e sincrono - eval("var f = function(retorno){document.getElementById('legendaL_" + i - + "').innerHTML = retorno.responseText;};"); - url = url.replace("LAYERS", "LAYER"); - var config = { - method : "GET", - url : url, - callback : f - }; - //OpenLayers.Request.issue(config); - } else if (prop.isBaseLayer === false && prop.visible === true) { - //caso a legenda seja aberta dentro do i3Geo - url = url.replace("LAYERS", "LAYER"); - url += "&FORMAT=image/png"; - ins += prop.title + "

"; - } - } - } - if (!document.getElementById("panellegendaeditorOL")) { - YAHOO.namespace("legendaeditorOL.container"); - YAHOO.legendaeditorOL.container.panel = new YAHOO.widget.Panel("panellegendaeditorOL", { - zIndex : 20000, - iframe : true, - width : "auto", - visible : false, - draggable : true, - close : true - }); - YAHOO.legendaeditorOL.container.panel.setBody(ins); - YAHOO.legendaeditorOL.container.panel.setHeader($trad("p3")); - YAHOO.legendaeditorOL.container.panel.setFooter(""); - YAHOO.legendaeditorOL.container.panel.render(document.body); - YAHOO.legendaeditorOL.container.panel.show(); - YAHOO.legendaeditorOL.container.panel.center(); + ins += icone + prop.name + fonte + "

"; + // necessario pq nao e sincrono + eval("var f = function(retorno){document.getElementById('legendaL_" + i + + "').innerHTML = retorno.responseText;};"); + url = url.replace("LAYERS", "LAYER"); + var config = { + method : "GET", + url : url, + callback : f + }; + //OpenLayers.Request.issue(config); + } else if (prop.isBaseLayer === false && prop.visible === true) { + //caso a legenda seja aberta dentro do i3Geo + url = url.replace("LAYERS", "LAYER"); + url += "&FORMAT=image/png"; + ins += prop.title + "

"; + } + } + } + if (!document.getElementById("panellegendaeditorOL")) { + YAHOO.namespace("legendaeditorOL.container"); + YAHOO.legendaeditorOL.container.panel = new YAHOO.widget.Panel("panellegendaeditorOL", { + zIndex : 20000, + iframe : true, + width : "auto", + visible : false, + draggable : true, + close : true + }); + YAHOO.legendaeditorOL.container.panel.setBody(ins); + YAHOO.legendaeditorOL.container.panel.setHeader($trad("p3")); + YAHOO.legendaeditorOL.container.panel.setFooter(""); + YAHOO.legendaeditorOL.container.panel.render(document.body); + YAHOO.legendaeditorOL.container.panel.show(); + YAHOO.legendaeditorOL.container.panel.center(); - YAHOO.util.Event.addListener(YAHOO.legendaeditorOL.container.panel.close, "click", function() { - YAHOO.legendaeditorOL.container.panel.destroy(); - }); - } else { - YAHOO.legendaeditorOL.container.panel.setBody(ins); - YAHOO.legendaeditorOL.container.panel.show(); - } - }, - captura : function(x,y,tema,idunico) { - var d = 0.001, - layer = i3geoOL.getLayersByName(tema)[0], - xy = [x,y], - u = layer.getSource().getUrls()[0], - poligono, retorno; + YAHOO.util.Event.addListener(YAHOO.legendaeditorOL.container.panel.close, "click", function() { + YAHOO.legendaeditorOL.container.panel.destroy(); + }); + } else { + YAHOO.legendaeditorOL.container.panel.setBody(ins); + YAHOO.legendaeditorOL.container.panel.show(); + } + }, + captura : function(x,y,tema,idunico) { + var d = 0.001, + layer = i3geoOL.getLayersByName(tema)[0], + xy = [x,y], + u = layer.getSource().getUrls()[0], + poligono, retorno; - u += "&REQUEST=getfeature&service=wfs&version=1.0.0"; - u += "&OUTPUTFORMAT=gml2&typename=undefined"; + u += "&REQUEST=getfeature&service=wfs&version=1.0.0"; + u += "&OUTPUTFORMAT=gml2&typename=undefined"; - // remove parametros nao desejados - if (i3GEO.Interface.openlayers.googleLike === true) { - u += "&SRS=EPSG:3857"; - } - u = u.replace("&cache=sim", "&DESLIGACACHE=sim"); - u = u.replace("&Z=${z}&X=${x}&Y=${y}", ""); - u = u.replace("Z=${z}&X=${x}&Y=${y}", ""); + // remove parametros nao desejados + if (i3GEO.Interface.openlayers.googleLike === true) { + u += "&SRS=EPSG:3857"; + } + u = u.replace("&cache=sim", "&DESLIGACACHE=sim"); + u = u.replace("&Z=${z}&X=${x}&Y=${y}", ""); + u = u.replace("Z=${z}&X=${x}&Y=${y}", ""); - xy[0] = xy[0] * 1; - xy[1] = xy[1] * 1; - poligono = - (xy[0] - d) + "," - + (xy[1] + d) - + " " - + (xy[0] + d) - + "," - + (xy[1] + d) - + " " - + (xy[0] + d) - + "," - + (xy[1] - d) - + " " - + (xy[0] - d) - + "," - + (xy[1] - d) - + " " - + (xy[0] - d) - + "," - + (xy[1] + d); - u += - "&filter=Geometry" + poligono - + ""; - retorno = function(r){ - var fs,c,format, f, n, i, idunico; - format = new ol.format.WKT(); - fs = format.readFeatures(r[0]); - n = fs.length; - c = i3GEO.desenho.layergrafico.getSource(); - for(i=0; i 0) { - if ($i("panelsalvageometrias")) { - if (YAHOO.i3GEO) { - YAHOO.salvaGeometrias.container.panel = YAHOO.i3GEO.janela.manager.find("panelsalvageometrias"); - } - YAHOO.salvaGeometrias.container.panel.show(); - YAHOO.salvaGeometrias.container.panel.bringToTop(); - } else { - try { - YAHOO.namespace("salvaGeometrias.container"); - YAHOO.salvaGeometrias.container.panel = new YAHOO.widget.Panel("panelsalvageometrias", { - zIndex : 2000, - iframe : false, - width : "350px", - visible : false, - draggable : true, - close : true - }); - YAHOO.salvaGeometrias.container.panel.setHeader("" + $trad("u6") + ""); - YAHOO.salvaGeometrias.container.panel.setBody(""); - YAHOO.salvaGeometrias.container.panel.setFooter(""); - YAHOO.salvaGeometrias.container.panel.render(document.body); - YAHOO.salvaGeometrias.container.panel.center(); - if (YAHOO.i3GEO && YAHOO.i3GEO.janela) { - YAHOO.i3GEO.janela.manager.register(YAHOO.salvaGeometrias.container.panel); - } - YAHOO.salvaGeometrias.container.panel.show(); - } catch (e) { - } - } - var hash = { - "n" : n, - "geosel" : $trad("geosel"), - "listar" : $trad("listar"), - "nomeFuncaoSalvarHidden" : "hidden", - "incorpoHidden": "hidden" - }; - if (i3GEO.editorOL.nomeFuncaoSalvar && i3GEO.editorOL.nomeFuncaoSalvar != "") { - hash.nomeFuncaoSalvar = i3GEO.editorOL.nomeFuncaoSalvar; - hash.sdados = $trad("sdados"); - hash.nomeFuncaoSalvarHidden = ""; - } - if (typeof i3geoOL !== "undefined") { - hash.incorpo = $trad("incorpo"); - hash.ajudaEditorOlSalva = $trad("ajudaEditorOlSalva"); - hash.incorpoHidden = ""; - } - ins = Mustache.render(i3GEO.editorOL.MUSTACHESALVAGEOMETRIAS, hash); + xy[0] = xy[0] * 1; + xy[1] = xy[1] * 1; + poligono = + (xy[0] - d) + "," + + (xy[1] + d) + + " " + + (xy[0] + d) + + "," + + (xy[1] + d) + + " " + + (xy[0] + d) + + "," + + (xy[1] - d) + + " " + + (xy[0] - d) + + "," + + (xy[1] - d) + + " " + + (xy[0] - d) + + "," + + (xy[1] + d); + u += + "&filter=Geometry" + poligono + + ""; + retorno = function(r){ + var fs,c,format, f, n, i, idunico; + format = new ol.format.WKT(); + fs = format.readFeatures(r[0]); + n = fs.length; + c = i3GEO.desenho.layergrafico.getSource(); + for(i=0; i 0) { + if ($i("panelsalvageometrias")) { + if (YAHOO.i3GEO) { + YAHOO.salvaGeometrias.container.panel = YAHOO.i3GEO.janela.manager.find("panelsalvageometrias"); + } + YAHOO.salvaGeometrias.container.panel.show(); + YAHOO.salvaGeometrias.container.panel.bringToTop(); + } else { + try { + YAHOO.namespace("salvaGeometrias.container"); + YAHOO.salvaGeometrias.container.panel = new YAHOO.widget.Panel("panelsalvageometrias", { + zIndex : 2000, + iframe : false, + width : "350px", + visible : false, + draggable : true, + close : true + }); + YAHOO.salvaGeometrias.container.panel.setHeader("" + $trad("u6") + ""); + YAHOO.salvaGeometrias.container.panel.setBody(""); + YAHOO.salvaGeometrias.container.panel.setFooter(""); + YAHOO.salvaGeometrias.container.panel.render(document.body); + YAHOO.salvaGeometrias.container.panel.center(); + if (YAHOO.i3GEO && YAHOO.i3GEO.janela) { + YAHOO.i3GEO.janela.manager.register(YAHOO.salvaGeometrias.container.panel); + } + YAHOO.salvaGeometrias.container.panel.show(); + } catch (e) { + } + } + var hash = { + "n" : n, + "geosel" : $trad("geosel"), + "listar" : $trad("listar"), + "nomeFuncaoSalvarHidden" : "hidden", + "incorpoHidden": "hidden" + }; + if (i3GEO.editorOL.nomeFuncaoSalvar && i3GEO.editorOL.nomeFuncaoSalvar != "") { + hash.nomeFuncaoSalvar = i3GEO.editorOL.nomeFuncaoSalvar; + hash.sdados = $trad("sdados"); + hash.nomeFuncaoSalvarHidden = ""; + } + if (typeof i3geoOL !== "undefined") { + hash.incorpo = $trad("incorpo"); + hash.ajudaEditorOlSalva = $trad("ajudaEditorOlSalva"); + hash.incorpoHidden = ""; + } + ins = Mustache.render(i3GEO.editorOL.MUSTACHESALVAGEOMETRIAS, hash); - YAHOO.salvaGeometrias.container.panel.setBody(ins); - } else { - i3GEO.janela.tempoMsg($trad("selum")); - } - }, - exportarSHP : function() { - i3GEO.editorOL.processageo("converteSHP"); - }, - incorporar : function() { - i3GEO.editorOL.processageo("incorporar"); - }, - listaGeometriasSel : function() { - var n = i3GEO.editorOL.idsSelecionados.length, - ins = "", - s = i3GEO.desenho.layergrafico.getSource(), - i, w, g; - for (i = 0; i < n; i++) { - g = s.getFeatureById(i3GEO.editorOL.idsSelecionados[i]); - ins += "" + $trad("u6") + ": #" + i + "
" + i3GEO.editorOL.google2wgs(g.getGeometry().getCoordinates()) + "

"; - } - w = window.open(); - w.document.write(ins); - w.document.close(); - }, - testeSalvar : function() { - alert("Funcao nao disponivel. Defina o nome da funcao em i3GEO.editorOL.nomeFuncaoSalvar "); - }, - salvaGeo : function() { - var s = i3GEO.desenho.layergrafico.getSource(), - n = i3GEO.editorOL.idsSelecionados.length, - funcaoOK = function() { - // verifica se a geometria contem o atributo que indica a coluna ou codigo unico - var f = s.getFeatureById(i3GEO.editorOL.idsSelecionados[0]), - g = f.getGeometry(), - tema = $i("editorOLcomboTemaEditavel").value, - redesenha, p, format; + YAHOO.salvaGeometrias.container.panel.setBody(ins); + } else { + i3GEO.janela.tempoMsg($trad("selum")); + } + }, + exportarSHP : function() { + i3GEO.editorOL.processageo("converteSHP"); + }, + incorporar : function() { + i3GEO.editorOL.processageo("incorporar"); + }, + listaGeometriasSel : function() { + var n = i3GEO.editorOL.idsSelecionados.length, + ins = "", + s = i3GEO.desenho.layergrafico.getSource(), + i, w, g; + for (i = 0; i < n; i++) { + g = s.getFeatureById(i3GEO.editorOL.idsSelecionados[i]); + ins += "" + $trad("u6") + ": #" + i + "
" + i3GEO.editorOL.google2wgs(g.getGeometry().getCoordinates()) + "

"; + } + w = window.open(); + w.document.write(ins); + w.document.close(); + }, + testeSalvar : function() { + alert("Funcao nao disponivel. Defina o nome da funcao em i3GEO.editorOL.nomeFuncaoSalvar "); + }, + salvaGeo : function() { + if(i3GEO.parametros.editor == "nao"){ + i3GEO.janela.tempoMsg($trad("meneditor3")); + return; + } + var s = i3GEO.desenho.layergrafico.getSource(), + n = i3GEO.editorOL.idsSelecionados.length, + funcaoOK = function() { + // verifica se a geometria contem o atributo que indica a coluna ou codigo unico + var f = s.getFeatureById(i3GEO.editorOL.idsSelecionados[0]), + g = f.getGeometry(), + tema = $i("editorOLcomboTemaEditavel").value, + redesenha, p, format; - g = i3GEO.editorOL.google2wgs(g); - format = new ol.format.WKT(); - f.setGeometry(g); + g = i3GEO.editorOL.google2wgs(g); + format = new ol.format.WKT(); + f.setGeometry(g); - if (tema == "") { - return; - } - redesenha = function(retorno) { - i3GEO.janela.fechaAguarde("aguardeSalvaPonto"); - i3GEO.editorOL.removeFeaturesSel(); - i3GEO.Interface.atualizaTema("", tema); - }; - i3GEO.janela.AGUARDEMODAL = true; - i3GEO.janela.abreAguarde("aguardeSalvaPonto", $trad("adic") + "..."); - i3GEO.janela.AGUARDEMODAL = false; + if (tema == "") { + return; + } + redesenha = function(retorno) { + i3GEO.janela.fechaAguarde("aguardeSalvaPonto"); + i3GEO.editorOL.removeFeaturesSel(); + i3GEO.Interface.atualizaTema("", tema); + }; + i3GEO.janela.AGUARDEMODAL = true; + i3GEO.janela.abreAguarde("aguardeSalvaPonto", $trad("adic") + "..."); + i3GEO.janela.AGUARDEMODAL = false; - // cria um novo registro - if(!f.getProperties().idUnico || f.getProperties().idUnico == ""){ - p = i3GEO.configura.locaplic - + "/ferramentas/editortema/exec.php?funcao=adicionaGeometria&g_sid=" - + i3GEO.configura.sid; - cpJSON.call(p, "foo", redesenha, "&tema=" + tema + "&wkt=" + format.writeFeatures([f])); - } else { - // atualiza a geometria - p = i3GEO.configura.locaplic - + "/ferramentas/editortema/exec.php?funcao=atualizaGeometria&g_sid=" - + i3GEO.configura.sid; - cpJSON.call( - p, - "foo", - redesenha, - "&idunico=" + f.getProperties().idUnico + "&tema=" + tema + "&wkt=" + format.writeFeatures([f]) - ); - } - }, - funcaoCombo = function(obj) { - $i("editorOLondeComboTemaEditavel").innerHTML = obj.dados; - }, - texto = $trad("stema") + ":

"+$trad("salvaDadosEditor")+"



"; - //monta a janela para o usuario escolher em qual camada os dados serao salvos - if (n != 1) { - i3GEO.janela.tempoMsg($trad("seluma")); - } else { - i3GEO.janela.confirma(texto, 300, $trad("salva"), $trad("canc"), funcaoOK); - i3GEO.util.comboTemas("editorOLcomboTemaEditavel", funcaoCombo, "editorOLondeComboTemaEditavel", "", false, "editavel"); - } - }, - //muda a classe do botao para marca-lo como ativo - marcaBotao : function(classeBotao){ - //desmarca todos os botoes - var i, n, botoes = $i("i3GEObarraEdicao").getElementsByTagName("div"); - n = botoes.length; - for(i = 0; i < n; i++){ - botoes[i].className = botoes[i].className.replace("ItemActive","ItemInactive"); - if(classeBotao){ - botoes[i].className = botoes[i].className.replace(classeBotao+"ItemInactive",classeBotao+"ItemActive"); - } - } - i3GEO.editorOL.removeInteracoes(); - }, - //interacoes criadas ao ativar algum botao - //usado para remover as interacoes - interacoes : [], - removeInteracoes: function(){ - var i, n; - n = i3GEO.editorOL.interacoes.length; - for(i = 0; i < n; i++){ - i3geoOL.removeInteraction(i3GEO.editorOL.interacoes[i]); - } - i3GEO.editorOL.interacoes = []; - }, - botaoProcura : function(){ - var temp = document.createElement("div"); - temp.className = "editorOLprocuraItemInactive olButton"; - temp.title = $trad("t23"); - temp.onclick = function(){ - i3GEO.editorOL.criaJanelaBusca(); - YAHOO.procura.container.panel.show(); - }; - return temp; - }, - botaoPan : function(){ - var temp = document.createElement("div"); - temp.className = "editorOLpanItemInactive olButton"; - temp.title = "pan"; - temp.onclick = function(){ - i3GEO.editorOL.marcaBotao("editorOLpan"); - }; - return temp; - }, - botaoZoomBox : function(){ - var temp = document.createElement("div"); - temp.className = "editorOLzoomboxItemInactive olButton"; - temp.title = "zoombox"; - temp.onclick = function(){ - i3GEO.navega.zoomli(); - }; - return temp; - }, - botaoZoomTot : function(){ - var temp = document.createElement("div"); - temp.className = "editorOLzoomtotItemInactive olButton"; - temp.title = $trad("d2t"); - temp.onclick = function(){ - if (i3GEO.editorOL.mapext && i3GEO.editorOL.mapext != "") { - i3GEO.Interface.openlayers.zoom2ext(i3GEO.editorOL.mapext.join(" ")); - } else { - i3GEO.Interface.openlayers.zoom2ext(i3GEO.parametros.extentTotal); - } - }; - return temp; - }, - botaoZoomIn : function(){ - var temp = document.createElement("div"); - temp.className = "editorOLzoominItemInactive olButton"; - temp.title = $trad("d5t"); - temp.onclick = function(){ - var v = i3GEO.editorOL.mapa.getView(); - v.setZoom(v.getZoom() + 1); - }; - return temp; - }, - botaoZoomOut : function(){ - var temp = document.createElement("div"); - temp.className = "editorOLzoomoutItemInactive olButton"; - temp.title = $trad("d5t"); - temp.onclick = function(){ - var v = i3GEO.editorOL.mapa.getView(); - v.setZoom(v.getZoom() - 1); - }; - return temp; - }, - botaoLegenda : function(){ - var temp = document.createElement("div"); - temp.className = "editorOLlegendaItemInactive olButton"; - temp.title = $trad("p3"); - temp.onclick = function(){ - i3GEO.editorOL.mostraLegenda(); - }; - return temp; - }, - botaoDistancia : function(){ - var temp = document.createElement("div"); - temp.className = "editorOLdistanciaItemInactive olButton"; - temp.onclick = function(){ - i3GEO.editorOL.marcaBotao("editorOLdistancia"); - i3GEO.analise.medeDistancia.inicia(); - }; - return temp; - }, - botaoArea: function(){ - var temp = document.createElement("div"); - temp.className = "editorOLareaItemInactive olButton"; - temp.onclick = function(){ - i3GEO.editorOL.marcaBotao("editorOLarea"); - i3GEO.analise.medeArea.inicia(); - }; - return temp; - }, - botaoLinha: function(){ - var temp = document.createElement("div"); - temp.className = "editorOLlinhaItemInactive olButton"; - temp.title = $trad("dlinha"); - temp.onclick = function(){ - i3GEO.eventos.cliquePerm.desativa(); - i3GEO.editorOL.marcaBotao("editorOLlinha"); - var draw = new ol.interaction.Draw({ - type : "LineString" - }); - //adiciona a interacao para poder ser removida - i3GEO.editorOL.interacoes.push(draw); - //desativa ol.interaction.DoubleClickZoom - i3GEO.Interface.openlayers.parametrosMap.interactions[0].setActive(false); - draw.on("drawend", function(evt) { - evt.feature.setStyle( - new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: 'rgba(' + i3GEO.editorOL.simbologia.strokeColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', - width: i3GEO.editorOL.simbologia.strokeWidth - }), - fill: new ol.style.Fill({ - color: 'rgba(' + i3GEO.editorOL.simbologia.fillColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')' - }) - }) - ); - evt.feature.setId(i3GEO.util.uid()); - i3GEO.desenho.layergrafico.getSource().addFeature(evt.feature); - draw.setActive(false); - draw.setActive(true); - if (document.getElementById("panellistagEditor")) { - i3GEO.editorOL.listaGeometrias(); - } - }); - i3geoOL.addInteraction(draw); - }; - return temp; - }, - botaoPonto: function(){ - i3GEO.eventos.cliquePerm.desativa(); - var temp = document.createElement("div"); - temp.className = "editorOLpontoItemInactive olButton"; - temp.title = $trad("dponto"); - temp.onclick = function(){ - i3GEO.eventos.cliquePerm.desativa(); - i3GEO.editorOL.marcaBotao("editorOLponto"); - var draw = new ol.interaction.Draw({ - type : "Point" - }); - //adiciona a interacao para poder ser removida - i3GEO.editorOL.interacoes.push(draw); - i3GEO.Interface.openlayers.parametrosMap.interactions[0].setActive(false); - draw.on("drawend", function(evt) { - var simbolo, url; - url = i3GEO.editorOL.simbologia.externalGraphic; - if(url === ""){ - simbolo = new ol.style.Circle({ - radius: i3GEO.editorOL.simbologia.pointRadius, - fill: new ol.style.Fill({ - color: 'rgba(' + i3GEO.editorOL.simbologia.fillColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')' - }), - stroke: new ol.style.Stroke({ - color: 'rgba(' + i3GEO.editorOL.simbologia.strokeColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', - width: i3GEO.editorOL.simbologia.pointRadius / 3 - }) - }); - } - else{ - simbolo = new ol.style.Icon({ - src : url, - size : [i3GEO.editorOL.simbologia.graphicWidth,i3GEO.editorOL.simbologia.graphicHeight] - }); - } - evt.feature.setStyle( - new ol.style.Style({ - image: simbolo - }) - ); - evt.feature.setId(i3GEO.util.uid()); - i3GEO.desenho.layergrafico.getSource().addFeature(evt.feature); - draw.setActive(false); - draw.setActive(true); - if (document.getElementById("panellistagEditor")) { - i3GEO.editorOL.listaGeometrias(); - } - }); - i3geoOL.addInteraction(draw); - }; - return temp; - }, - botaoPoligono: function(){ - i3GEO.eventos.cliquePerm.desativa(); - var temp = document.createElement("div"); - temp.className = "editorOLpoligonoItemInactive olButton"; - temp.title = $trad("dpol"); - temp.onclick = function(){ - i3GEO.editorOL.marcaBotao("editorOLpoligono"); - var draw = new ol.interaction.Draw({ - type : "Polygon" - }); - /* + // cria um novo registro + if(!f.getProperties().idUnico || f.getProperties().idUnico == ""){ + p = i3GEO.configura.locaplic + + "/ferramentas/editortema/exec.php?funcao=adicionaGeometria&g_sid=" + + i3GEO.configura.sid; + cpJSON.call(p, "foo", redesenha, "&tema=" + tema + "&wkt=" + format.writeFeatures([f])); + } else { + // atualiza a geometria + p = i3GEO.configura.locaplic + + "/ferramentas/editortema/exec.php?funcao=atualizaGeometria&g_sid=" + + i3GEO.configura.sid; + cpJSON.call( + p, + "foo", + redesenha, + "&idunico=" + f.getProperties().idUnico + "&tema=" + tema + "&wkt=" + format.writeFeatures([f]) + ); + } + }, + funcaoCombo = function(obj) { + $i("editorOLondeComboTemaEditavel").innerHTML = obj.dados; + }, + texto = $trad("stema") + + "
"; + + //monta a janela para o usuario escolher em qual camada os dados serao salvos + if (n != 1) { + i3GEO.janela.tempoMsg($trad("seluma")); + } else { + i3GEO.janela.confirma(texto, 300, $trad("salva"), "", funcaoOK); + i3GEO.util.comboTemas( + "editorOLcomboTemaEditavel", + funcaoCombo, + "editorOLondeComboTemaEditavel", + "", + false, + "editavel", + " ", + false, + true, + "form-control comboTema" + ); + } + }, + //muda a classe do botao para marca-lo como ativo + marcaBotao : function(classeBotao){ + //desmarca todos os botoes + var i, n, botoes = $i("i3GEObarraEdicao").getElementsByTagName("div"); + n = botoes.length; + for(i = 0; i < n; i++){ + botoes[i].className = botoes[i].className.replace("ItemActive","ItemInactive"); + if(classeBotao){ + botoes[i].className = botoes[i].className.replace(classeBotao+"ItemInactive",classeBotao+"ItemActive"); + } + } + i3GEO.editorOL.removeInteracoes(); + }, + //interacoes criadas ao ativar algum botao + //usado para remover as interacoes + interacoes : [], + removeInteracoes: function(){ + var i, n; + n = i3GEO.editorOL.interacoes.length; + for(i = 0; i < n; i++){ + i3geoOL.removeInteraction(i3GEO.editorOL.interacoes[i]); + } + i3GEO.editorOL.interacoes = []; + }, + botaoProcura : function(){ + var temp = document.createElement("div"); + temp.className = "editorOLprocuraItemInactive olButton"; + temp.title = $trad("t23"); + temp.onclick = function(){ + i3GEO.editorOL.criaJanelaBusca(); + YAHOO.procura.container.panel.show(); + }; + return temp; + }, + botaoPan : function(){ + var temp = document.createElement("div"); + temp.className = "editorOLpanItemInactive olButton"; + temp.title = "pan"; + temp.onclick = function(){ + i3GEO.editorOL.marcaBotao("editorOLpan"); + }; + return temp; + }, + botaoZoomBox : function(){ + var temp = document.createElement("div"); + temp.className = "editorOLzoomboxItemInactive olButton"; + temp.title = "zoombox"; + temp.onclick = function(){ + i3GEO.navega.zoomli(); + }; + return temp; + }, + botaoZoomTot : function(){ + var temp = document.createElement("div"); + temp.className = "editorOLzoomtotItemInactive olButton"; + temp.title = $trad("d2t"); + temp.onclick = function(){ + if (i3GEO.editorOL.mapext && i3GEO.editorOL.mapext != "") { + i3GEO.Interface.openlayers.zoom2ext(i3GEO.editorOL.mapext.join(" ")); + } else { + i3GEO.Interface.openlayers.zoom2ext(i3GEO.parametros.extentTotal); + } + }; + return temp; + }, + botaoZoomIn : function(){ + var temp = document.createElement("div"); + temp.className = "editorOLzoominItemInactive olButton"; + temp.title = $trad("d5t"); + temp.onclick = function(){ + var v = i3GEO.editorOL.mapa.getView(); + v.setZoom(v.getZoom() + 1); + }; + return temp; + }, + botaoZoomOut : function(){ + var temp = document.createElement("div"); + temp.className = "editorOLzoomoutItemInactive olButton"; + temp.title = $trad("d5t"); + temp.onclick = function(){ + var v = i3GEO.editorOL.mapa.getView(); + v.setZoom(v.getZoom() - 1); + }; + return temp; + }, + botaoLegenda : function(){ + var temp = document.createElement("div"); + temp.className = "editorOLlegendaItemInactive olButton"; + temp.title = $trad("p3"); + temp.onclick = function(){ + i3GEO.editorOL.mostraLegenda(); + }; + return temp; + }, + botaoDistancia : function(){ + var temp = document.createElement("div"); + temp.className = "editorOLdistanciaItemInactive olButton"; + temp.onclick = function(){ + i3GEO.editorOL.marcaBotao("editorOLdistancia"); + i3GEO.analise.medeDistancia.inicia(); + }; + return temp; + }, + botaoArea: function(){ + var temp = document.createElement("div"); + temp.className = "editorOLareaItemInactive olButton"; + temp.onclick = function(){ + i3GEO.editorOL.marcaBotao("editorOLarea"); + i3GEO.analise.medeArea.inicia(); + }; + return temp; + }, + botaoLinha: function(){ + var temp = document.createElement("div"); + temp.className = "editorOLlinhaItemInactive olButton"; + temp.title = $trad("dlinha"); + temp.onclick = function(){ + i3GEO.eventos.cliquePerm.desativa(); + i3GEO.editorOL.marcaBotao("editorOLlinha"); + var draw = new ol.interaction.Draw({ + type : "LineString" + }); + //adiciona a interacao para poder ser removida + i3GEO.editorOL.interacoes.push(draw); + //desativa ol.interaction.DoubleClickZoom + i3GEO.Interface.openlayers.parametrosMap.interactions[0].setActive(false); + draw.on("drawend", function(evt) { + evt.feature.setStyle( + new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: 'rgba(' + i3GEO.editorOL.simbologia.strokeColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', + width: i3GEO.editorOL.simbologia.strokeWidth + }), + fill: new ol.style.Fill({ + color: 'rgba(' + i3GEO.editorOL.simbologia.fillColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')' + }) + }) + ); + evt.feature.setId(i3GEO.util.uid()); + i3GEO.desenho.layergrafico.getSource().addFeature(evt.feature); + draw.setActive(false); + draw.setActive(true); + if (document.getElementById("panellistagEditor")) { + i3GEO.editorOL.listaGeometrias(); + } + }); + i3geoOL.addInteraction(draw); + }; + return temp; + }, + botaoPonto: function(){ + i3GEO.eventos.cliquePerm.desativa(); + var temp = document.createElement("div"); + temp.className = "editorOLpontoItemInactive olButton"; + temp.title = $trad("dponto"); + temp.onclick = function(){ + i3GEO.eventos.cliquePerm.desativa(); + i3GEO.editorOL.marcaBotao("editorOLponto"); + var draw = new ol.interaction.Draw({ + type : "Point" + }); + //adiciona a interacao para poder ser removida + i3GEO.editorOL.interacoes.push(draw); + i3GEO.Interface.openlayers.parametrosMap.interactions[0].setActive(false); + draw.on("drawend", function(evt) { + var simbolo, url; + url = i3GEO.editorOL.simbologia.externalGraphic; + if(url === ""){ + simbolo = new ol.style.Circle({ + radius: i3GEO.editorOL.simbologia.pointRadius, + fill: new ol.style.Fill({ + color: 'rgba(' + i3GEO.editorOL.simbologia.fillColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')' + }), + stroke: new ol.style.Stroke({ + color: 'rgba(' + i3GEO.editorOL.simbologia.strokeColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', + width: i3GEO.editorOL.simbologia.pointRadius / 3 + }) + }); + } + else{ + simbolo = new ol.style.Icon({ + src : url, + size : [i3GEO.editorOL.simbologia.graphicWidth,i3GEO.editorOL.simbologia.graphicHeight] + }); + } + evt.feature.setStyle( + new ol.style.Style({ + image: simbolo + }) + ); + evt.feature.setId(i3GEO.util.uid()); + i3GEO.desenho.layergrafico.getSource().addFeature(evt.feature); + draw.setActive(false); + draw.setActive(true); + if (document.getElementById("panellistagEditor")) { + i3GEO.editorOL.listaGeometrias(); + } + }); + i3geoOL.addInteraction(draw); + }; + return temp; + }, + botaoPoligono: function(){ + i3GEO.eventos.cliquePerm.desativa(); + var temp = document.createElement("div"); + temp.className = "editorOLpoligonoItemInactive olButton"; + temp.title = $trad("dpol"); + temp.onclick = function(){ + i3GEO.editorOL.marcaBotao("editorOLpoligono"); + var draw = new ol.interaction.Draw({ + type : "Polygon" + }); + /* snap = new ol.interaction.Snap({ source: i3GEO.desenho.layergrafico.getSource() }); i3GEO.editorOL.interacoes.push(snap); - */ - //adiciona a interacao para poder ser removida - i3GEO.editorOL.interacoes.push(draw); - i3GEO.Interface.openlayers.parametrosMap.interactions[0].setActive(false); - draw.on("drawend", function(evt) { - evt.feature.setStyle( - new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: 'rgba(' + i3GEO.editorOL.simbologia.strokeColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', - width: i3GEO.editorOL.simbologia.strokeWidth - }), - fill: new ol.style.Fill({ - color: 'rgba(' + i3GEO.editorOL.simbologia.fillColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')' - }) - }) - ); - evt.feature.setId(i3GEO.util.uid()); - i3GEO.desenho.layergrafico.getSource().addFeature(evt.feature); - draw.setActive(false); - draw.setActive(true); - if (document.getElementById("panellistagEditor")) { - i3GEO.editorOL.listaGeometrias(); - } - }); - i3geoOL.addInteraction(draw); - }; - return temp; - }, - botaoTexto: function(){ - i3GEO.eventos.cliquePerm.desativa(); - var temp = document.createElement("div"); - temp.className = "editorOLtextoItemInactive olButton"; - temp.title = $trad("dtexto"); - temp.onclick = function(){ - i3GEO.eventos.cliquePerm.desativa(); - i3GEO.editorOL.marcaBotao("editorOLtexto"); - var draw = new ol.interaction.Draw({ - type : "Point" - }); - //adiciona a interacao para poder ser removida - i3GEO.editorOL.interacoes.push(draw); - i3GEO.Interface.openlayers.parametrosMap.interactions[0].setActive(false); - draw.on("drawend", function(evt) { - var texto = window.prompt("Texto", ""); - evt.feature.setStyle( - new ol.style.Style({ - text: new ol.style.Text({ - text: texto, - font: 'Bold ' + parseInt(i3GEO.editorOL.simbologia.fontSize,10) + 'px Arial', - textAlign: 'left', - stroke: new ol.style.Stroke({ - color: 'white', - width: i3GEO.editorOL.simbologia.strokeWidth - }), - fill: new ol.style.Fill({ - color: i3GEO.editorOL.simbologia.fontColor - }), - zIndex: 2000 - }) - }) - ); - evt.feature.setId(i3GEO.util.uid()); - i3GEO.desenho.layergrafico.getSource().addFeature(evt.feature); - draw.setActive(false); - draw.setActive(true); - i3GEO.editorOL.marcaBotao(); - }); - i3geoOL.addInteraction(draw); - }; - return temp; - }, - botaoSelecao: function(){ - i3GEO.eventos.cliquePerm.desativa(); - var temp = document.createElement("div"); - temp.className = "editorOLselecaoItemInactive olButton"; - temp.title = $trad("d24t"); - temp.onclick = function(){ - i3GEO.editorOL.marcaBotao("editorOLselecao"); - var sel = new ol.interaction.Select(); - //adiciona a interacao para poder ser removida - i3GEO.editorOL.interacoes.push(sel); - i3GEO.Interface.openlayers.parametrosMap.interactions[0].setActive(false); - sel.on("select", function(evt) { - var s,i, n, id, f; - n = evt.selected.length; - for(i=0; i 0){ - x = window.confirm($trad("excsel") + "?"); - if(x){ - i3GEO.editorOL.removeFeaturesSel(); - i3GEO.desenho.layergrafico.getSource().changed(); - } - } - else{ - i3GEO.janela.tempoMsg($trad("selum")); - } - }; - return temp; - }, - botaoFrente: function(){ - var temp = document.createElement("div"); - temp.className = "editorOLfrenteItemInactive olButton"; - temp.title = $trad("frente"); - temp.onclick = function(){ - var nsel = i3GEO.editorOL.idsSelecionados.length; - if(nsel > 0){ - i3GEO.editorOL.marcaBotao(); - i3GEO.editorOL.trazParaFrente(); - } - else{ - i3GEO.janela.tempoMsg($trad("selum")); - } - }; - return temp; - }, - //FIXME Translate nao funciona nessa versao do openlayers 3x precisa atualizar - botaoEdita: function(){ - i3GEO.eventos.cliquePerm.desativa(); - var temp = document.createElement("div"); - temp.className = "editorOLeditaItemInactive olButton"; - temp.title = $trad("modf"); - temp.onclick = function(){ - i3GEO.editorOL.featuresBackup = []; - var draw, nsel, f, c; - nsel = i3GEO.editorOL.idsSelecionados.length; - if(nsel == 1){ - i3GEO.editorOL.marcaBotao("editorOLedita"); - f = i3GEO.desenho.layergrafico.getSource().getFeatureById(i3GEO.editorOL.idsSelecionados[nsel - 1]); - i3GEO.editorOL.featuresBackup.push(f.clone()); - c = new ol.Collection(); - c.push(f); - draw = new ol.interaction.Modify({ - features: c - }); - //adiciona a interacao para poder ser removida - i3GEO.editorOL.interacoes.push(draw); - i3GEO.Interface.openlayers.parametrosMap.interactions[0].setActive(false); - i3geoOL.addInteraction(draw); - } - else{ - i3GEO.janela.tempoMsg($trad("selum")); - } - }; - return temp; - }, - botaoCorta: function(){ - i3GEO.eventos.cliquePerm.desativa(); - var temp = document.createElement("div"); - temp.className = "editorOLcortaItemInactive olButton"; - temp.title = $trad("cortaf"); - temp.onclick = function(){ - var nsel = i3GEO.editorOL.idsSelecionados.length; - if (nsel != 1) { - alert("Selecione primeiro um elemento para ser cortado"); - } else { - i3GEO.janela.tempoMsg("Desenhe um polígono"); - i3GEO.editorOL.marcaBotao("editorOLcorta"); - var draw = new ol.interaction.Draw({ - type : "Polygon" - }); - //adiciona a interacao para poder ser removida - i3GEO.editorOL.interacoes.push(draw); - i3GEO.Interface.openlayers.parametrosMap.interactions[0].setActive(false); - draw.on("drawend", function(evt) { - var temp, f, c, format, fwkt, cwkt; - f = evt.feature; - c = i3GEO.desenho.layergrafico.getSource().getFeatureById(i3GEO.editorOL.idsSelecionados[nsel - 1]); - i3GEO.editorOL.featuresBackup.push(c.clone()); - i3GEO.editorOL.marcaBotao(); - //corta - format = new ol.format.WKT(); - if(f && c){ - fwkt = format.writeFeatures([f]); - cwkt = format.writeFeatures([c]); - if(fwkt && cwkt){ - temp = function(retorno) { - i3GEO.janela.fechaAguarde("i3GEO.cortador"); - if (retorno != "" && retorno.data && retorno.data != "") { - i3GEO.janela.fechaAguarde("i3GEO.cortador"); - c.setGeometry(format.readGeometry(retorno.data)); - if (document.getElementById("panellistagEditor")) { - i3GEO.editorOL.listaGeometrias(); - } - } - }; - i3GEO.janela.abreAguarde("i3GEO.cortador", "Cortando"); - i3GEO.php.funcoesGeometriasWkt(temp, cwkt + "|" + fwkt, "difference"); - } - } - }); - i3geoOL.addInteraction(draw); - } - }; - return temp; - }, - botaoListaGeometrias: function(){ - var temp = document.createElement("div"); - temp.className = "editorOLlistagItemInactive olButton"; - temp.title = $trad("listag"); - temp.onclick = function(){ - i3GEO.editorOL.listaGeometrias(); - }; - return temp; - }, - botaoNovaaba: function(){ - var temp = document.createElement("div"); - temp.className = "editorOLnovaabaItemInactive olButton"; - temp.title = $trad("novaaba"); - temp.onclick = function(){ - window.open(window.location, '_blank'); - }; - return temp; - }, - botaoAjuda: function(){ - var temp = document.createElement("div"); - temp.className = "editorOLajudaItemInactive olButton"; - temp.title = $trad("s1"); - temp.onclick = function(){ - if(i3GEO.configura && i3GEO.configura.locaplic){ - i3GEO.janela.cria("400px", "200px", i3GEO.configura.locaplic - + "/ferramentas/editorol/openlayers_ajuda.php?completo=none", "", "", ""+$trad("s1")+"", "editorOlAjuda"); - } - else{ - window.open("openlayers_ajuda.php"); - } - }; - return temp; - }, - botaoFecha: function(){ - var temp = document.createElement("div"); - temp.className = "editorOLfechaItemInactive olButton"; - temp.title = $trad("x74"); - temp.onclick = function(){ - i3GEO.editorOL.unselTodos(); - i3GEO.editorOL.featuresBackup = []; - i3GEO.editorOL.marcaBotao(); - i3GEO.eventos.cliquePerm.ativa(); - $i("i3GEObarraEdicao").style.display = "none"; - }; - return temp; - }, - botaoTools: function(){ - var temp = document.createElement("div"); - temp.className = "editorOLtoolsItemInactive olButton"; - temp.title = $trad("u15a"); - temp.onclick = function(){ - // fora do i3geo, usa o jsts - if (i3GEO.php) { - i3GEO.editorOL.ferramentas(); - } else { - i3GEO.editorOL.carregajts("i3GEO.editorOL.ferramentas()"); - } - }; - return temp; - }, - botaoPropriedades: function(){ - var temp = document.createElement("div"); - temp.className = "editorOLpropriedadesItemInactive olButton"; - temp.title = $trad("p13"); - temp.onclick = function(){ - i3GEO.editorOL.propriedades(); - }; - return temp; - }, - botaoImprimir: function(){ - var temp = document.createElement("div"); - temp.className = "editorOLimprimirItemInactive olButton"; - temp.onclick = function(){ - window.print(); - }; - return temp; - }, - botaoGrid: function(){ - var temp = document.createElement("div"); - temp.className = "editorOLgridItemInactive olButton"; - temp.onclick = function(){ - var p = {"map": i3GEO.editorOL.mapa,"targetSize": 200}; - if(!i3GEO.editorOL.grid){ - i3GEO.editorOL.grid = new ol.Graticule(p); - } else { - if(i3GEO.editorOL.grid.getMap() == null){ - i3GEO.editorOL.grid.setMap(i3GEO.editorOL.mapa); - } else { - i3GEO.editorOL.grid.setMap(null); - } - } - }; - return temp; - }, - botaoIdentifica: function(){ - i3GEO.eventos.cliquePerm.desativa(); - var temp = document.createElement("div"); - temp.className = "editorOLidentificaItemInactive olButton"; - temp.title = $trad("d7t"); - temp.onclick = function(){ - if(i3GEO.editorOL.layerDefault == ""){ - i3GEO.editorOL.criaJanelaAtivaTema(); - } - i3GEO.eventos.cliquePerm.desativa(); - i3GEO.editorOL.marcaBotao("editorOLidentifica"); - var draw = new ol.interaction.Draw({ - type : "Point" - }); - //adiciona a interacao para poder ser removida - i3GEO.editorOL.interacoes.push(draw); - i3GEO.Interface.openlayers.parametrosMap.interactions[0].setActive(false); - draw.on("drawend", function(evt) { - var xy, p, retorno, url, layer, tema = $i("i3GEOOLlistaTemasAtivos"); - if(tema){ - layer = i3geoOL.getLayersByName(tema.value)[0]; - if(layer.getSource().getUrls){ - url = layer.getSource().getUrls()[0]; - } - else{ - url = layer.getSource().getUrl(); - } + if(s.getImage()){ + f.setStyle( + new ol.style.Style({ + image: new ol.style.Circle({ + radius: i3GEO.editorOL.simbologia.pointRadius, + fill: new ol.style.Fill({ + color: 'rgba(255, 255, 255, 0.5)' + }), + stroke: new ol.style.Stroke({ + color: 'blue', + width: i3GEO.editorOL.simbologia.pointRadius / 3 + }) + }) + }) + ); + if(!s.getImage().getSrc){ + f.setProperties({ + fillColor: s.getImage().getFill().getColor(), + strokeColor: s.getImage().getStroke().getColor(), + externalGraphic: "", + graphicHeight : 25, + graphicWidth : 25 + }); + } + else{ + f.setProperties({ + fillColor: "", + strokeColor: "", + externalGraphic: s.getImage().getSrc(), + graphicHeight : s.getImage().getSize()[1], + graphicWidth : s.getImage().getSize()[0] + }); + } + } + else{ + f.setProperties({ + fillColor: s.getFill().getColor(), + strokeColor: s.getStroke().getColor(), + externalGraphic: "", + graphicHeight : 25, + graphicWidth : 25 + }); + s.getFill().setColor('rgba(255, 255, 255, 0.5)'); + s.getStroke().setColor('blue'); + } + } + } + if (n === 0){ + i3GEO.editorOL.unselTodos(); + } + }); + i3geoOL.addInteraction(sel); + }; + return temp; + }, + botaoSelecaoTudo: function(){ + var temp = document.createElement("div"); + temp.className = "editorOLselecaoTudoItemInactive olButton"; + temp.title = $trad("studo"); + temp.onclick = function(){ + i3GEO.editorOL.marcaBotao(); + i3GEO.editorOL.selTodos(); + }; + return temp; + }, + botaoApaga: function(){ + var temp = document.createElement("div"); + temp.className = "editorOLapagaItemInactive olButton"; + temp.title = $trad("excsel"); + temp.onclick = function(){ + var x, nsel = i3GEO.editorOL.idsSelecionados.length; + i3GEO.editorOL.featuresBackup = []; + i3GEO.editorOL.marcaBotao(); + if(nsel > 0){ + x = window.confirm($trad("excsel") + "?"); + if(x){ + i3GEO.editorOL.removeFeaturesSel(); + i3GEO.desenho.layergrafico.getSource().changed(); + } + } + else{ + i3GEO.janela.tempoMsg($trad("selum")); + } + }; + return temp; + }, + botaoFrente: function(){ + var temp = document.createElement("div"); + temp.className = "editorOLfrenteItemInactive olButton"; + temp.title = $trad("frente"); + temp.onclick = function(){ + var nsel = i3GEO.editorOL.idsSelecionados.length; + if(nsel > 0){ + i3GEO.editorOL.marcaBotao(); + i3GEO.editorOL.trazParaFrente(); + } + else{ + i3GEO.janela.tempoMsg($trad("selum")); + } + }; + return temp; + }, + //FIXME Translate nao funciona nessa versao do openlayers 3x precisa atualizar + botaoEdita: function(){ + i3GEO.eventos.cliquePerm.desativa(); + var temp = document.createElement("div"); + temp.className = "editorOLeditaItemInactive olButton"; + temp.title = $trad("modf"); + temp.onclick = function(){ + i3GEO.editorOL.featuresBackup = []; + var draw, nsel, f, c; + nsel = i3GEO.editorOL.idsSelecionados.length; + if(nsel == 1){ + i3GEO.editorOL.marcaBotao("editorOLedita"); + f = i3GEO.desenho.layergrafico.getSource().getFeatureById(i3GEO.editorOL.idsSelecionados[nsel - 1]); + i3GEO.editorOL.featuresBackup.push(f.clone()); + c = new ol.Collection(); + c.push(f); + draw = new ol.interaction.Modify({ + features: c + }); + //adiciona a interacao para poder ser removida + i3GEO.editorOL.interacoes.push(draw); + i3GEO.Interface.openlayers.parametrosMap.interactions[0].setActive(false); + i3geoOL.addInteraction(draw); + } + else{ + i3GEO.janela.tempoMsg($trad("seluma")); + } + }; + return temp; + }, + botaoCorta: function(){ + i3GEO.eventos.cliquePerm.desativa(); + var temp = document.createElement("div"); + temp.className = "editorOLcortaItemInactive olButton"; + temp.title = $trad("cortaf"); + temp.onclick = function(){ + var nsel = i3GEO.editorOL.idsSelecionados.length; + if (nsel != 1) { + alert("Selecione primeiro um elemento para ser cortado"); + } else { + i3GEO.janela.tempoMsg("Desenhe um polígono"); + i3GEO.editorOL.marcaBotao("editorOLcorta"); + var draw = new ol.interaction.Draw({ + type : "Polygon" + }); + //adiciona a interacao para poder ser removida + i3GEO.editorOL.interacoes.push(draw); + i3GEO.Interface.openlayers.parametrosMap.interactions[0].setActive(false); + draw.on("drawend", function(evt) { + var temp, f, c, format, fwkt, cwkt; + f = evt.feature; + c = i3GEO.desenho.layergrafico.getSource().getFeatureById(i3GEO.editorOL.idsSelecionados[nsel - 1]); + i3GEO.editorOL.featuresBackup.push(c.clone()); + i3GEO.editorOL.marcaBotao(); + //corta + format = new ol.format.WKT(); + if(f && c){ + fwkt = format.writeFeatures([f]); + cwkt = format.writeFeatures([c]); + if(fwkt && cwkt){ + temp = function(retorno) { + i3GEO.janela.fechaAguarde("i3GEO.cortador"); + if (retorno != "" && retorno.data && retorno.data != "") { + i3GEO.janela.fechaAguarde("i3GEO.cortador"); + c.setGeometry(format.readGeometry(retorno.data)); + if (document.getElementById("panellistagEditor")) { + i3GEO.editorOL.listaGeometrias(); + } + } + }; + i3GEO.janela.abreAguarde("i3GEO.cortador", "Cortando"); + i3GEO.php.funcoesGeometriasWkt(temp, cwkt + "|" + fwkt, "difference"); + } + } + }); + i3geoOL.addInteraction(draw); + } + }; + return temp; + }, + botaoListaGeometrias: function(){ + var temp = document.createElement("div"); + temp.className = "editorOLlistagItemInactive olButton"; + temp.title = $trad("listag"); + temp.onclick = function(){ + i3GEO.editorOL.listaGeometrias(); + }; + return temp; + }, + botaoNovaaba: function(){ + var temp = document.createElement("div"); + temp.className = "editorOLnovaabaItemInactive olButton"; + temp.title = $trad("novaaba"); + temp.onclick = function(){ + window.open(window.location, '_blank'); + }; + return temp; + }, + botaoAjuda: function(){ + var temp = document.createElement("div"); + temp.className = "editorOLajudaItemInactive olButton"; + temp.title = $trad("s1"); + temp.onclick = function(){ + if(i3GEO.configura && i3GEO.configura.locaplic){ + i3GEO.janela.cria("400px", "200px", i3GEO.configura.locaplic + + "/ferramentas/editorol/openlayers_ajuda.php?completo=none", "", "", ""+$trad("s1")+"", "editorOlAjuda"); + } + else{ + window.open("openlayers_ajuda.php"); + } + }; + return temp; + }, + botaoFecha: function(){ + var temp = document.createElement("div"); + temp.className = "editorOLfechaItemInactive olButton"; + temp.title = $trad("x74"); + temp.onclick = function(){ + i3GEO.editorOL.unselTodos(); + i3GEO.editorOL.featuresBackup = []; + i3GEO.editorOL.marcaBotao(); + i3GEO.eventos.cliquePerm.ativa(); + $i("i3GEObarraEdicao").style.display = "none"; + }; + return temp; + }, + botaoTools: function(){ + var temp = document.createElement("div"); + temp.className = "editorOLtoolsItemInactive olButton"; + temp.title = $trad("u15a"); + temp.onclick = function(){ + // fora do i3geo, usa o jsts + if (i3GEO.php) { + i3GEO.editorOL.ferramentas(); + } else { + i3GEO.editorOL.carregajts("i3GEO.editorOL.ferramentas()"); + } + }; + return temp; + }, + botaoPropriedades: function(){ + var temp = document.createElement("div"); + temp.className = "editorOLpropriedadesItemInactive olButton"; + temp.title = $trad("p13"); + temp.onclick = function(){ + i3GEO.editorOL.propriedades(); + }; + return temp; + }, + botaoImprimir: function(){ + var temp = document.createElement("div"); + temp.className = "editorOLimprimirItemInactive olButton"; + temp.onclick = function(){ + window.print(); + }; + return temp; + }, + botaoGrid: function(){ + var temp = document.createElement("div"); + temp.className = "editorOLgridItemInactive olButton"; + temp.onclick = function(){ + var p = {"map": i3GEO.editorOL.mapa,"targetSize": 200}; + if(!i3GEO.editorOL.grid){ + i3GEO.editorOL.grid = new ol.Graticule(p); + } else { + if(i3GEO.editorOL.grid.getMap() == null){ + i3GEO.editorOL.grid.setMap(i3GEO.editorOL.mapa); + } else { + i3GEO.editorOL.grid.setMap(null); + } + } + }; + return temp; + }, + botaoIdentifica: function(){ + i3GEO.eventos.cliquePerm.desativa(); + var temp = document.createElement("div"); + temp.className = "editorOLidentificaItemInactive olButton"; + temp.title = $trad("d7t"); + temp.onclick = function(){ + if(i3GEO.editorOL.layerDefault == ""){ + i3GEO.editorOL.criaJanelaAtivaTema(); + } + i3GEO.eventos.cliquePerm.desativa(); + i3GEO.editorOL.marcaBotao("editorOLidentifica"); + var draw = new ol.interaction.Draw({ + type : "Point" + }); + //adiciona a interacao para poder ser removida + i3GEO.editorOL.interacoes.push(draw); + i3GEO.Interface.openlayers.parametrosMap.interactions[0].setActive(false); + draw.on("drawend", function(evt) { + var xy, p, retorno, url, layer, tema = $i("i3GEOOLlistaTemasAtivos"); + if(tema){ + layer = i3geoOL.getLayersByName(tema.value)[0]; + if(layer.getSource().getUrls){ + url = layer.getSource().getUrls()[0]; + } + else{ + url = layer.getSource().getUrl(); + } - //xy = evt.target.downPx_; - xy = evt.feature.getGeometry().getFirstCoordinate(); - retorno = function(r){ - var valorunico = "", camada = null, texto = "", lonlattexto, xy, temp, temp1, n, i, f = [], textoN = r.split(":"); - if(i3GEO.arvoreDeCamadas){ - camada = i3GEO.arvoreDeCamadas.pegaTema(tema.value, "", "name"); - } - xy = evt.feature.getGeometry().getFirstCoordinate(); - i3GEO.eventos.cliquePerm.ativo = true; - try { - if (textoN.length > 1) { - textoN.shift(); - textoN.shift(); - temp = textoN.join(":"); - temp = temp.replace(/'/g, ""); - temp = temp.replace(/\n/g, "|"); - temp = temp.replace(/_/g, " "); - //temp = temp.replace(/=/g, ":"); - temp = temp.split("|"); - n = temp.length; - for (i = 0; i < n; i++) { - temp1 = temp[i].replace(/^\s+/, ""); - temp1 = temp1.replace(/\s+$/, ""); - if (temp1 != ""){ - //verifica se a coluna eh o idunico e pega o valor - if(camada && camada.colunaidunico != "" && temp1.split("=")[0].trim() == camada.colunaidunico){ - valorunico = temp1.split("=")[1].trim(); - temp1 = "(*) "+temp1; - } - f.push(temp1); - } - } - texto = "
" + f.join("
") + "
"; - } - } catch (e) {} - //funcao para capturar a geometria - lonlattexto = - "edita geometria
"; - i3GEO.Interface.openlayers.balao("
" + lonlattexto + texto + "
","", xy[0], xy[1], false, false); - i3GEO.eventos.cliquePerm.ativo = false; - }; - p = i3GEO.configura.locaplic + "/classesphp/proxy.php?" - + url - + "&tipoRetornoProxy=string&REQUEST=GetFeatureInfo&TIPOIMAGEM=nenhum&DESLIGACACHE=sim&STYLES=&SERVICE=WMS&VERSION=1.1.1&FEATURE_COUNT=1" - + "&FORMAT=image/png&INFO_FORMAT=text/plain&SRS=EPSG:4326" - + "&LAYERS=" + tema.value - + "&layer=" + tema.value - + "&QUERY_LAYERS=" + tema.value - + "&HEIGHT=" + i3geoOL.getSize()[1] - + "&WIDTH=" + i3geoOL.getSize()[0] - + "&BBOX=" + i3geoOL.getExtent().toBBOX().split(",").join(" ") - + "&X=" + xy[0] + "&Y=" + xy[1]; - cpJSON.call(p, "foo", retorno, ""); - } - }); - i3geoOL.addInteraction(draw); - }; - return temp; - }, - botaoSalva: function(){ - var temp = document.createElement("div"); - temp.className = "editorOLsalvaItemInactive olButton"; - temp.title = $trad("salva"); - temp.onclick = function(){ - i3GEO.editorOL.salvaGeometrias(); - }; - return temp; - }, - criaBotoes : function(botoes) { - if($i("i3GEObarraEdicao")){ - $i("i3GEObarraEdicao").style.display = "block"; - return; - } - //cria o painel onde entrarao os icones - i3GEOpanelEditor = document.createElement("div"); - i3GEOpanelEditor.id = "i3GEObarraEdicao"; - i3GEOpanelEditor.className = "olControlEditingToolbar1 noprint"; - //cria os icones - if (botoes.imprimir === true) { - //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoImprimir()); - } - if (botoes.grid === true) { - //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoGrid()); - } - if (botoes.novaaba === true) { - //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoNovaaba()); - } - if (botoes.procura === true) { - //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoProcura()); - } - if (botoes.pan === true) { - //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoPan()); - } - if (botoes.zoombox === true) { - //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoZoomBox()); - } - if (botoes.zoomtot === true) { - //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoZoomTot()); - } - if (botoes.zoomin === true) { - //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoZoomIn()); - } - if (botoes.zoomout === true) { - //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoZoomOut()); - } - if (botoes.legenda === true) { - //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoLegenda()); - } - if (botoes.distancia === true) { - //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoDistancia()); - } - if (botoes.area === true) { - //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoArea()); - } - if (botoes.identifica === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoIdentifica()); - } - if (botoes.linha === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoLinha()); - } - if (botoes.ponto === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoPonto()); - } - if (botoes.poligono === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoPoligono()); - } - if (botoes.texto === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoTexto()); - } - if (botoes.edita === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoEdita()); - } - if (botoes.selecao === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoSelecao()); - } - if (botoes.selecaotudo === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoSelecaoTudo()); - } - if (botoes.apaga === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoApaga()); - } - if (botoes.frente === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoFrente()); - } - if (botoes.edita === true && botoes.corta === true && i3GEO.php) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoCorta()); - } - if (botoes.edita === true && botoes.listag === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoListaGeometrias()); - } - if (botoes.tools === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoTools()); - } - if (botoes.propriedades === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoPropriedades()); - } - if (botoes.salva === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoSalva()); - } - if (botoes.ajuda === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoAjuda()); - } - if (botoes.fecha === true) { - i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoFecha()); - } - i3GEOpanelEditor.style.width = i3GEOpanelEditor.getElementsByTagName("div").length * 33 + "px"; - i3GEO.editorOL.mapa.getViewport().getElementsByClassName("ol-overlaycontainer-stopevent")[0].appendChild(i3GEOpanelEditor); - }, - removeFeaturesSel : function(){ - var s, i, nsel, f; - nsel = i3GEO.editorOL.idsSelecionados.length; - s = i3GEO.desenho.layergrafico.getSource(); - for(i=0; i 1) { + textoN.shift(); + textoN.shift(); + temp = textoN.join(":"); + temp = temp.replace(/'/g, ""); + temp = temp.replace(/\n/g, "|"); + temp = temp.replace(/_/g, " "); + //temp = temp.replace(/=/g, ":"); + temp = temp.split("|"); + n = temp.length; + for (i = 0; i < n; i++) { + temp1 = temp[i].replace(/^\s+/, ""); + temp1 = temp1.replace(/\s+$/, ""); + if (temp1 != ""){ + //verifica se a coluna eh o idunico e pega o valor + if(camada && camada.colunaidunico != "" && temp1.split("=")[0].trim() == camada.colunaidunico){ + valorunico = temp1.split("=")[1].trim(); + temp1 = "(*) "+temp1; + } + f.push(temp1); + } + } + texto = "
" + f.join("
") + "
"; + } + } catch (e) {} + //funcao para capturar a geometria + lonlattexto = + "edita geometria
"; + i3GEO.Interface.openlayers.balao("
" + lonlattexto + texto + "
","", xy[0], xy[1], false, false); + i3GEO.eventos.cliquePerm.ativo = false; + }; + p = i3GEO.configura.locaplic + "/classesphp/proxy.php?" + + url + + "&tipoRetornoProxy=string&REQUEST=GetFeatureInfo&TIPOIMAGEM=nenhum&DESLIGACACHE=sim&STYLES=&SERVICE=WMS&VERSION=1.1.1&FEATURE_COUNT=1" + + "&FORMAT=image/png&INFO_FORMAT=text/plain&SRS=EPSG:4326" + + "&LAYERS=" + tema.value + + "&layer=" + tema.value + + "&QUERY_LAYERS=" + tema.value + + "&HEIGHT=" + i3geoOL.getSize()[1] + + "&WIDTH=" + i3geoOL.getSize()[0] + + "&BBOX=" + i3geoOL.getExtent().toBBOX().split(",").join(" ") + + "&X=" + xy[0] + "&Y=" + xy[1]; + cpJSON.call(p, "foo", retorno, ""); + } + }); + i3geoOL.addInteraction(draw); + }; + return temp; + }, + botaoSalva: function(){ + var temp = document.createElement("div"); + temp.className = "editorOLsalvaItemInactive olButton"; + temp.title = $trad("salva"); + temp.onclick = function(){ + i3GEO.editorOL.salvaGeometrias(); + }; + return temp; + }, + criaBotoes : function(botoes) { + if($i("i3GEObarraEdicao")){ + $i("i3GEObarraEdicao").style.display = "block"; + return; + } + //cria o painel onde entrarao os icones + i3GEOpanelEditor = document.createElement("div"); + i3GEOpanelEditor.id = "i3GEObarraEdicao"; + i3GEOpanelEditor.className = "olControlEditingToolbar1 noprint"; + //cria os icones + if (botoes.imprimir === true) { + //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoImprimir()); + } + if (botoes.grid === true) { + //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoGrid()); + } + if (botoes.novaaba === true) { + //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoNovaaba()); + } + if (botoes.procura === true) { + //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoProcura()); + } + if (botoes.pan === true) { + //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoPan()); + } + if (botoes.zoombox === true) { + //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoZoomBox()); + } + if (botoes.zoomtot === true) { + //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoZoomTot()); + } + if (botoes.zoomin === true) { + //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoZoomIn()); + } + if (botoes.zoomout === true) { + //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoZoomOut()); + } + if (botoes.legenda === true) { + //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoLegenda()); + } + if (botoes.distancia === true) { + //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoDistancia()); + } + if (botoes.area === true) { + //i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoArea()); + } + if (botoes.identifica === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoIdentifica()); + } + if (botoes.linha === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoLinha()); + } + if (botoes.ponto === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoPonto()); + } + if (botoes.poligono === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoPoligono()); + } + if (botoes.texto === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoTexto()); + } + if (botoes.edita === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoEdita()); + } + if (botoes.selecao === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoSelecao()); + } + if (botoes.selecaotudo === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoSelecaoTudo()); + } + if (botoes.apaga === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoApaga()); + } + if (botoes.frente === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoFrente()); + } + if (botoes.edita === true && botoes.corta === true && i3GEO.php) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoCorta()); + } + if (botoes.edita === true && botoes.listag === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoListaGeometrias()); + } + if (botoes.tools === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoTools()); + } + if (botoes.propriedades === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoPropriedades()); + } + if (botoes.salva === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoSalva()); + } + if (botoes.ajuda === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoAjuda()); + } + if (botoes.fecha === true) { + i3GEOpanelEditor.appendChild(i3GEO.editorOL.botaoFecha()); + } + i3GEOpanelEditor.style.width = i3GEOpanelEditor.getElementsByTagName("div").length * 33 + "px"; + i3GEO.editorOL.mapa.getViewport().getElementsByClassName("ol-overlaycontainer-stopevent")[0].appendChild(i3GEOpanelEditor); + }, + removeFeaturesSel : function(){ + var s, i, nsel, f; + nsel = i3GEO.editorOL.idsSelecionados.length; + s = i3GEO.desenho.layergrafico.getSource(); + for(i=0; i' + '

Ajusta nó em edição para o(a):

' + '' @@ -2010,589 +2029,589 @@ i3GEO.editorOL = + ' ' + ' ' + '
desloca
'; - */ + */ - if (i3GEO && typeof i3GEO != undefined && i3GEO != "") { - YAHOO.editorOL.container.panel - .setHeader("Propriedades"); - } else { - YAHOO.editorOL.container.panel.setHeader("Propriedades"); - } + if (i3GEO && typeof i3GEO != undefined && i3GEO != "") { + YAHOO.editorOL.container.panel + .setHeader("Propriedades"); + } else { + YAHOO.editorOL.container.panel.setHeader("Propriedades"); + } - YAHOO.editorOL.container.panel.setFooter(""); - YAHOO.editorOL.container.panel.render(document.body); + YAHOO.editorOL.container.panel.setFooter(""); + YAHOO.editorOL.container.panel.render(document.body); - YAHOO.editorOL.container.panel.center(); - YAHOO.util.Event.addListener(YAHOO.editorOL.container.panel.close, "click", function() { - }); - i3GEO.util.aplicaAquarela("panelpropriedadesEditor"); - } - YAHOO.editorOL.container.panel.show(); - temp = $i("panelpropriedadesEditor").getElementsByTagName("div"); - if (temp && temp[2]) { - temp[2].style.overflow = "auto"; - } - }, - listaGeometrias : function() { - if (!document.getElementById("panellistagEditor")) { - YAHOO.namespace("editorOL.listaGeometrias"); - YAHOO.editorOL.listaGeometrias.panel = new YAHOO.widget.Panel("panellistagEditor", { - iframe : true, - width : "380px", - height : "300px", - overflow: "auto", - visible : false, - draggable : true, - close : true - }); - if (i3GEO && typeof i3GEO != undefined && i3GEO != "") { - YAHOO.editorOL.listaGeometrias.panel - .setHeader("" + $trad("u6") + "" ); - } else { - YAHOO.editorOL.listaGeometrias.panel.setHeader($trad("u6")); - } - YAHOO.editorOL.listaGeometrias.panel.setFooter(""); - YAHOO.editorOL.listaGeometrias.panel.render(document.body); - YAHOO.editorOL.listaGeometrias.panel.center(); - YAHOO.util.Event.addListener(YAHOO.editorOL.listaGeometrias.panel.close, "click", function() { - YAHOO.editorOL.listaGeometrias.panel.destroy(); - }); - } else { - YAHOO.editorOL.listaGeometrias.panel.render(document.body); - } - var id, temp, geos = i3GEO.desenho.layergrafico.getSource().getFeatures(), n = geos.length, ins = ""; - ins += '
'; - while (n > 0) { - n -= 1; - id = geos[n].getId(); - if(id){ - ins += '
' - + '' - + '' - + id + "
"; - } - } - ins += "
"; - if (geos.length === 0) { - ins = '
' + $trad("meneditor2") + "
"; - } - YAHOO.editorOL.listaGeometrias.panel.setBody(ins); - YAHOO.editorOL.listaGeometrias.panel.show(); + YAHOO.editorOL.container.panel.center(); + YAHOO.util.Event.addListener(YAHOO.editorOL.container.panel.close, "click", function() { + }); + i3GEO.util.aplicaAquarela("panelpropriedadesEditor"); + } + YAHOO.editorOL.container.panel.show(); + temp = $i("panelpropriedadesEditor").getElementsByTagName("div"); + if (temp && temp[2]) { + temp[2].style.overflow = "auto"; + } + }, + listaGeometrias : function() { + if (!document.getElementById("panellistagEditor")) { + YAHOO.namespace("editorOL.listaGeometrias"); + YAHOO.editorOL.listaGeometrias.panel = new YAHOO.widget.Panel("panellistagEditor", { + iframe : true, + width : "380px", + height : "300px", + overflow: "auto", + visible : false, + draggable : true, + close : true + }); + if (i3GEO && typeof i3GEO != undefined && i3GEO != "") { + YAHOO.editorOL.listaGeometrias.panel + .setHeader("" + $trad("u6") + "" ); + } else { + YAHOO.editorOL.listaGeometrias.panel.setHeader($trad("u6")); + } + YAHOO.editorOL.listaGeometrias.panel.setFooter(""); + YAHOO.editorOL.listaGeometrias.panel.render(document.body); + YAHOO.editorOL.listaGeometrias.panel.center(); + YAHOO.util.Event.addListener(YAHOO.editorOL.listaGeometrias.panel.close, "click", function() { + YAHOO.editorOL.listaGeometrias.panel.destroy(); + }); + } else { + YAHOO.editorOL.listaGeometrias.panel.render(document.body); + } + var id, temp, geos = i3GEO.desenho.layergrafico.getSource().getFeatures(), n = geos.length, ins = ""; + ins += '
'; + while (n > 0) { + n -= 1; + id = geos[n].getId(); + if(id){ + ins += '
' + + '' + + '' + + id + "
"; + } + } + ins += "
"; + if (geos.length === 0) { + ins = '
' + $trad("meneditor2") + "
"; + } + YAHOO.editorOL.listaGeometrias.panel.setBody(ins); + YAHOO.editorOL.listaGeometrias.panel.show(); - }, - ferramentas : function() { - if(i3GEO.editorOL.MUSTACHEFERRAMENTAS == ""){ - $.get(i3GEO.configura.locaplic + "/ferramentas/editorol/templateFerramentas_mst.html", function(template) { - i3GEO.editorOL.MUSTACHEFERRAMENTAS = template; - i3GEO.editorOL.ferramentas(); - }); - return; - } - var b, ins; - if (!document.getElementById("panelferramentasEditor")) { - YAHOO.namespace("editorOL.ferramentas"); - YAHOO.editorOL.ferramentas.panel = new YAHOO.widget.Panel("panelferramentasEditor", { - zIndex : 20000, - iframe : true, - width : "300px", - visible : false, - draggable : true, - close : true - }); - var hash = { - "opsel": $trad("opsel"), - "p14": $trad("p14"), - "hidden": "hidden" - }; - if (i3GEO.php) { - hash.hidden = ""; - } - ins = Mustache.render(i3GEO.editorOL.MUSTACHEFERRAMENTAS, hash); - YAHOO.editorOL.ferramentas.panel.setBody(ins); - YAHOO.editorOL.ferramentas.panel.setHeader("Ferramentas"); + }, + ferramentas : function() { + if(i3GEO.editorOL.MUSTACHEFERRAMENTAS == ""){ + $.get(i3GEO.configura.locaplic + "/ferramentas/editorol/templateFerramentas_mst.html", function(template) { + i3GEO.editorOL.MUSTACHEFERRAMENTAS = template; + i3GEO.editorOL.ferramentas(); + }); + return; + } + var b, ins; + if (!document.getElementById("panelferramentasEditor")) { + YAHOO.namespace("editorOL.ferramentas"); + YAHOO.editorOL.ferramentas.panel = new YAHOO.widget.Panel("panelferramentasEditor", { + zIndex : 20000, + iframe : true, + width : "300px", + visible : false, + draggable : true, + close : true + }); + var hash = { + "opsel": $trad("opsel"), + "p14": $trad("p14"), + "hidden": "hidden" + }; + if (i3GEO.php) { + hash.hidden = ""; + } + ins = Mustache.render(i3GEO.editorOL.MUSTACHEFERRAMENTAS, hash); + YAHOO.editorOL.ferramentas.panel.setBody(ins); + YAHOO.editorOL.ferramentas.panel.setHeader("Ferramentas"); - YAHOO.editorOL.ferramentas.panel.setFooter(""); - YAHOO.editorOL.ferramentas.panel.render(document.body); - YAHOO.editorOL.ferramentas.panel.center(); - YAHOO.util.Event.addListener(YAHOO.editorOL.ferramentas.panel.close, "click", function() { - }); + YAHOO.editorOL.ferramentas.panel.setFooter(""); + YAHOO.editorOL.ferramentas.panel.render(document.body); + YAHOO.editorOL.ferramentas.panel.center(); + YAHOO.util.Event.addListener(YAHOO.editorOL.ferramentas.panel.close, "click", function() { + }); - } else { - YAHOO.editorOL.ferramentas.panel.render(document.body); - } - YAHOO.editorOL.ferramentas.panel.show(); - }, - //TODO implementar ao atualizar OL3 - snap : function() { - var target = i3GEOOLsnap.targets[0], tipos = [ - "node", "vertex", "edge" - ], ntipos = tipos.length, i, temp, ativa = false; - i3GEOOLsnap.deactivate(); - for (i = 0; i < ntipos; i++) { - temp = $i("target_" + tipos[i]); - target[tipos[i]] = temp.checked; - if (temp.checked === true) { - ativa = true; - } - temp = $i("target_" + tipos[i] + "Tolerance"); - target[tipos[i] + "Tolerance"] = temp.value; - } - if (ativa === true) { - i3GEOOLsnap.activate(); - } - }, - split : function() { - i3GEOOLsplit.deactivate(); - var temp = $i("edge_split_toggle"); - if (temp.checked === true) { - i3GEOOLsplit.activate(); - } - }, - processageo : function(operacao) { - if (operacao === "") { - return; - } - var polis, linhas, pontos, temp, nsel = i3GEO.editorOL.idsSelecionados.length; - if (nsel > 0) { - temp = function(retorno) { - if (i3GEO.janela) { - i3GEO.janela.fechaAguarde("i3GEO.editorPoli"); - i3GEO.janela.fechaAguarde("i3GEO.editorLinhas"); - i3GEO.janela.fechaAguarde("i3GEO.editorPontos"); - } - if (retorno != "" && retorno.data && retorno.data != "" && operacao != "converteSHP") { - i3GEO.editorOL.substituiFeaturesSel(retorno.data); - } - if (operacao === "converteSHP") { - i3GEO.atualiza(); - i3GEO.janela.minimiza("paneltemaativo"); - } - }; - if (operacao === "incorporar") { - polis = i3GEO.editorOL.retornaFeaturesTipo("Polygon"); - linhas = i3GEO.editorOL.retornaFeaturesTipo("LineString"); - pontos = i3GEO.editorOL.retornaFeaturesTipo("Point"); - if (polis.length > 0) { - temp = i3GEO.editorOL.merge(polis); - } - if (linhas.length > 0) { - temp = i3GEO.editorOL.merge(linhas); - } - if (pontos.length > 0) { - temp = i3GEO.editorOL.desagrupa(pontos); - } - if (i3GEO.mapa) { - i3GEO.mapa.dialogo.wkt2layer(temp); - } - return; - } - if (operacao === "union" && !i3GEO.php) { - polis = i3GEO.editorOL.retornaFeaturesTipo("Polygon"); - linhas = i3GEO.editorOL.retornaFeaturesTipo("LineString"); - pontos = i3GEO.editorOL.retornaFeaturesTipo("Point"); - if (polis.length > 0) { - temp = i3GEO.editorOL.uniaojts(polis); - i3GEO.editorOL.substituiFeaturesSel(temp); - } - if (linhas.length > 0) { - temp = i3GEO.editorOL.uniaojts(linhas); - i3GEO.editorOL.substituiFeaturesSel(temp); - } - if (pontos.length > 0) { - temp = i3GEO.editorOL.uniaojts(pontos); - i3GEO.editorOL.substituiFeaturesSel(temp); - } - } else { - polis = i3GEO.editorOL.retornaGeometriasTipo("Polygon"); - linhas = i3GEO.editorOL.retornaGeometriasTipo("LineString"); - pontos = i3GEO.editorOL.retornaGeometriasTipo("Point"); - if (polis.length > 0) { - i3GEO.janela.abreAguarde("i3GEO.editorPoli", "Poligonos"); - i3GEO.php.funcoesGeometriasWkt(temp, polis.join("|"), operacao); - } - if (linhas.length > 0) { - i3GEO.janela.abreAguarde("i3GEO.editorLinhas", "Linhas"); - i3GEO.php.funcoesGeometriasWkt(temp, linhas.join("|"), operacao); - } - if (pontos.length > 0) { - i3GEO.janela.abreAguarde("i3GEO.editorPontos", "Pontos"); - i3GEO.php.funcoesGeometriasWkt(temp, pontos.join("|"), operacao); - } - } - i3GEO.desenho.layergrafico.getSource().changed(); - return; - } else { - i3GEO.janela.tempoMsg("Selecione pelo menos dois elementos"); - } - }, - desagrupa : function(geoms) { - var n = geoms.length, - w = [], - g, m, i, - format = new ol.format.WKT(); - for (i = 0; i < n; i++) { - g = format.writeFeatures([geoms[i]]); - m = new Wkt.Wkt(); - m.read(g); - w.push(m); - } - return w.join("\n"); - }, - merge : function(geoms) { - var n = geoms.length, - w = new Wkt.Wkt(), - g, m, i,f, - format = new ol.format.WKT(); - f = format.writeFeatures([geoms[0]]); - w.read(f); - if (n > 1) { - for (i = 1; i < n; i++) { - g = format.writeFeatures([geoms[i]]); - m = new Wkt.Wkt(); - m.read(g); - w.merge(m); - } - } - return w.write(); - }, - uniaojts : function(geoms) { - var n = geoms.length, - fwkt = new ol.format.WKT(), - rwkt = new jsts.io.WKTReader(), - wwkt = new jsts.io.WKTWriter(), - g, i, uniao; - if (n > 1) { - //converte em wkt - uniao = fwkt.writeFeatures([geoms[0]]); - //le na jsts - uniao = rwkt.read(uniao); - for (i = 1; i <= n; i++) { - g = fwkt.writeFeatures([geoms[i]]); - uniao = uniao.union(rwkt.read(g)); - } - //gera em wkt - uniao = wwkt.write(uniao); - return [ - fwkt.readFeatures(uniao) - ]; - } else { - return false; - } - }, - retornaGeometriasTipo : function(tipo) { - var n = i3GEO.editorOL.idsSelecionados.length, lista = [], i, - s = i3GEO.desenho.layergrafico.getSource(), - fwkt = new ol.format.WKT(); - for (i = 0; i < n; i++) { - f = s.getFeatureById(i3GEO.editorOL.idsSelecionados[i]); - if (f.getGeometry().getType() == tipo) { - lista.push(fwkt.writeFeatures([f])); - } - } - return lista; - }, - retornaFeaturesTipo : function(tipo) { - var n = i3GEO.editorOL.idsSelecionados.length, lista = [], i, - s = i3GEO.desenho.layergrafico.getSource(); - for (i = 0; i < n; i++) { - f = s.getFeatureById(i3GEO.editorOL.idsSelecionados[i]); - if (f.getGeometry().getType() == tipo) { - lista.push(f); - } - } - return lista; - }, - guardaBackup : function() { - return; - // if(!i3GEO.editorOL.backup) - // {i3GEO.editorOL.backup = new OpenLayers.Layer.Vector("Backup",{displayInLayerSwitcher:false,visibility:false});} - // else - // {i3GEO.editorOL.backup.removeFeatures(i3GEO.editorOL.backup.features);} - // i3GEO.editorOL.backup.addFeatures(i3GEO.desenho.layergrafico.features); - }, - selTodos : function() { - i3GEO.editorOL.unselTodos(); - var features, n, f, i, id, st; - features = i3GEO.desenho.layergrafico.getSource().getFeatures(); - n = features.length; - for (i = 0; i < n; i++) { - f = features[i]; - id = f.getId(); - if(!id){ - id = i3GEO.util.uid(); - f.setId(id); - } - i3GEO.editorOL.idsSelecionados.push(id); - st = f.getStyle(); - //para o caso de pontos - if(st && st.getImage()){ - f.setStyle( - new ol.style.Style({ - image: new ol.style.Circle({ - radius: i3GEO.editorOL.simbologia.pointRadius, - fill: new ol.style.Fill({ - color: 'rgba(255, 255, 255, 0.5)' - }), - stroke: new ol.style.Stroke({ - color: 'blue', - width: i3GEO.editorOL.simbologia.pointRadius / 3 - }) - }) - }) - ); - if(st.getImage().getSrc){ - f.setProperties({ - fillColor: "", - strokeColor: "", - externalGraphic: st.getImage().getSrc(), - graphicHeight : st.getImage().getSize()[1], - graphicWidth : st.getImage().getSize()[0] - }); - } - else{ - f.setProperties({ - fillColor: st.getImage().getFill().getColor(), - strokeColor: st.getImage().getStroke().getColor(), - externalGraphic: "", - graphicHeight: "", - graphicWidth: "" - }); - } - } - else if (st){ - f.setProperties({ - fillColor: st.getFill().getColor(), - strokeColor: st.getStroke().getColor() - }); - st.getFill().setColor('rgba(255, 255, 255, 0.5)'); - st.getStroke().setColor('blue'); - } - } - i3GEO.desenho.layergrafico.getSource().changed(); - }, - unselTodos : function() { - var i, n, f, s, st; - s = i3GEO.desenho.layergrafico.getSource(); - n = i3GEO.editorOL.idsSelecionados.length; - for(i=0; i 0) { - i3GEO.desenho.layergrafico.removeFeatures(i3GEO.desenho.layergrafico.features); - i3GEO.desenho.layergrafico.addFeatures(i3GEO.editorOL.backup.features); - } - if (document.getElementById("panellistagEditor")) { - i3GEO.editorOL.listaGeometrias(); - } - // i3GEO.editorOL.backup.removeFeatures(i3GEO.editorOL.backup.features); - }, - substituiFeaturesSel : function(f) { - i3GEO.editorOL.removeFeaturesSel(); - var fwkt = new ol.format.WKT(); - f = fwkt.readFeatures(f)[0]; - f.setStyle( - new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: 'rgba(' + i3GEO.editorOL.simbologia.strokeColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', - width: i3GEO.editorOL.simbologia.strokeWidth - }), - fill: new ol.style.Fill({ - color: 'rgba(' + i3GEO.editorOL.simbologia.fillColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')' - }) - }) - ); - f.setId(i3GEO.util.uid()); - i3GEO.desenho.layergrafico.getSource().addFeature(f); - }, - adicionaFeatureWkt : function(wkt, atributos) { - var f, fwkt = new OpenLayers.Format.WKT(); + } else { + YAHOO.editorOL.ferramentas.panel.render(document.body); + } + YAHOO.editorOL.ferramentas.panel.show(); + }, + //TODO implementar ao atualizar OL3 + snap : function() { + var target = i3GEOOLsnap.targets[0], tipos = [ + "node", "vertex", "edge" + ], ntipos = tipos.length, i, temp, ativa = false; + i3GEOOLsnap.deactivate(); + for (i = 0; i < ntipos; i++) { + temp = $i("target_" + tipos[i]); + target[tipos[i]] = temp.checked; + if (temp.checked === true) { + ativa = true; + } + temp = $i("target_" + tipos[i] + "Tolerance"); + target[tipos[i] + "Tolerance"] = temp.value; + } + if (ativa === true) { + i3GEOOLsnap.activate(); + } + }, + split : function() { + i3GEOOLsplit.deactivate(); + var temp = $i("edge_split_toggle"); + if (temp.checked === true) { + i3GEOOLsplit.activate(); + } + }, + processageo : function(operacao) { + if (operacao === "") { + return; + } + var polis, linhas, pontos, temp, nsel = i3GEO.editorOL.idsSelecionados.length; + if (nsel > 0) { + temp = function(retorno) { + if (i3GEO.janela) { + i3GEO.janela.fechaAguarde("i3GEO.editorPoli"); + i3GEO.janela.fechaAguarde("i3GEO.editorLinhas"); + i3GEO.janela.fechaAguarde("i3GEO.editorPontos"); + } + if (retorno != "" && retorno.data && retorno.data != "" && operacao != "converteSHP") { + i3GEO.editorOL.substituiFeaturesSel(retorno.data); + } + if (operacao === "converteSHP") { + i3GEO.atualiza(); + i3GEO.janela.minimiza("paneltemaativo"); + } + }; + if (operacao === "incorporar") { + polis = i3GEO.editorOL.retornaFeaturesTipo("Polygon"); + linhas = i3GEO.editorOL.retornaFeaturesTipo("LineString"); + pontos = i3GEO.editorOL.retornaFeaturesTipo("Point"); + if (polis.length > 0) { + temp = i3GEO.editorOL.merge(polis); + } + if (linhas.length > 0) { + temp = i3GEO.editorOL.merge(linhas); + } + if (pontos.length > 0) { + temp = i3GEO.editorOL.desagrupa(pontos); + } + if (i3GEO.mapa) { + i3GEO.mapa.dialogo.wkt2layer(temp); + } + return; + } + if (operacao === "union" && !i3GEO.php) { + polis = i3GEO.editorOL.retornaFeaturesTipo("Polygon"); + linhas = i3GEO.editorOL.retornaFeaturesTipo("LineString"); + pontos = i3GEO.editorOL.retornaFeaturesTipo("Point"); + if (polis.length > 0) { + temp = i3GEO.editorOL.uniaojts(polis); + i3GEO.editorOL.substituiFeaturesSel(temp); + } + if (linhas.length > 0) { + temp = i3GEO.editorOL.uniaojts(linhas); + i3GEO.editorOL.substituiFeaturesSel(temp); + } + if (pontos.length > 0) { + temp = i3GEO.editorOL.uniaojts(pontos); + i3GEO.editorOL.substituiFeaturesSel(temp); + } + } else { + polis = i3GEO.editorOL.retornaGeometriasTipo("Polygon"); + linhas = i3GEO.editorOL.retornaGeometriasTipo("LineString"); + pontos = i3GEO.editorOL.retornaGeometriasTipo("Point"); + if (polis.length > 0) { + i3GEO.janela.abreAguarde("i3GEO.editorPoli", "Poligonos"); + i3GEO.php.funcoesGeometriasWkt(temp, polis.join("|"), operacao); + } + if (linhas.length > 0) { + i3GEO.janela.abreAguarde("i3GEO.editorLinhas", "Linhas"); + i3GEO.php.funcoesGeometriasWkt(temp, linhas.join("|"), operacao); + } + if (pontos.length > 0) { + i3GEO.janela.abreAguarde("i3GEO.editorPontos", "Pontos"); + i3GEO.php.funcoesGeometriasWkt(temp, pontos.join("|"), operacao); + } + } + i3GEO.desenho.layergrafico.getSource().changed(); + return; + } else { + i3GEO.janela.tempoMsg("Selecione pelo menos dois elementos"); + } + }, + desagrupa : function(geoms) { + var n = geoms.length, + w = [], + g, m, i, + format = new ol.format.WKT(); + for (i = 0; i < n; i++) { + g = format.writeFeatures([geoms[i]]); + m = new Wkt.Wkt(); + m.read(g); + w.push(m); + } + return w.join("\n"); + }, + merge : function(geoms) { + var n = geoms.length, + w = new Wkt.Wkt(), + g, m, i,f, + format = new ol.format.WKT(); + f = format.writeFeatures([geoms[0]]); + w.read(f); + if (n > 1) { + for (i = 1; i < n; i++) { + g = format.writeFeatures([geoms[i]]); + m = new Wkt.Wkt(); + m.read(g); + w.merge(m); + } + } + return w.write(); + }, + uniaojts : function(geoms) { + var n = geoms.length, + fwkt = new ol.format.WKT(), + rwkt = new jsts.io.WKTReader(), + wwkt = new jsts.io.WKTWriter(), + g, i, uniao; + if (n > 1) { + //converte em wkt + uniao = fwkt.writeFeatures([geoms[0]]); + //le na jsts + uniao = rwkt.read(uniao); + for (i = 1; i <= n; i++) { + g = fwkt.writeFeatures([geoms[i]]); + uniao = uniao.union(rwkt.read(g)); + } + //gera em wkt + uniao = wwkt.write(uniao); + return [ + fwkt.readFeatures(uniao) + ]; + } else { + return false; + } + }, + retornaGeometriasTipo : function(tipo) { + var n = i3GEO.editorOL.idsSelecionados.length, lista = [], i, + s = i3GEO.desenho.layergrafico.getSource(), + fwkt = new ol.format.WKT(); + for (i = 0; i < n; i++) { + f = s.getFeatureById(i3GEO.editorOL.idsSelecionados[i]); + if (f.getGeometry().getType() == tipo) { + lista.push(fwkt.writeFeatures([f])); + } + } + return lista; + }, + retornaFeaturesTipo : function(tipo) { + var n = i3GEO.editorOL.idsSelecionados.length, lista = [], i, + s = i3GEO.desenho.layergrafico.getSource(); + for (i = 0; i < n; i++) { + f = s.getFeatureById(i3GEO.editorOL.idsSelecionados[i]); + if (f.getGeometry().getType() == tipo) { + lista.push(f); + } + } + return lista; + }, + guardaBackup : function() { + return; + // if(!i3GEO.editorOL.backup) + // {i3GEO.editorOL.backup = new OpenLayers.Layer.Vector("Backup",{displayInLayerSwitcher:false,visibility:false});} + // else + // {i3GEO.editorOL.backup.removeFeatures(i3GEO.editorOL.backup.features);} + // i3GEO.editorOL.backup.addFeatures(i3GEO.desenho.layergrafico.features); + }, + selTodos : function() { + i3GEO.editorOL.unselTodos(); + var features, n, f, i, id, st; + features = i3GEO.desenho.layergrafico.getSource().getFeatures(); + n = features.length; + for (i = 0; i < n; i++) { + f = features[i]; + id = f.getId(); + if(!id){ + id = i3GEO.util.uid(); + f.setId(id); + } + i3GEO.editorOL.idsSelecionados.push(id); + st = f.getStyle(); + //para o caso de pontos + if(st && st.getImage()){ + f.setStyle( + new ol.style.Style({ + image: new ol.style.Circle({ + radius: i3GEO.editorOL.simbologia.pointRadius, + fill: new ol.style.Fill({ + color: 'rgba(255, 255, 255, 0.5)' + }), + stroke: new ol.style.Stroke({ + color: 'blue', + width: i3GEO.editorOL.simbologia.pointRadius / 3 + }) + }) + }) + ); + if(st.getImage().getSrc){ + f.setProperties({ + fillColor: "", + strokeColor: "", + externalGraphic: st.getImage().getSrc(), + graphicHeight : st.getImage().getSize()[1], + graphicWidth : st.getImage().getSize()[0] + }); + } + else{ + f.setProperties({ + fillColor: st.getImage().getFill().getColor(), + strokeColor: st.getImage().getStroke().getColor(), + externalGraphic: "", + graphicHeight: "", + graphicWidth: "" + }); + } + } + else if (st){ + f.setProperties({ + fillColor: st.getFill().getColor(), + strokeColor: st.getStroke().getColor() + }); + st.getFill().setColor('rgba(255, 255, 255, 0.5)'); + st.getStroke().setColor('blue'); + } + } + i3GEO.desenho.layergrafico.getSource().changed(); + }, + unselTodos : function() { + var i, n, f, s, st; + s = i3GEO.desenho.layergrafico.getSource(); + n = i3GEO.editorOL.idsSelecionados.length; + for(i=0; i 0) { + i3GEO.desenho.layergrafico.removeFeatures(i3GEO.desenho.layergrafico.features); + i3GEO.desenho.layergrafico.addFeatures(i3GEO.editorOL.backup.features); + } + if (document.getElementById("panellistagEditor")) { + i3GEO.editorOL.listaGeometrias(); + } + // i3GEO.editorOL.backup.removeFeatures(i3GEO.editorOL.backup.features); + }, + substituiFeaturesSel : function(f) { + i3GEO.editorOL.removeFeaturesSel(); + var fwkt = new ol.format.WKT(); + f = fwkt.readFeatures(f)[0]; + f.setStyle( + new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: 'rgba(' + i3GEO.editorOL.simbologia.strokeColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')', + width: i3GEO.editorOL.simbologia.strokeWidth + }), + fill: new ol.style.Fill({ + color: 'rgba(' + i3GEO.editorOL.simbologia.fillColor + ',' + i3GEO.editorOL.simbologia.opacidade + ')' + }) + }) + ); + f.setId(i3GEO.util.uid()); + i3GEO.desenho.layergrafico.getSource().addFeature(f); + }, + adicionaFeatureWkt : function(wkt, atributos) { + var f, fwkt = new OpenLayers.Format.WKT(); - if (atributos.externalGraphic && atributos.externalGraphic != "") { - var style_mark = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']); - style_mark.externalGraphic = atributos.externalGraphic; - style_mark.graphicWidth = atributos.graphicWidth; - style_mark.graphicHeight = atributos.graphicHeight; - style_mark.fillOpacity = atributos.opacidade; - f = fwkt.read(wkt); - f["attributes"] = atributos; - f["style"] = style_mark; - } else { - f = fwkt.read(wkt); - f["attributes"] = atributos; - } - i3GEO.desenho.layergrafico.addFeatures([ - f - ]); - if (document.getElementById("panellistagEditor")) { - i3GEO.editorOL.listaGeometrias(); - } - }, - flashFeaturesI : function(index) { - i3GEO.editorOL.flashFeatures([ - i3GEO.desenho.layergrafico.features[index] - ], 0); - }, - flashFeatures : function(features, index) { - if (!index) { - index = 0; - } - var current = features[index]; - if (current && current.layer === i3GEO.desenho.layergrafico) { - i3GEO.desenho.layergrafico.drawFeature(features[index], "select"); - } - var prev = features[index - 1]; - if (prev && prev.layer === i3GEO.desenho.layergrafico) { - i3GEO.desenho.layergrafico.drawFeature(prev, "default"); - } - ++index; - if (index <= features.length) { - window.setTimeout(function() { - i3GEO.editorOL.flashFeatures(features, index); - }, 75); - } - }, - selFeature : function(id) { - var s,f; - s = i3GEO.desenho.layergrafico.getSource(); - f = s.getFeatureById(id); - if(!i3GEO.util.in_array(id,i3GEO.editorOL.idsSelecionados)){ - i3GEO.editorOL.idsSelecionados.push(id); - f.setProperties({ - fillColor: f.getStyle().getFill().getColor(), - strokeColor: f.getStyle().getStroke().getColor(), - externalGraphic: "" - }); - f.getStyle().getFill().setColor('rgba(255, 255, 255, 0.5)'); - f.getStyle().getStroke().setColor('blue'); - s.changed(); - } - }, - carregajts : function(funcao) { - if (i3GEO.configura) { - i3GEO.util.scriptTag(i3GEO.configura.locaplic + "/pacotes/jsts/lib/jsts.js", funcao, "i3GEOjts", true); - } else { - i3GEO.util.scriptTag("../pacotes/jsts/lib/jsts.js", funcao, "i3GEOjts", true); - } - }, - trazParaFrente : function() { - var s, i, nsel, id, clone; - s = i3GEO.desenho.layergrafico.getSource(); - nsel = i3GEO.editorOL.idsSelecionados.length; - for(i=0; i