Як імпортувати файл KML зі спеціальними даними до бази даних Postgres / PostGIS?


18

Зазвичай я не маю на увазі іншу структуру файлу KML, але в <description></description>розділі я маю дані з HTML-тегами такого типу:

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

Я хочу легко імпортувати всі ці дані для кожної позначки місця до таблиці з відповідними стовпцями в базі даних, як це зробити?


3
Є багато способів досягти цього. Чи можете ви розповісти більше про те, якими інструментами ви знайомі? Ви шукаєте рішення, орієнтоване на програмування (яка мова вам подобається?) Або рішення на основі інструментів (наприклад, ArgGIS, QGIS)?
катахдін

Відповіді:


19

ви можете використовувати ST_GeomFromKML як цю сторінку .

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

або ви можете використовувати ogr2ogr як наступний, щоб обробити цілі файли KML;

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

сподіваюся, що це допоможе тобі ...


1
ogr2ogr: ви кажете перейти від KML до SHP, потім до PG. Чому він не може використовувати з KML до PG одним кроком?
ніки

Це працює! Для довідки хочу додати кілька коментарів: я знайшов ogr2ogr в /Library/Frameworks/GDAL.framework/Programs/ (на Mac), і є попередження, якщо вміст розділу <description> містить більше 80 символів. Дякую!
elbaid

1

Для тих, хто щасливіший у QGIS, перетягніть свій файл KML до QGIS. Потім підключіться до вашої бази даних Postgres, як тут задокументовано, а потім додайте потрібні шари з QGIS як нову таблицю у вашій схемі.


Це я б робив!
DPSSpace
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.