Procedure para Exportar para KML
DECLARE
kmlgeom CLOB;
val_result VARCHAR2(5);
geom_result SDO_GEOMETRY;
geom SDO_GEOMETRY;
V_DENSIDADE_LIQUIDA DENSIDADE_LIQUIDA_PROC.DENSIDADE_LIQUIDA%type;
V_V002 DENSIDADE_LIQUIDA_PROC.V002%type;
V_AREA_HA DENSIDADE_LIQUIDA_PROC.AREA_HA%type;
V_CODIGO_SETOR_CENSITARIO DENSIDADE_LIQUIDA_PROC.CODIGO_SETOR_CENSITARIO%type;
V_ESCALA DENSIDADE_LIQUIDA_PROC.ESCALA%type;
V_ANO DENSIDADE_LIQUIDA_PROC.ANO%type;
V_TIPO_GEOMETRIA DENSIDADE_LIQUIDA_PROC.TIPO_GEOMETRIA%type;
V_FONTE DENSIDADE_LIQUIDA_PROC.FONTE%type;
V_REGIAO DENSIDADE_LIQUIDA_PROC.REGIAO%type;
V_ID DENSIDADE_LIQUIDA_PROC.ID%type;
BEGIN
DBMS_OUTPUT.PUT_LINE('<?xml version="1.0" encoding="UTF-8"?>');
DBMS_OUTPUT.PUT_LINE('<kml xmlns="http://www.opengis.net/kml/2.2">');
DBMS_OUTPUT.PUT_LINE('<Document>');
DBMS_OUTPUT.PUT_LINE('<name>EMPLASA</name>');
DBMS_OUTPUT.PUT_LINE('<open>1</open>');
FOR L1 IN (SELECT COR, NOME, LINHA FROM SIMBOLOGIA2) LOOP
DBMS_OUTPUT.PUT_LINE('<Style id="' || L1.NOME || '">');
DBMS_OUTPUT.PUT_LINE('<LineStyle>');
DBMS_OUTPUT.PUT_LINE('<color>' || L1.COR || '</color>');
DBMS_OUTPUT.PUT_LINE('<width>' || L1.LINHA || '</width>');
DBMS_OUTPUT.PUT_LINE('</LineStyle>');
DBMS_OUTPUT.PUT_LINE('<PolyStyle>');
DBMS_OUTPUT.PUT_LINE('<color>' || L1.COR || '</color>');
DBMS_OUTPUT.PUT_LINE('</PolyStyle>');
DBMS_OUTPUT.PUT_LINE('</Style>');
END LOOP;
FOR X IN (select l.id
from DENSIDADE_LIQUIDA_PROC l
where l.id in (999999, 44,54,38)) loop
SELECT DENSIDADE_LIQUIDA,
V002,
AREA_HA,
CODIGO_SETOR_CENSITARIO,
ESCALA,
ANO,
TIPO_GEOMETRIA,
FONTE,
REGIAO,
ID,
SDO_CS.TRANSFORM((SDO_GEOM.SDO_ARC_DENSIFY(c.GEOMETRY,
0.1,
'arc_tolerance=0.05 unit=km')),
4326)
INTO V_DENSIDADE_LIQUIDA,
V_V002,
V_AREA_HA,
V_CODIGO_SETOR_CENSITARIO,
V_ESCALA,
V_ANO,
V_TIPO_GEOMETRIA,
V_FONTE,
V_REGIAO,
V_ID,
geom
FROM DENSIDADE_LIQUIDA_PROC c
where c.id = x.id;
DBMS_OUTPUT.PUT_LINE('<Folder>');
DBMS_OUTPUT.PUT_LINE('<name>' || V_DENSIDADE_LIQUIDA || '</name>');
DBMS_OUTPUT.PUT_LINE('<Placemark>');
DBMS_OUTPUT.PUT_LINE('<name>' || V_ID || '</name>');
IF V_V002 BETWEEN 1 AND 2 THEN
DBMS_OUTPUT.PUT_LINE('<styleUrl>#Style2</styleUrl>');
ELSE
DBMS_OUTPUT.PUT_LINE('<styleUrl>#Style1</styleUrl>');
END IF;
DBMS_OUTPUT.PUT_LINE('<ExtendedData>');
DBMS_OUTPUT.PUT_LINE('<SchemaData schemaUrl="#Schema2">');
DBMS_OUTPUT.PUT_LINE('<SimpleData name="ID">' || V_ID ||
'</SimpleData>');
DBMS_OUTPUT.PUT_LINE('<SimpleData name="REGIAO">' || V_REGIAO ||
'</SimpleData>');
DBMS_OUTPUT.PUT_LINE('<SimpleData name="FONTE">' || V_FONTE ||
'</SimpleData>');
DBMS_OUTPUT.PUT_LINE('<SimpleData name="TIPO_GEOMETRIA">' ||
V_TIPO_GEOMETRIA || '</SimpleData>');
DBMS_OUTPUT.PUT_LINE('<SimpleData name="ANO">' || V_ANO ||
'</SimpleData>');
DBMS_OUTPUT.PUT_LINE('<SimpleData name="ESCALA">' || V_ESCALA ||
'</SimpleData>');
DBMS_OUTPUT.PUT_LINE('<SimpleData name="CODIGO_SETOR_CENSITARIO">' ||
V_CODIGO_SETOR_CENSITARIO || '</SimpleData>');
DBMS_OUTPUT.PUT_LINE('<SimpleData name="AREA_HA">' || V_AREA_HA ||
'</SimpleData>');
DBMS_OUTPUT.PUT_LINE('<SimpleData name="V002">' || V_V002 ||
'</SimpleData>');
DBMS_OUTPUT.PUT_LINE('<SimpleData name="DENSIDADE_LIQUIDA">' ||
V_DENSIDADE_LIQUIDA || '</SimpleData>');
DBMS_OUTPUT.PUT_LINE('</SchemaData>');
DBMS_OUTPUT.PUT_LINE('</ExtendedData>');
DBMS_OUTPUT.PUT_LINE('<MultiGeometry>');
kmlgeom := SDO_UTIL.TO_KMLGEOMETRY(geom);
DBMS_OUTPUT.PUT_LINE(TO_CHAR(kmlgeom));
DBMS_OUTPUT.PUT_LINE('</MultiGeometry>');
DBMS_OUTPUT.PUT_LINE('</Placemark>');
DBMS_OUTPUT.PUT_LINE('</Folder>');
END LOOP;
DBMS_OUTPUT.PUT_LINE('</Document>');
DBMS_OUTPUT.PUT_LINE('</kml>');
END;