엑스알 지오코더 (XrGeocoder) v4.5 임대 라이선스 및 사용 설명

이 프로그램은 지오코딩과 리버스 지오코딩 기능을 제공합니다. 지오코딩은 주소를 좌표로 변환하고 반대로 리버스 지오코딩은 좌표를 주소로 변환합니다. 아래의 링크를 클릭해 설치 파일을 내려 받아 설치하시면 됩니다.

기간 라이선스를 구매해야 사용할 수 있는 프로그램으로 사용 기간에는 변환 건수에 제한 없이 사용할 수 있습니다. 행정처리 상 다수의 인터넷 결제가 어려운 관공서 및 회사에 추천 드립니다. 각 라이선스 기간에 대한 비용은 다음과 같습니다. 라이선스 신청은 프로그램을 실행하여 간단히 하실 수 있으며, 신청하시면 담당자가 확인 후 진행을 도와 드립니다.

라이선스 기간 허용 PC (동일 IP 대) 비용 (VAT 포함)
1개월 최대 1대 2,200,000원
6개월 최대 2대 4,400,000원
12개월 최대 3대 7,700,000원

만약 라이선스 없이 이용하고자 할 경우 별도의 설치 없이 이용할 수 있는 웹 기반의 지오서비스웹을 사용하시기 바랍니다. 이 프로그램과 지오서비스웹의 지오코딩은 동일한 엔진을 사용하여 같은 성능과 정확도를 제공합니다. (단, 인터넷 환경 및 동시 사용자가 많을 경우 속도가 느려질 수 있으며 1 건당 평균 0.01초 소요)

사용 설명

주소를 좌표로 변환하기

변환할 주소는 아래의 그림처럼 엑셀 또는 메모장을 통해 CSV 포맷으로 저장하여 사용할 수 있습니다. CSV는 각 데이터를 컴마(,)로 구분하는 데이터 형식이며 첫줄은 반드시 영문의 필드명으로 구성되어야 합니다.

이 입력 데이터를 GeoCoder-Xr 프로그램에서 “입력파일” 버튼을 통해 읽은 후 주소 필드를 지정하고 결과 포맷으로 저장할 SHP 파일을 지정하면 아래의 화면처럼 구성됩니다.

이제 좌표로 변환하기 위한 시작 버튼을 누르면 좌표로 변환됩니다. 성공적으로 변환되면 아래의 화면처럼 변환된 지점이 지도에 표시됩니다.

좌표를 주소로 변환하기

반대로, 좌표를 주소로 변환할 수 있으며 아래와 같은 화면과 같은 CSV 데이터를 사용합니다.

위의 CSV 데이터를 입력 파일로 지정한 화면은 다음과 같습니다.

지원되는 좌표계(EPSG)

주소를 좌표로 변환할 때 적용되는 좌표계는 EPSG 방식으로 지정할 수 있으며 현재 지원되는 EPSG는 다음과 같습니다.

  • EPSG:4326 – WGS84 타원체의 경위도 좌표계
  • EPSG:3857 – Google, VWorld의 좌표계
  • EPSG:5174 – 경도 10.405초 보정된 Bessel 타원체의 TM 중부원점
  • EPSG:5179 – GRS80 타원체의 UTM-K 좌표계

TypeScript의 배열로 Union Type 정의하기

다음과 같은 배열이 있다.

const SideTypes = [ "FRONT", "BACK", "DOUBLE" ] as const;

위의 배열 객체를 가지고 FRONT와 BACK 또는 DOUBLE 문자열을 갖는 Union Type을 정의하는 코드는 다음과 같다. (as const를 반드시 붙여야 한다.)

type OptionType = {
  side: typeof SideTypes[number];
};

즉, 위의 코드는 아래와 코드와 동일하다. 하지만 아래처럼하면 배열 객체의 값과 유니온 타입을 정의하기 위한 값에 대한 코드가 중복되는 문제가 있다. 이는 반드시 고쳐야 하는 아주 나쁜 리펙토링 대상이다.

