カスタムデータを含む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にワンステップで使用できないのはなぜですか?
ニックス

できます!また、参照用にコメントを追加します。/Library/Frameworks/GDAL.framework/Programs/(Macの場合)でogr2ogrを見つけました。<description>セクションのコンテンツに80文字を超える文字が含まれている場合は警告が表示されます。ありがとうございました!
elbaid

1

QGISに満足している人のために、KMLファイルをQGISにドラッグします。次に、ここに記載さているようにPostgresデータベースに接続し、QGISから必要なレイヤーをスキーマの新しいテーブルとして追加します


それが私がすることです!
DPSSpatial
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.