수색…


비고

PostGIS는 PostgreSQL 데이터베이스의 확장 집합입니다. PostGIS를 사용하면 지형 공간 데이터를 저장하고 Postgres 데이터베이스에 공간 쿼리를 수행 할 수 있습니다.

일반적인 postgres 데이터베이스의 기본 데이터 유형과 달리 공간 데이터는 다르게 처리되어야합니다. 공간 데이터베이스에서 수행 할 수있는 쿼리는 일반적으로 2 차원 또는 3 차원의 경계 상자로 정의됩니다. 이러한 데이터 유형을 저장, 색인화 및 처리하기 위해 postGIS는 기본 postgres 설치의 일부가 아닌 R-Trees 라는 개념을 사용합니다.

postGIS 데이터베이스를 사용하면 다음을 수행 할 수 있습니다.

  • 공간 데이터 저장
  • 공간 쿼리를 수행하여 정보 (포인트, 영역)를 검색하고 추출합니다.
  • 테이블에 대한 공간 정보 및 메타 데이터 관리 (예 : 사용 된 coorinate-reference-system).
  • 하나의 좌표계에서 다른 좌표계로 지오메트리 변환
  • 형상을 비교하고 특성을 추출합니다 (예 : 도로 또는 건물의 모서리 길이)
  • 다른 사람들로부터 새로운 지오메트리를 생성합니다.

버전

최신 기능 자료 공식 문서 출시일
2.3.0 HTML , PDF 2016-09-26
2.2.0 HTML , PDF 2015-10-07
2.1.0 HTML , PDF 2013 년 8 월 17 일
2.0.0 HTML , PDF 2012-04-03
1.5.0 2010-02-04
1.4.0 2009-07-24
1.3.0 2007-08-09
1.2.0 2006-12-08
1.1.0 2005-12-21
1.0.0 2005-04-19

패키지 관리자를 통한 설치

아치:

공식 팩맨 패키지가 제공됩니다. 다음을 사용하여 루트로 패키지를 설치하십시오.

pacman -S postgis

OpenSuse :

지형 공간 애플리케이션을 위해 openSuse 저장소를 사용하려면 지리적 저장소를 root로 활성화하십시오.

zypper ar http://download.opensuse.org/repositories/Application:/Geo/openSUSE_[RELEASE]/ GEO 

여기서 [RELEASE] 는 수세 배포판의 공식 릴리스 번호입니다. 이 후 postgis를 다음과 함께 설치할 수 있습니다.

zypper install postgis

소스에서 설치 (Postgres 9.1 이상)

이 가이드는 Linux 머신에서 PostgreSQL 9.1 이상을 명시 적으로 설명합니다. 그것은 postgres 확장 기능을 사용합니다.이 기능은 기존 postgres 설치에 대한 확장 기능을 크게 향상시킵니다. 이전 버전의 Postgres로 작업해야하는 경우 공식 문서 를 참조하십시오.

의존성 해결

PostGIS는 많은 의존성을 가진 복잡한 프로젝트입니다. 수동 구성 및 빌드 절차를 진행하려면 이러한 종속성을 해결하고 수동 또는 패키지 관리자를 통해 다음 패키지를 설치해야합니다.

최소 요구 사항들

  • PostgreSQL 9.1 이상. 일반적으로 저장소의 패키지 관리자의 dev -packages에있는 서버 헤더를 포함하여 데이터베이스를 설치하는 것이 중요합니다.
  • GNU C 컴파일러 gcc .
  • GNU make . 빌드 프로세스를 완료하려면.
  • Proj4 . coordniate 변형을위한 투영 라이브러리.
  • GEOS . 형상 설명 및 간단한 형상을 구현하는 형상 라이브러리. 버전 3.5 이상은 ST_ClipByBox2DST_Subdivide 와 같은 새로운 기능을 사용하기 위해 권장됩니다.
  • GDAL , 버전 1.9 이상 래스터 및 벡터 기반 지형 공간 데이터에 대한 추상 데이터 형식을 구현하는 라이브러리입니다.
  • LibXML2 , 버전 2.5 이상 XML, XSLT 및 DTD로 작업 할 수있는 라이브러리입니다.
  • JSON-C , 버전 0.9 이상 JSON 형식으로 출력물을 만드는 라이브러리

선택적 요구 사항

  • shp2pgsql-gui를 컴파일하려면 GTK (GTK + 2.0, 2.8+ 필요).
  • SFCGAL , 버전 1.1 (또는 그 이상)은 PostGIS에 추가 2D 및 3D 고급 분석 기능을 제공하는 데 사용될 수 있습니다.
  • PCRE . Perl 5 구문을 사용하여 정규 표현식 패턴 일치를위한 라이브러리. Adress Standardizer 로 작업하려면이 라이브러리가 필요합니다.
  • CUnit . 회귀 테스트에 필요한 단위 테스트 유틸리티입니다.
  • DocBook (xsltproc)은 문서 작성에 필요합니다.
  • DBLatex 는 PDF 형식의 문서를 작성하는 데 필요합니다.
  • ImageMagick 은 문서에 사용 된 이미지를 생성해야합니다.

