AmigoCloud

New in version 2.1.0.

드라이버 단축 이름

AmigoCloud

빌드 의존성

libcurl

이 드라이버는 AmigoCloud API 서비스에 접속할 수 있습니다. AmigoCloud 드라이버를 컴파일하려면 GDAL/OGR를 cURL 지원과 함께 빌드해야만 합니다.

이 드라이버는 읽기 및 쓰기 작업을 지원합니다.

드라이버 케이퍼빌리티

Create() 지원

이 드라이버는 GDALDriver::Create() 작업을 지원합니다.

지리참조 작업 지원

이 드라이버는 지리참조 작업을 지원합니다.

VirtualIO 지원

이 드라이버는 virtual I/O operations (/vsimem/, etc.) 를 지원합니다.

데이터셋 이름 문법

AmigoCloud 데이터소스를 열기 위한 최소한의 문법은 다음과 같습니다:

AmigoCloud:[project_id]

‘:’ 기호 뒤에 선택적인 추가 파라미터를 지정할 수 있습니다. 현재 다음 파라미터를 지원합니다:

  • datasets=dataset_id1[,dataset_id2, ..]: AmigoCloud 데이터셋 ID 목록입니다. 특정 AmigoCloud 데이터셋에 접근해야 하는 경우 필수입니다.

파라미터 여러 개를 지정하는 경우, 공백으로 구분해야만 합니다.

dataset_id를 하나도 지정하지 않으면, 드라이버가 해당 프로젝트에 사용할 수 있는 데이터셋 목록을 출력할 것입니다.

예를 들어 “AmigoCloud:1234 datasets” 라는 명령어를 실행하면 다음과 같은 내용을 출력할 것입니다:

List of available datasets for project id: 1234
| id        | name
|-----------|-------------------
| 5551      | points
| 5552      | lines

인증

AmigoCloud 백엔드가 모든 접근 권한을 정의합니다.

AmigoCloud 대시보드 웹 인터페이스에서 발행하는 API 키를 지정하면 인증된 접근을 할 수 있습니다. AMIGOCLOUD_API_KEY 환경설정 옵션으로 API 키를 지정합니다.

도형

OGR 드라이버는 RFC 41에 따라 레이어에서 사용할 수 있는 모든 도형 필드들을 리포트할 것입니다.

필터링

이 드라이버는 OGRLayer::SetSpatialFilter() 함수에 설정된 모든 공간 필터를 서버로 포워딩할 것입니다. OGRLayer::SetAttributeFilter() 함수에 설정된 속성 필터도 마찬가지입니다.

쓰기 지원

데이터셋을 생성하고 삭제할 수 있습니다.

데이터소스를 업데이트 모드로 연 경우에만 쓰기 지원이 활성화됩니다.

AmigoCloud 서비스의 작업과 OGR 개념을 다음과 같이 매핑합니다:

  • OGRFeature::CreateFeature() <==> INSERT 작업

  • OGRFeature::SetFeature() <==> UPDATE 작업

  • OGRFeature::DeleteFeature() <==> DELETE 작업

  • OGRDataSource::CreateLayer() <==> CREATE TABLE 작업

  • OGRDataSource::DeleteLayer() <==> DROP TABLE 작업

OGRFeature::CreateFeature() 함수로 새 객체를 삽입할 때 명령어가 성공적으로 실행되었다면, OGR이 반환된 amigo_id(GUID)를 가져와서 그 해시(hash) 값을 OGR FID로 사용할 것입니다.

위 작업들은 기본적으로 OGR API 호출과 동시에 서버에 전송됩니다. 하지만 수많은 클라이언트/서버 교환 때문에 수많은 명령어들이 전송되는 경우, 이 때문에 성능이 저하될 수도 있습니다.

레이어 생성 옵션

다음 레이어 생성 옵션들을 사용할 수 있습니다:

  • OVERWRITE=YES/NO: 기존 테이블을 생성할 레이어 이름으로 덮어쓸지 여부를 선택합니다. 기본값은 NO입니다.

  • GEOMETRY_NULLABLE=YES/NO: 도형 열의 값이 NULL일 수 있는지 여부를 선택합니다. 기본값은 YES입니다.

환경설정 옵션

다음 환경설정 옵션들 을 사용할 수 있습니다:

  • AMIGOCLOUD_API_URL: 기본값은 https://app.amigocloud.com/api/v1 입니다. 또다른 서버를 가리키도록 설정할 수 있습니다.

  • AMIGOCLOUD_API_KEY: “인증” 단락을 참조하십시오.

예시

서로 다른 방법으로 AmigoCloud API 토큰을 제공하기:

ogrinfo --config AMIGOCLOUD_API_KEY abcdefghijklmnopqrstuvw -al "AmigoCloud:1234 datasets=987"
ogrinfo -oo AMIGOCLOUD_API_KEY=abcdefghijklmnopqrstuvw -al "AmigoCloud:1234 datasets=987"
env AMIGOCLOUD_API_KEY=abcdefghijklmnopqrstuvw ogrinfo -al "AmigoCloud:1234 datasets=987"
export AMIGOCLOUD_API_KEY=abcdefghijklmnopqrstuvw
ogrinfo -al "AmigoCloud:1234 datasets=987"

데이터셋 목록을 출력하기:

$ ogrinfo -ro "AmigoCloud:1234 datasets"
List of available datasets for project id: 1234
| id        | name
|-----------|-------------------
| 5551      | points
| 5552      | lines

데이터셋 목록으로부터 데이터 접근하기:

ogrinfo -ro "AmigoCloud:1234 datasets=1234,1235"

shapefile로부터 테이블을 생성하고 채우기:

ogr2ogr -f AmigoCloud "AmigoCloud:1234" myshapefile.shp

기존 테이블(dataset_id: 12345)에 shapefile의 데이터를 추가하기:

ogr2ogr -f AmigoCloud "AmigoCloud:1234 datasets=12345" myshapefile.shp

또는

ogr2ogr -append -f AmigoCloud "AmigoCloud:1234 datasets=12345" myshapefile.shp

기존 테이블(dataset_id: 12345)의 데이터를 shapefile의 데이터로 덮어쓰기:

ogr2ogr -append -doo OVERWRITE=YES -f AmigoCloud "AmigoCloud:1234 datasets=12345" myshapefile.shp

기존 데이터셋(dataset_id: 12345)을 삭제하고 shapefile의 데이터로 새 데이터셋을 생성하기:

ogr2ogr -overwrite -f AmigoCloud "AmigoCloud:1234 datasets=12345" myshapefile.shp

기존 테이블(dataset_id: 12345)의 데이터를 shapefile의 데이터로 덮어쓰기. “visited_on” 필드의 값이 2017-08-20 이후인 레코드만 필터링합니다.

ogr2ogr -append -doo OVERWRITE=YES -f AmigoCloud "AmigoCloud:1234 datasets=12345" -where "visited_on > '2017-08-20'" myshapefile.shp

참고