Özel verilerle KML dosyasını Postgres / PostGIS veritabanına nasıl aktarabilirim?


18

Özel olarak, KML dosyasının farklı bir yapısını kastetmiyorum, ancak <description></description>bölümde, bu tür HTML etiketlerine sahip verilerim var:

<?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>

Kolayca tüm bu yer işareti, her yer işareti için veritabanındaki karşılık gelen sütunları içeren bir tabloya almak istiyorum, nasıl?


3
Bunu başarmanın birçok yolu vardır. Hangi araçlara aşina olduğunuz hakkında daha fazla bilgi verebilir misiniz? Programlama odaklı bir çözüm (hangi dili beğendiniz?) Veya araç tabanlı bir çözüm (örn. ArgGIS, QGIS) mı arıyorsunuz?
katahdin

Yanıtlar:


19

bu sayfa olarak ST_GeomFromKML kullanabilirsiniz .

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

veya tüm KML dosyalarını işlemek için ogr2ogr komutunu aşağıdaki gibi kullanabilirsiniz;

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

umarım sana yardımcı olur ...


1
ogr2ogr: KML'den SHP'ye sonra PG'ye git diyorsunuz. Neden bir adımla KML'den PG'ye kullanamıyor?
nickves

İşe yarıyor! ve referans olarak, bazı yorumlar eklemek istiyorum: /Library/Frameworks/GDAL.framework/Programs/ (Mac'te) içinde ogr2ogr buldum ve <açıklama> bölümünün içeriği 80'den fazla karakter içeriyorsa uyarılar var. Teşekkür ederim!
elbaid

1

QGIS'te daha mutlu olanlar için KML dosyanızı QGIS'e sürükleyin. Ardından burada belgelendiği gibi Postgres veritabanınıza bağlanın ve ardından QGIS'ten istediğiniz katmanları şemanızda yeni tablo olarak ekleyin


Ben de öyle yapardım!
DPSSpatial
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.