사용자 정의 데이터가 포함 된 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)을 찾고 있습니까?
katahdin

답변:


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로 사용할 수없는 이유는 무엇입니까?
nickves September

효과가있다! 참고로 몇 가지 의견을 추가하고 싶습니다 ./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.