type OptionType = {
  side: "FRONT" | "BACK" | "DOUBLE";
};

이제 OptionType은 다음처럼 사용될 수 있다.

const options: OptionType = {
  side: "FRONT"
};

이제 lil-gui 라이브러리에서 다음처럼 효과적인 코드로 작성될 수 있다.

const gui = new GUI();
gui.add(options, "side", SideTypes).onChange(v => {
  if(v === "FRONT") {
    material.side = THREE.FrontSide;
  } else if(v === "BACK") {
    material.side = THREE.BackSide;
  } else if(v === "DOUBLE") {
    material.side = THREE.DoubleSide;
  }
});

위의 코드가 적용된 실행 화면인데, 화면의 우측 상단의 GUI를 위해 적용된 코드다.

PostgreSQL 삭제 (on CentOS)

먼저 postgresql에 대한 서비스를 종료해야 함

systemctl stop postgresql

나 같은 경우 아래처럼 버전을 명확히 명시해야 했음

systemctl stop postgresql-9.6

패지키 삭제

sudo yum remove postgresql-server postgresql-contrib

DB가 저장된 디렉토리 삭제

sudo rm -rf /var/lib/pgsql

postgres 사용자 제거

userdel postgres

최신 버전 설치를 위한 yum 업데이트

일단 현재 yum에 적용된 postgresql의 버전을 확인

yum info postgresql-server

설치하고자 하는 버전보다 낮을 경우 아래 명령을 통해 최신 버전으로 반영함

yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum repolist -y
yum -y update

설치

CentOS 7에서 PostgreSQL 10.2, PostGIS 2.4.3 설치(인터넷 환경)

맥에서 어플리케이션 언인스톨(제거)

맥에서 어플리케이션을 제거하기 위해서는 그냥 파인더에 보이는 어플리케이션에서 제거하고자 하는 항목을 쓰레기 통에 해당 항목을 옮기면 된다는 것으로 설명되는 경우가 많다. 이 부분에 대해서 맥의 장점이다라고 언급하는 경우도 있는데.. 이는 절대 아니다. 맥은 이런 방식으로 어플리케이션을 완전히 삭제해 주는 경우가 거의 없다. 단지 사용자에게 해당 어플리케이션의 주요 파일들을 삭제하고 아이콘을 감춰주는 정도로 이해하면 될듯하다. 하지만 지금의 어플리케이션은 옛날처럼 그렇게 구조가 간단하지 않다. 맥에서 어플리케이션을 완전히 삭제하기 위해서는 여기저기에 흩어져 있는 파일들을 사용자가 하나 하나 찾아 삭제해 줘야 한다.

다행히도 어플리케이션을 제거하는 과정은 일반화되어 있는데 이를 정리한다.

  1. 먼저 해당 어플리케이션이 실행 중이라면 (완전히) 종료한다.
  2. Applications에서 유틸리티의 “활성 상태 보기”를 실행해 해당 어플리케이션과 관련된 항목을 찾아 종료(Quit) 시킨다.
  3. 파인더의 어플리케이션에서 제거할 것을 쓰레기통에 넣는다.
  4. 이제 다음의 디렉토리로 이동해(파인더에서 SHIFT+CMD+G) 해당 어플리케이션과 관련된 항목들을 모두 지운다: ~/Library/Application Support, ~/Library/Caches, ~/Library/Preferences, ~/Library/Logs, ~/Library/Cookies, 추가적으로 루트(/)을 기준으로 검색해 보는 것도 강력히 권장한다.
  5. 쓰레기통을 비운다.

아직 해당 어플리케이션의 아이콘이 보일 수 있는데, 재부팅하면 더 이상 보이지 않을 것이다. 단, 관련된 항목을 모두 제거 했다면 말이다.