register('getcapabilities'); $cp->start(); $cp->return_data(); exit; } /* Function: getcapabilities Retorna a resposta da função getcapabilities de um serviço WMS. Globais: $cp {CPAINT} - Objeto CPAINT. $onlineresource {string} - Endereço do serviço. $tipo {string} - Tipo do serviço WMS|WFS. Retorno: {JSON} - Objeto JSON com as marcações do XML resultante convertidas para HTML */ function getcapabilities() { global $cp,$onlineresource,$tipo; $teste = explode("=",$onlineresource); if ( count($teste) > 1 ){$onlineresource = $onlineresource."&";} # ------------------------------------------------------------- # Test that there is a wms service defined before proceding. # if ( ! $onlineresource ) { # No WMS service provided. wms_fatal("No 'onlineresource' defined."); } $wms_service_request = $onlineresource . "REQUEST=GetCapabilities&SERVICE=".$tipo; # ------------------------------------------------------------- # Test that the capabilites file has successfully downloaded. # if( !($wms_capabilities = file($wms_service_request)) ) { # Cannot download the capabilities file. wms_fatal("Não foi possível ler o retorno do serviço '$wms_service_request'."); } $wms_capabilities = implode("",$wms_capabilities); # ------------------------------------------------------------- # Test that the capabilites file has successfully parsed. # $dom = new DomDocument(); $dom->loadXML($wms_capabilities); $cp->set_data(xml2html($wms_capabilities)); } //le links de RSS para ws if ($funcao == "listaRSSws") { $cp->register('listaRSSws'); $cp->start(); ob_clean(); $cp->return_data(); exit; } if ($funcao == "listaRSSwsARRAY") { $tipos = explode(",",$tipo); if(count($tipos) > 1){ $r = array(); foreach($tipos as $tipo){ $d = listaRSSwsARRAY(); $r = array_merge($r,$d["canais"]); } ob_clean(); header('Content-Type: application/json'); echo json_encode(["data"=>$r]); } else { //para efeitos de compatibilidade ob_clean(); header('Content-Type: application/json'); echo json_encode(["data"=>listaRSSwsARRAY()]); } exit; } /* Function: listaRSSwsARRAY Pega os links de um RSS e retorna o resultado como um array. Globais: $cp {CPAINT} - Objeto CPAINT. $rss {string} - Endereços dos RSS. $tipo {string} - Tipo de recurso, permite a escolha do programa PHP que será usado GEORSS|WMS|WS|DOWNLOAD|WMSMETAESTAT Retorno: {JSON} */ function listaRSSwsARRAY() { global $cp,$rss,$locaplic,$tipo,$esquemaadmin; if(!isset($tipo)){$tipo = "GEORSS";} include_once("$locaplic/classesphp/funcoes_gerais.php"); include_once("$locaplic/classesphp/xml.php"); include("$locaplic/ms_configura.php"); if($esquemaadmin != ""){ $esquemaadmin = $esquemaadmin."."; } $rsss = explode("|",$rss); if(count($rsss) == 0){ $rsss = array(" "); } $erro = "Erro. Nao foi possivel ler o arquivo"; $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); $urli3geo = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']."/".basename($locaplic); foreach ($rsss as $r){ if($r == "" || $r == " "){ if($tipo == "KML"){ $canali = simplexml_load_string(geraXmlKmlrss($locaplic)); $linkrss = $urli3geo."/rss/xmlkml.php"; } if($tipo == "GEORSS"){ $canali = simplexml_load_string(geraXmlGeorss($locaplic)); $linkrss = $urli3geo."/rss/xmlgeorss.php"; } if($tipo == "GEOJSON"){ $canali = simplexml_load_string(geraXmlGeojson($locaplic)); $linkrss = $urli3geo."/rss/xmlgeorss.php"; } if($tipo == "WMS" || $tipo == "WMS-Tile" || $tipo == "WMS-Time"){ $canali = simplexml_load_string(geraXmlWMS($locaplic)); $linkrss = $urli3geo."/rss/xmlservicoswms.php"; } if($tipo == "WMSMETAESTAT") { $canali = simplexml_load_string(geraXmlWMSmetaestat($locaplic)); $linkrss = $urli3geo."/rss/xmlservicoswms.php"; } if($tipo == "WS"){ $canali = simplexml_load_string(geraXmlWS($locaplic)); $linkrss = $urli3geo."/rss/xmlservicosws.php"; } if($tipo == "ARCGISREST"){ $canali = simplexml_load_string(geraXmlARCGISREST($locaplic)); $linkrss = ""; } } else { $canali = simplexml_load_file($rss); } if($r != "") $linhas["rss"] = ""; else{ $linhas["rss"] = ""; } //var_dump($canali); $canais = array(); foreach ($canali->channel->item as $item){ $urlservice = ixml($item,"link"); $title = ixml($item,"title"); $canais[] = array("id_ws"=>(ixml($item,"id")),"title"=>$title,"description"=>(ixml($item,"description")),"link"=>$urlservice,"author"=>(ixml($item,"author")),"nacessos"=>(ixml($item,"nacessos")),"nacessosok"=>(ixml($item,"nacessosok")),"tipo_ws"=>(ixml($item,"tipo"))); } $linhas["canais"] = $canais; } //$cp->set_data($linhas); return $linhas; } /* Function: listaRSSws Pega os links de um RSS usando a biblioteca magpierss (depreciado). Globais: $cp {CPAINT} - Objeto CPAINT. $rss {string} - Endereços dos RSS. Retorno: {JSON} */ function listaRSSws() { global $cp,$rss; require(dirname(__FILE__).'/../pacotes/magpierss/rss_fetch.inc'); $rsss = explode("|",$rss); $erro = "Erro. Nao foi possivel ler o arquivo"; foreach ($rsss as $r) { $rss = fetch_rss($r); if ($rss) { $erro = ""; $linhas[] = "####"; foreach ( $rss->items as $item ) { $linha[] = $item['title']; $linha[] = $item['description']; $linha[] = $item['link']; $linha[] = $item['author']; $linha[] = $item['ranking']; $linha[] = $item['tempo']; $linhas[] = implode("#",$linha); $linha = array(); } } } if ($erro == "") { $retorna = implode("|",$linhas); $retorna = str_replace("\n","",$retorna); if (function_exists("mb_convert_encoding")) {$retorna = mb_convert_encoding($retorna,"UTF-8","ISO-88591");} else {$retorna = $retorna;} } else {$retorna = $erro;} $cp->set_data($retorna); } ?>