근원을 얻으십시오

소스 코드를 얻으려면 최신 tarball을 다운로드하십시오.

wget http://postgis.net/stuff/postgis-2.3.2dev.tar.gz
tar -xvzf postgis-2.3.2dev.tar.gz

또는 공식 SVN 저장소를 사용하십시오.

svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-2.3.2dev

구성

SVN을 통해 소스를 얻은 경우 다음을 사용하여 config-script를 준비 할 수 있습니다.

./autogen.sh

특정 컴퓨터의 빌드 프로세스를 구성하려면 프로젝트 폴더에서 실행하십시오.

./configure

구성 단계에 대한 몇 가지 선택적 매개 변수가 있습니다. 자세한 지침은 공식 문서 를 참조하십시오. 이는 일반적으로 선택 사항이며 기본값이 아닌 설치를 사용하는 서버에만 적용됩니다.

짓다

일단 구성 단계가 성공적으로 완료되면 makefile이 작성됩니다. 빌드 프로세스 실행을 시작하려면 :

make

마지막 출력은 다음과 같아야합니다.

"PostGIS was built successfully. Ready to install."

버전 1.4.0부터 모든 함수에는 설명서에서 생성 된 주석이 있습니다. 이러한 주석을 나중에 공간 데이터베이스에 설치하려면 docbook이 필요한 명령을 실행하십시오.

make comments

설치

모든 확장 프로그램을 다음과 함께 설치하십시오.

make install

PostGIS 확장은 PostgreSQL 9.1 이상을 사용하는 경우 자동으로 빌드되고 설치됩니다. 설치가 다른 경우 필요한 확장을 수동으로 설치할 수 있습니다.

프로젝트 폴더에서 :

cd extensions
cd postgis
make clean
make
make install

cd ..
cd postgis_topology
make clean
make
make install

cd ..
cd postgis_sfcgal
make clean
make
make install

cd ..
cd address_standardizer
make clean
make
make install
make installcheck

cd ..
cd postgis_tiger_geocoder
make clean
make
make install
make installcheck

확장 기능을 다른 컴퓨터에 수동으로 설치하려면 다음 파일을 extensions 폴더에서 대상의 PostgreSQL/share/extension -folder로 복사하십시오. 각 확장 프로그램의 경우 :

