From d7ae5ea6eb842f7df4ae8586662afec4b287b69e Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Tue, 20 Jun 2017 23:55:46 -0300 Subject: [PATCH] Inclusão de parâmetros de inicialização em ini_i3geo.js --- admin/admin.db | Bin 340992 -> 0 bytes classesphp/classe_shp.php | 4 ++-- interface/config.php | 5 ++--- interface/openlayersdebug.htm | 52 +++++++++++++++++++++++++++------------------------- js/ini_i3geo.js | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- ms_criamapa.php | 199 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------- 6 files changed, 225 insertions(+), 152 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index 8c4dd54..0bb4831 100755 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/classesphp/classe_shp.php b/classesphp/classe_shp.php index cecefcd..4be841a 100755 --- a/classesphp/classe_shp.php +++ b/classesphp/classe_shp.php @@ -485,11 +485,11 @@ $para - linha|poligono $this->layer->set("template","none.htm"); $diretorio = dirname($this->arquivo); $tipol = MS_SHP_ARC; - $tipos = MS_SHAPE_LINE; + //$tipos = MS_SHAPE_LINE; if ($para == "poligono") { $tipol = MS_SHP_POLYGON; - $tipos = MS_SHAPE_POLYGON; + //$tipos = MS_SHAPE_POLYGON; } $novonomelayer = nomeRandomico(); $nomeshp = $diretorio."/".$novonomelayer; diff --git a/interface/config.php b/interface/config.php index 5e4142e..f2ea0c4 100755 --- a/interface/config.php +++ b/interface/config.php @@ -46,10 +46,9 @@ i3GEO.finalizaAPI = function() { //indica se a opcao de navegacao nas pastas do servidor sera ativada i3GEO.arvoreDeTemas.OPCOESADICIONAIS.navegacaoDir = true; i3GEO.janela.TRANSICAOSUAVE = true; -//desliga a camada com o mapa mundi -i3GEO.configura.mashuppar = "&desligar=mundo"; + //i3GEO.configura.guardaExtensao = false; -//i3GEO.configura.mashuppar = "&mapext=-75 -22 -40 7"; + (function() { if(typeof ol != "undefined" && i3GEO.Interface.openlayers.googleLike === false){ var eng = new ol.layer.Tile( diff --git a/interface/openlayersdebug.htm b/interface/openlayersdebug.htm index 00b9869..3900ea5 100755 --- a/interface/openlayersdebug.htm +++ b/interface/openlayersdebug.htm @@ -542,33 +542,33 @@ var parametrosMapa = { //arquivo mapfile que servira de base para a criacao do mapa. Por default, sao utilizados os arquivos existentes em i3geo/aplicmap (geral1windows, geral1,...) //Essa variavel pode ser definida em ms_configura tambem. Se nao estiver definida em nenhum lugar, o i3Geo tentara descobrir o arquivo adequado a ser utilizado. Você pode utilizar essa opcao para abrir um mapa com as camadas que você quiser, mas para evitar redundâncias, prefira o uso de &temasa - mapfilebase: "", //base: "", - //lista com os nomes dos layers existentes em mapfilebase que serao desligados - //util para evitar que determinadas camadas default sejam mostradas em determinados tipos de interface - layersoff: "", //desligar + mapfilebase: "", //extensao geografica do mapa //deve ser definida em coordenadas no formato decimos de grau e na projecao geografica na sequencia xmin ymin xmax ymax - mapext: [], //mapext como string + mapext: [], //perfil utilizado para restringir os menus de temas mostrando apenas os que correspondem a determinado perfil perfil: "", //layers que serao adicionados ao mapa. //Cada layer corresponde ao nome do mapfile existente na pasta i3geo/temas sem a extensao '.map' layers: { //array com a lista dos layers que serao adicionados e ligados (visiveis) - on:[], //temasa + add:["_lbiomashp"], //array com a lista dos layers que serao adicionados mas nao ligados - off:[], //layers + on:["_lbiomashp"], + //array com os layers desligados + off: [] }, //lista de coordenadas x e y que serao adicionadas como pontos no mapa points: { //array com a lista de coordenadas - coord: [], //pontos + coord: [], //titulo da nova camada - title: "" //nometemapontos + title: "" }, //lista de coordenadas x e y que serao adicionadas como linhas no mapa lines: { //array de arrays com a lista de coordenadas de cada linha + //exemplo [[-54,-12,-50,-12],[-50,-1,-50,-2,-50,-3]] coord: [[]], //titulo da nova camada title:"" @@ -576,42 +576,44 @@ //lista de coordenadas x e y que serao adicionadas como poligonos no mapa polygons: { //array de arrays com a lista de coordenadas de cada poligono. A primeira coordenada deve ser igual a ultima. - coord: [[]], //poligonos + //exemplo [[-50,-1,-48,-2,-50,-3,-50,-1]] + coord: [[]], //titulo da nova camada - title:"" //nometemapoligonos + title:"" }, //insere elementos no mapa com coordenadas definidas em wkt wkt: { //string no formato wkt - coord: "", //wkt + coord: "", //titulo da nova camada - title: "" //nometemawkt + title: "" }, //simbolo que sera utilizado para desenhar os elementos inseridos symbol: { //codigo do simbolo conforme definido em i3geo/symbols - name: "", //simbolo - color: "", //corsimbolo + name: "", + //em rgb, exemplo "0 255 0" + color: "", //em pixels - size: "", //tamanhosimbolo + size: "" }, //arquivo KML que sera incluido no mapa. Valido apenas na interface google maps kml: { - url: "" //kmlurl + url: "" }, //endereco de um WMS (sera incluido como uma camada no mapa) wms: { - url: "", //url_wms - layer: "", //layer_wms - style: "", //style_wms - title: "", //nome_wms - srs: "", //srs_wms - imagetype: "", //image_wms - version: "", //versao_wms + url: "", + layer: "", + style: "", + title: "", + srs: "", + imagetype: "", + version: "" }, //filtros que serao aplicados aos layers. Utilize a expressaso conforme definido na documentacao //do mapserver, exemplo - //{layer: "bioma",expression: "(('[CD_LEGENDA]'='CAATINGA'))"} ou {layer: "bioma",expression: "cd_legenda='CAATINGA'"} + //{layer: "_lbiomashp",expression: "(('[CD_LEGENDA]'='CAATINGA'))"} ou {layer: "_lbiomashp",expression: "cd_legenda='CAATINGA'"} filters: [{ layer: "", expression: "" diff --git a/js/ini_i3geo.js b/js/ini_i3geo.js index eee1a49..e05cbb4 100755 --- a/js/ini_i3geo.js +++ b/js/ini_i3geo.js @@ -303,11 +303,13 @@ var i3GEO = { contadorAtualiza : 0, //atalho para as funcoes cria e inicia com a possibilidade de aplicacao de parametros init: function(parametrosMapa){ - var mashuppar; + if (typeof (console) !== 'undefined') + console.info("i3GEO.init()"); + if(parametrosMapa && parametrosMapa != ""){ - mashuppar = i3GEO.parametrosMapa2mashuppar(parametrosMapa); + i3GEO.configura.mashuppar = i3GEO.parametrosMapa2mashuppar(parametrosMapa); } else { - mashuppar = ""; + i3GEO.configura.mashuppar = ""; } i3GEO.cria(); i3GEO.inicia(); @@ -316,8 +318,115 @@ var i3GEO = { //os parametros utilizados sao os mesmos disponiveis em ms_criamapa.php //na versao 7 os nomes dos parametros foram modificados para facilitar seu uso //essa funcao faz a conversao dessa nova nomenclatura para poder compatibilizar com a sintaxe utilizada em mashuppar - parametrosMapa2mashuppar: function(parametrosMapa){ + parametrosMapa2mashuppar: function(p){ + if (typeof (console) !== 'undefined') + console.info("i3GEO.parametrosMapa2mashuppar()"); + + var par = []; + if(p.mapfilebase && p.mapfilebase != ""){ + par.push("&base="+p.mapfilebase); + } + if(p.mapext && p.mapext != "" && p.mapext.length == 4){ + par.push("&mapext="+p.mapext.join(",")); + } + if(p.perfil && p.perfil != ""){ + par.push("&perfil="+p.perfil); + } + if(p.layers){ + if(p.layers.add && p.layers.add.length > 0){ + par.push("&temasa="+p.layers.add.join(",")); + } + if(p.layers.on && p.layers.on.length > 0){ + par.push("&layers="+p.layers.on.join(",")); + } + if(p.layers.off && p.layers.off.length > 0){ + par.push("&desligar="+p.layers.off.join(",")); + } + } + if(p.points && p.points.length > 0){ + par.push("&nometemapontos="+p.points.title); + par.push("&pontos="+p.points.coord.join(",")); + } + if(p.lines){ + var n = []; + jQuery.each( p.lines.coord, function(index, value) { + if(value.length > 0){ + n.push(value.join(" ")); + } + }); + if(n.length > 0){ + par.push("&nometemalinhas="+p.lines.title); + par.push("&linhas="+n.join(",")); + } + } + if(p.polygons){ + var n = []; + jQuery.each( p.polygons.coord, function(index, value) { + if(value.length > 0){ + n.push(value.join(" ")); + } + }); + if(n.length > 0){ + par.push("&nometemapoligonos="+p.polygons.title); + par.push("&poligonos="+n.join(",")); + } + } + if(p.wkt && p.wkt.coord != ""){ + par.push("&nometemawkt="+p.wkt.title); + par.push("&wkt="+p.wkt.coord); + } + if(p.symbol){ + if(p.symbol.name != ""){ + par.push("&simbolo="+p.symbol.name); + } + if(p.symbol.color != ""){ + par.push("&corsimbolo="+p.symbol.color); + } + if(p.symbol.size != ""){ + par.push("&tamanhosimbolo="+p.symbol.size); + } + } + if(p.kml && p.kml.url != ""){ + par.push("&kmlurl="+p.kml.url); + } + if(p.wms && p.wms.url != ""){ + if(p.wms.url != ""){ + par.push("&url_wms="+p.wms.url); + } + if(p.wms.layer != ""){ + par.push("&layer_wms="+p.wms.layer); + } + if(p.wms.style != ""){ + par.push("&style_wms="+p.wms.style); + } + if(p.wms.title != ""){ + par.push("&nome_wms="+p.wms.title); + } + if(p.wms.srs != ""){ + par.push("&srs_wms="+p.wms.srs); + } + if(p.wms.imagetype != ""){ + par.push("&image_wms="+p.wms.imagetype); + } + if(p.wms.version != ""){ + par.push("&versao_wms="+p.wms.version); + } + } + if(p.filters){ + var n = []; + jQuery.each( p.filters, function(index, value) { + if(value.layer != ""){ + n.push("&map_layer_" + value.layer + "_filter=" + value.expression); + } + }); + if(n.length > 0){ + par.push(n.join("")); + } + } + if (typeof (console) !== 'undefined') + console.info("i3GEO.parametrosMapa2mashuppar() " + par.join("")); + return par.join(""); }, /** * Function: cria diff --git a/ms_criamapa.php b/ms_criamapa.php index 2cbd433..82b209a 100755 --- a/ms_criamapa.php +++ b/ms_criamapa.php @@ -215,6 +215,7 @@ filtros - filtros podem ser adicionados incluindo o parametro da seguinte forma: //quando $funcao existe, é pq o ms_criamapa.php está //sendo utilizado como um include em classesphp/mapa_controle.php // + if(!isset($funcao)){ ob_end_clean(); /* @@ -243,35 +244,35 @@ if(empty($base) && !empty($parurl["base"])){ } ms_ResetErrorList(); -$temasa = $parurl["temasa"]; -$layers = $parurl["layers"]; -$desligar = $parurl["desligar"]; -$mapext = $parurl["mapext"]; +$temasa = @$parurl["temasa"]; +$layers = @$parurl["layers"]; +$desligar = @$parurl["desligar"]; +$mapext = @$parurl["mapext"]; $executa = "";//$parurl["executa"]; -$perfil = $parurl["perfil"]; -$caminho = $parurl["caminho"]; -$pontos = $parurl["pontos"]; -$nometemapontos = $parurl["nometemapontos"]; -$linhas = $parurl["linhas"]; -$nometemalinhas = $parurl["nometemalinhas"]; -$poligonos = $parurl["poligonos"]; -$nometemapoligonos = $parurl["nometemapoligonos"]; -$simbolo = $parurl["simbolo"]; -$corsimbolo = $parurl["corsimbolo"]; -$tamanhosimbolo = $parurl["tamanhosimbolo"]; -$wkt = $parurl["wkt"]; -$nometemawkt = $parurl["nometemawkt"]; -$idioma = $parurl["idioma"]; -$kmlurl = $parurl["kmlurl"]; -$url_wms = $parurl["url_wms"]; -$layer_wms = $parurl["layer_wms"]; -$style_wms = $parurl["style_wms"]; -$nome_wms = $parurl["nome_wms"]; -$srs_wms = $parurl["srs_wms"]; -$image_wms = $parurl["image_wms"]; -$versao_wms = $parurl["versao_wms"]; -$gvsigview = $parurl["gvsigview"]; -$restauramapa = $parurl["restauramapa"]; +$perfil = @$parurl["perfil"]; +$caminho = @$parurl["caminho"]; +$pontos = @$parurl["pontos"]; +$nometemapontos = @$parurl["nometemapontos"]; +$linhas = @$parurl["linhas"]; +$nometemalinhas = @$parurl["nometemalinhas"]; +$poligonos = @$parurl["poligonos"]; +$nometemapoligonos = @$parurl["nometemapoligonos"]; +$simbolo = @$parurl["simbolo"]; +$corsimbolo = @$parurl["corsimbolo"]; +$tamanhosimbolo = @$parurl["tamanhosimbolo"]; +$wkt = @$parurl["wkt"]; +$nometemawkt = @$parurl["nometemawkt"]; +$idioma = @$parurl["idioma"]; +$kmlurl = @$parurl["kmlurl"]; +$url_wms = @$parurl["url_wms"]; +$layer_wms = @$parurl["layer_wms"]; +$style_wms = @$parurl["style_wms"]; +$nome_wms = @$parurl["nome_wms"]; +$srs_wms = @$parurl["srs_wms"]; +$image_wms = @$parurl["image_wms"]; +$versao_wms = @$parurl["versao_wms"]; +$gvsigview = @$parurl["gvsigview"]; +$restauramapa = @$parurl["restauramapa"]; $versao = versao(); $versao = $versao["principal"]; @@ -335,7 +336,7 @@ Prepara as variáveis que serão incluidas na seção As variáveis vêm do arquivo ms_configura.php e são armazenadas em uma seção com nome específico para o i3geo. */ -if (!isset($mapext)){ +if (!isset($mapext) || empty($mapext)){ $mapext=""; } else{ @@ -353,7 +354,7 @@ $locaplic_ = $locaplic; $R_path_ = $R_path; $mapext_ = $mapext; -$debug_ = $debug; +$debug_ = @$debug; $ler_extensoes_ = $ler_extensoes; $postgis_mapa_ = $postgis_mapa; $tituloInstituicao_ = $tituloInstituicao; @@ -525,12 +526,6 @@ else{ } /* -Utiliza um projeto gvSig para compor o mapa -*/ -if(!empty($gvsiggvp)){ - incluiMapaGvsig($gvsiggvp,$gvsigview); -} -/* Parâmetros adicionais. Processa os parâmetros para a inicialização verificando se foram passados pela URL ou não. @@ -665,6 +660,7 @@ Adapta os dados de cada layer. Faz alterações em cada layer caso sejam necessárias. */ function adaptaLayers($tmpfname,$versao){ + global $parurl; $mapa = ms_newMapObj($tmpfname); $path = $mapa->shapepath; $numlayers = $mapa->numlayers; @@ -703,7 +699,7 @@ function adaptaLayers($tmpfname,$versao){ // //verifica se deve aplicar filtro // - $filtro = $_GET["map_layer_".$layer->name."_filter"]; + $filtro = @$parurl["map_layer_".$layer->name."_filter"]; if(!empty($filtro)){ $layer->setmetadata("CACHE","nao"); $layer->setfilter($filtro); @@ -822,26 +818,9 @@ function incluiTemasIniciais(){ if ($arqt == "") {continue;} $extensao = ".map"; - $arqt = str_replace(".gvp","",$arqt); - if(file_exists($arqt.".gvp")){ - $extensao = ".gvp"; - $arqt = $arqt.".gvp"; - } if(file_exists($arqt)){ $arqtemp = $arqt; } - if ((strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) && (file_exists($temasdir."\\".$arqt."php"))){ - //$extensao = ".php"; - } - elseif (file_exists($temasdir."/".$arqt.".php")){ - //$extensao = ".php"; - } - if ((strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) && (file_exists($temasdir."\\".$arqt."gvp"))){ - $extensao = ".gvp"; - } - elseif (file_exists($temasdir."/".$arqt.".gvp")){ - $extensao = ".gvp"; - } if ((strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) && (file_exists($locaplic."\\aplicmap\\".$arqt.$extensao))){ $arqtemp = $locaplic."\\aplicmap\\".$arqt.$extensao; } @@ -862,7 +841,6 @@ function incluiTemasIniciais(){ echo "
Problemas com a camada $arqtemp
"; } else{ - if($extensao == ".map"){ $maptemp = @ms_newMapObj($arqtemp); for($i=0;$i<($maptemp->numlayers);++$i){ //error_reporting(0); @@ -900,35 +878,10 @@ function incluiTemasIniciais(){ cloneInlineSymbol($layern,$maptemp,$mapn); $layerAdicionado = ms_newLayerObj($mapn, $layern); corrigeLayerGrid($layern,$layerAdicionado); - } - } - - if($extensao == ".php"){ - //include_once($arqtemp); - //eval($arqt."(\$mapn);"); - } - if($extensao == ".gvp"){ - include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"); - $gm = new gvsig2mapfile($arqtemp); - $gvsigview = $gm->getViewsNames(); - foreach($gvsigview as $v){ - $dataView = $gm->getViewData($v); - $mapn = $gm->addLayers($mapn,$v,$dataView["layerNames"]); - } - $next = $dataView["extent"]; - $ext = $mapn->extent; - $ext->setextent($next[0],$next[1],$next[2],$next[3]); } } } } - // - //muda para RGB para melhorar o desenho da imagem raster - // - if($existeraster){ - //$of = $mapn->outputformat; - //$of->set("imagemode",MS_IMAGEMODE_RGB); - } erroCriacao(); } /* @@ -1077,27 +1030,32 @@ function inserePontosUrl() //cria o shape file // $tipol = MS_SHP_POINT; - $nomeshp = $dir_tmp."/".$imgdir."/pontosins"; + $nomeshp = $dir_tmp."/".$imgdir."/".nomeRandomico(); // cria o dbf $def = array(); $items = array("COORD"); foreach ($items as $ni) {$def[] = array($ni,"C","254");} - if(!function_exists(dbase_create)) - {xbase_create($nomeshp.".dbf", $def);} - else - {dbase_create($nomeshp.".dbf", $def);} + if(!function_exists(dbase_create)){ + xbase_create($nomeshp.".dbf", $def); + } + else{ + dbase_create($nomeshp.".dbf", $def); + } $dbname = $nomeshp.".dbf"; $db=xbase_open($dbname,2); $novoshpf = ms_newShapefileObj($nomeshp, $tipol); $pontos = explode(" ",trim($pontos)); - if(count($pontos) == 1) - {$pontos = explode(",",trim($pontos[0]));} - foreach ($pontos as $p) - {if (is_numeric($p)){$pontosn[] = $p;}} + if(count($pontos) == 1){ + $pontos = explode(",",trim($pontos[0])); + } + foreach ($pontos as $p){ + if (is_numeric($p)){ + $pontosn[] = $p; + } + } $pontos = $pontosn; - for ($ci = 0;$ci < count($pontos);$ci=$ci+2) - { + for ($ci = 0;$ci < count($pontos);$ci=$ci+2){ $reg = array(); $reg[] = $pontos[$ci]." ".$pontos[$ci+1]; $shape = ms_newShapeObj($tipol); @@ -1159,41 +1117,45 @@ function insereLinhasUrl() //cria o shape file // $tipol = MS_SHP_ARC; - $nomeshp = $dir_tmp."/".$imgdir."/linhains"; + $nomeshp = $dir_tmp."/".$imgdir."/".nomeRandomico(); // cria o dbf $def = array(); $items = array("COORD"); - foreach ($items as $ni) - {$def[] = array($ni,"C","254");} - if(!function_exists(dbase_create)) - {xbase_create($nomeshp.".dbf", $def);} - else - {dbase_create($nomeshp.".dbf", $def);} + foreach ($items as $ni){ + $def[] = array($ni,"C","254"); + } + if(!function_exists(dbase_create)){ + xbase_create($nomeshp.".dbf", $def); + } + else{ + dbase_create($nomeshp.".dbf", $def); + } $dbname = $nomeshp.".dbf"; $db=xbase_open($dbname,2); $novoshpf = ms_newShapefileObj($nomeshp, $tipol); $linhas = explode(",",trim($linhas)); $pontosLinhas = array(); //guarda os pontos de cada linha em arrays - foreach ($linhas as $l) - { + foreach ($linhas as $l){ $tempPTs = explode(" ",trim($l)); $temp = array(); - foreach ($tempPTs as $p) - if (is_numeric($p)){$temp[] = $p;} + foreach ($tempPTs as $p){ + if (is_numeric($p)){ + $temp[] = $p; + } + } $pontosLinhas[] = $temp; } - foreach ($pontosLinhas as $ptsl) - { + foreach ($pontosLinhas as $ptsl){ $linhas = $ptsl; - $shape = ms_newShapeObj($tipol); + $shape = ms_newShapeObj(MS_SHAPE_LINE); $linha = ms_newLineObj(); $reg = array(); - $reg[] = ""; - for ($ci = 0;$ci < count($linhas);$ci=$ci+2) - { + $reg[] = implode(",",$ptsl); + for ($ci = 0;$ci < count($linhas);$ci=$ci+2){ $linha->addXY($linhas[$ci],$linhas[$ci+1]); - $shape->add($linha); + } + $shape->add($linha); $novoshpf->addShape($shape); xbase_add_record($db,$reg); } @@ -1215,12 +1177,14 @@ function insereLinhasUrl() $classe->set("name"," "); $estilo = ms_newStyleObj($classe); - if(!isset($simbolo)) - {$simbolo = "linha";} - $estilo->set("symbolname",$simbolo); - if(!isset($tamanhosimbolo)) - {$tamanhosimbolo = 6;} - $estilo->set("size",$tamanhosimbolo); + if(isset($simbolo)){ + $simbolo = "linha"; + $estilo->set("symbolname",$simbolo); + } + if(!isset($tamanhosimbolo)){ + $tamanhosimbolo = 4; + } + $estilo->set("width",$tamanhosimbolo); $cor = $estilo->color; if(!isset($corsimbolo)) {$corsimbolo ="255,0,0";} @@ -1248,7 +1212,7 @@ function inserePoligonosUrl() //cria o shape file // $tipol = MS_SHP_POLYGON; - $nomeshp = $dir_tmp."/".$imgdir."/poligonosins"; + $nomeshp = $dir_tmp."/".$imgdir."/".nomeRandomico(); // cria o dbf $def = array(); $items = array("COORD"); @@ -1274,14 +1238,13 @@ function inserePoligonosUrl() foreach ($pontosLinhas as $ptsl) { $linhas = $ptsl; - $shape = ms_newShapeObj($tipol); + $shape = ms_newShapeObj(MS_SHAPE_POLYGON); $linha = ms_newLineObj(); $reg = array(); $reg[] = ""; for ($ci = 0;$ci < count($linhas);$ci=$ci+2) { $linha->addXY($linhas[$ci],$linhas[$ci+1]); - } $shape->add($linha); $novoshpf->addShape($shape); -- libgit2 0.21.2