Come importare file KML, con dati personalizzati, nel database Postgres / PostGIS?


18

Per personalizzato, non intendo una diversa struttura del file KML, ma nella <description></description>sezione ho dati con tag HTML di questo 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>

Voglio importare facilmente tutti questi dati, per ogni segnaposto, in una tabella con le colonne corrispondenti nel database, come fare?


3
Ci sono molti modi per farlo. Puoi dirci di più su quali strumenti hai familiarità? Stai cercando una soluzione orientata alla programmazione (che lingua ti piace?) O una soluzione basata su strumenti (ad es. ArgGIS, QGIS)?
katahdin,

Risposte:


19

puoi usare ST_GeomFromKML come questa pagina .

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

oppure puoi usare ogr2ogr come segue per elaborare interi file KML;

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

spero che ti aiuti ...


1
ogr2ogr: stai dicendo di passare da KML a SHP e poi a PG. Perché non può usare da KML a PG con un solo passaggio?
Nickves,

Funziona! e per riferimento, voglio aggiungere alcuni commenti: ho trovato ogr2ogr in /Library/Frameworks/GDAL.framework/Programs/ (su un Mac) e ci sono avvertimenti se il contenuto della sezione <description> contiene più di 80 caratteri. Grazie!
elbaid,

1

Per quelli più felici in QGIS, trascina il tuo file KML su QGIS. Quindi connettiti al tuo database Postgres come documentato qui, quindi aggiungi i livelli desiderati da QGIS come nuova tabella nel tuo schema


Questo è quello che vorrei fare!
DPSSpatial
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.