scp extensions/[EXTENSION]/sql/*.sql user@target:[POSTGIS_PATH]/share/extension

여기서 [EXTENSION] 은 선택한 확장자 (postgis, postgis_topology, postgis_sfcgal, address_standardizer, postgis_tiger_geocoder)이고 [POSTGIS_PATH] 는 대상 시스템의 PostGIS 설치 경로입니다.

설치 확인

postgres 데이터베이스 서비스가 없다면 먼저 postgres 데이터베이스를 설정하십시오 . 다음을 사용하여 데이터베이스에 연결하십시오.

su postgres -c psql

확장 기능에 액세스 할 수 있는지 확인하려면 psql-session에서 다음 쿼리를 실행하십시오.

SELECT name, default_version,installed_version FROM pg_available_extensions WHERE name LIKE 'postgis%' or name LIKE 'address%';

출력은 다음과 같아야합니다.

             name             | default_version | installed_version
------------------------------+-----------------+-------------------
 address_standardizer         | 2.3.2dev        | 2.3.2dev
 address_standardizer_data_us | 2.3.2dev        | 2.3.2dev
 postgis                      | 2.3.2dev        | 2.3.2dev
 postgis_sfcgal               | 2.3.2dev        |
 postgis_tiger_geocoder       | 2.3.2dev        | 2.3.2dev
 postgis_topology             | 2.3.2dev        |

(6 rows)

심층적 인 설치 후 테스트를 수행하려면 프로젝트 폴더에서 다음 명령을 실행하십시오.

make check

이것은 실제 PostgreSQL 데이터베이스에 대해 생성 된 라이브러리를 사용하여 다양한 검사와 테스트를 거칩니다.

지형 공간 데이터베이스 설정

새로운 빈 데이터베이스를 만들려면 postgres-user로 실행하십시오 :

createdb [yourdatabase]

psql-session을 사용하여 데이터베이스에 연결하십시오.

psql -d [yourdatabase]

psql-session 실행시 :

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;

필요한 지형 공간 확장을 생성합니다. 이 작업이 완료되면 데이터베이스는 지형 공간적으로 사용 가능한 데이터베이스이므로 사용할 준비가되었습니다.

지형 공간 "Hello World"

이 예에서는 지리 정보 데이터베이스를 설정하고 2 개의 다른 소스에서 데이터를 가져 오며 QGIS라는 응용 프로그램에서 결과를 봅니다. 이 안내서는 Linux 머신 용으로 작성된 것으로, 다른 플랫폼에서 작동하는 경우 일부 명령 또는 경로가 예상대로 작동하지 않을 수 있습니다.

가져온 데이터를 보려면 QGIS 라는 응용 프로그램을 사용합니다. 이 응용 프로그램이 없으면 먼저 설치하십시오. 다른 뷰어 나 지역 응용 프로그램 (예 : ArcGIS)을 사용하려면 QGIS 설치를 건너 뛸 수 있습니다.

우리의 출처는 뉴욕시 주 의회 지구뉴욕시의 라이온 스트리트 맵 데이터베이스가 될 것 입니다. 연결된 위치에서 적절한 파일을 다운로드하십시오. 또한이 파일이 사용하는 좌표 참조 시스템에 대한 정보를 제공하므로 자료의 메타 데이터 섹션을 살펴 봐야합니다.

시작하려면 작업 폴더 "nycgis"를 만들고 다운로드 한 파일을 위치에 복사 한 다음 압축 파일의 압축을 풉니 다.

mkdir nycgis
cd nycgis
cp ~/Downloads/nyad_16d.zip .
unzip ~/Downloads/nyad_16d.zip
cp ~/Downloads/nylion_16d.zip .
unzip  ~/Downloads/nylion_16d.zip

"nycgis"폴더에는 두 개의 폴더가 있어야합니다 : "nyad_16d", "lion", 여러 파일들.

지역 데이터로 작업 할 때 소스 데이터 및 최종 출력 데이터의 좌표 참조 시스템 (CRS)을 파악하는 것이 매우 중요합니다. 연결된 위치 obove ( Metadata : Assembly Districts , Metadata : LION Database )의 메타 데이터 섹션에서 두 파일의 CRS는 미국 북동부를 참조하는 데 사용되는 좌표계 인 EPSG : 2263입니다.

데이터베이스에 다른 CRS를 사용한다고 가정합니다. 이것은 다른 이유가있을 수 있습니다. 예를 들어 데이터베이스에서 웹 기반 지오 애플리케이션을 사용하려고 할 수 있습니다. 이러한 종류의 응용 프로그램에 대한 일반적인 CRS는 WGS : 84 (EPSG : 4326)입니다.

좌표계를 변환하기 위해 우리는 GDAL 패키지의 일부인 ogr2ogr 도구를 사용합니다. 작업 폴더에서 먼저 재 투영 된 데이터를 나타내는 2 개의 폴더를 만든 다음 데이터를 변환합니다.

mkdir nyad_16d_proj_4326
ogr2ogr -f "ESRI Shapefile" ./nyad_16d_proj_4326/nyad_4326.shp ./nyad_16d/nyad_16d.shp -s_srs EPSG:2263 -t_srs EPSG:4326

mkdir nylion_16d_proj_4326
ogr2ogr -f "ESRI Shapefile" ./nylion_16d_proj_4326/ny_str_4326.shp ./nylion_16d/lion/lion.gdb/a0000000d.gdbtable -s_srs EPSG:2263 -t_srs EPSG:4326

우리의 목적을 위해서 라이온 - 데이터베이스의 파일 "a0000000d.gdbtable"만을 사용한다는 것에주의하십시오. ogr2ogr -command의 구문은 다음과 같습니다.

ogr2ogr -f [output-format] [output-file] [input-file] -s_srs [source crs] -t_srs [target crs]

이제 올바른 CRS에 투영 된 2 개의 쉐이프 파일이 생겼습니다. 데이터베이스에서 데이터를 사용하려면 shapefile을 sql-statemens로 변환해야합니다. 이를 위해 우리는 shp2pgsql 이라는 도구를 사용합니다. 작업 디렉토리에서 다음 명령을 실행하십시오.

shp2pgsql ./nyad_16d_proj_4326/nyad_4326.shp > nyad_4326.sql
shp2pgsql ./nylion_16d_proj_4326/ny_str_4326.shp > ny_streets_4326.sql

이제 nyad_4326.sqlny_streets_4326.sql 파일이 nyad_4326.sql 에서 사용할 준비가되었습니다. 계속 진행하고 데이터를 임포트하면 공간적으로 사용 가능한 데이터베이스가 작성됩니다.

sudo su - postgres
createdb nycgis
psql -d nycgis

psql-session에서 다음을 실행하십시오 :

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;

(CTRL + D)를 사용하여 psql- 및 postgres-user-sessions를 종료하십시오. 그리고 파일을 가져 오기 :

psql -f nyad_4326.sql -d nycgis
psql -f ny_streets_4326.sql -d nycgis

nycgis 소스가 성공적으로 임포트 된 데이터베이스 nycgis 에는 이제 2 개의 테이블이 있습니다.

이를 확인하려면 QGIS를 엽니 다.

  1. 레이어 > 레이어 추가 > PostGIS 레이어 사용
  2. 데이터베이스에 연결
  3. 당신의 테이블을 선택하십시오
  4. (선택 사항) 새로 만든 레이어의 스타일을 설정합니다.

QGIS- 스크린 샷

Et voilà : 가져온 재 투영 된 지리 데이터가있는 공간적으로 사용 가능한 데이터베이스가 생겼습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow