xml 程序para Exportar para KML

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xml 程序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;

以上是关于xml 程序para Exportar para KML的主要内容,如果未能解决你的问题,请参考以下文章

Qt Write and Read XML File 读写XML文件

PHP Prepara un string en PHP para ingresarlo como atributo en un XML

Prepara un string en PHP para ingresarlo como atributo en un XML

xml Configurar Datasource con DBCP para utilizar Spring JDBC,namedParameters y varias cositas mas

xml 自定义面包屑。 Para usarlo se debe ingresaralpáginamsen el administrador de Magento e ir alasecci&

如何使用 @para1 = @para2 等参数执行 Sql 服务器过程