¿Cómo importar un archivo KML, con datos personalizados, a la base de datos Postgres / PostGIS?


18

Por costumbre, no me refiero a una estructura diferente del archivo KML, pero en la <description></description>sección, tengo datos con etiquetas HTML de este tipo:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Placemark>
  <name>New York City</name>
  <description><![CDATA[
    <table>
      <tr><td colspan='2'>Attributes</td></tr>
      <tr><td>CITY_ID</td><td>150335</td></tr>
      <tr><td>POPULATION</td><td>8244910</td></tr>
      <tr><td>AREA</td><td>468.48</td></tr>
    </table>]]>
  </description>
  <Point>
    <coordinates>40.712964,-74.003886,0</coordinates>
  </Point>
</Placemark>
</Document>
</kml>

Quiero importar fácilmente todos estos datos, para cada marca de posición, a una tabla con las columnas correspondientes en la base de datos, ¿cómo hacer esto?


3
Hay muchas formas de lograr esto. ¿Puede contarnos más sobre las herramientas con las que está familiarizado? ¿Está buscando una solución orientada a la programación (¿qué idioma le gusta?) O una solución basada en herramientas (por ejemplo, ArgGIS, QGIS)?
katahdin

Respuestas:


19

puedes usar ST_GeomFromKML como esta página .

SELECT ST_GeomFromKML('
        <LineString>
            <coordinates>-71.1663,42.2614 
                -71.1667,42.2616</coordinates>
        </LineString>');

o puede usar ogr2ogr de la siguiente manera para procesar archivos KML completos;

ogr2ogr -f "PostgreSQL" PG:"host=yourhost user=youruser dbname=yourdb 
                            password=yourpass" inputfilename.kml

Espero que te ayude...


1
ogr2ogr: estás diciendo ir de KML a SHP y luego a PG. ¿Por qué no puede usar de KML a PG con un solo paso?
nickves

¡Funciona! y como referencia, quiero agregar algunos comentarios: he encontrado ogr2ogr en /Library/Frameworks/GDAL.framework/Programs/ (en una Mac) y hay advertencias si el contenido de la sección <descripción> contiene más de 80 caracteres. ¡Gracias!
elbaid

1

Para aquellos más felices en QGIS, arrastre su archivo KML a QGIS. Luego, conéctese a su base de datos de Postgres como se documenta aquí y luego agregue las capas que desee de QGIS como una nueva tabla en su esquema


¡Eso es lo que yo haría!
DPSEspacial
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.