넥스젠(NexGen)의 지오코딩(Geocoding) 기능

NexGen에서 제공하는 지오코딩 기능을 소개합니다. 지오코딩을 통해 주소를 좌표로 변환하여 원하는 심벌로 지도에 표시할 수 있는데요. 넥스젠에서는 지오코딩을 통해 변환된 공간 데이터는 기본적인 수치지도 레이어와 동일하게 라벨 등과 같은 모든 기능을 활용할 수 있습니다. 아래는 NexGen의 지오코딩 기능에 대한 소개 동영상입니다.

넥스젠의 지오코딩 기능은 사용이 심플하지만 그 어떤 GIS 프로그램에서 제공하는 지오코딩 보다 직관적이고 강력합니다. 넥스젠의 지오코딩은 이미 2014년부터 현재까지 매우 많은 분들이 사용하고 있는, Geocoder-Xr의 기반 서비스를 그대로 활용하고 있습니다.

주소 좌표 변환 툴, Geocoder-Xr

NexGen의 지오코딩은 항상 최신 주소 DB 사용할 수 있습니다. 최신 주소 DB를 통해 변환된 위치를 최신의 배경지도 위에 중첩할 수 있습니다. 이제 NexGen을 통해 웹에서도 바로 지오코딩을 하고, 지도 상에서 빠르게 시각화해 보세요.

GeoJSON Format(형식)

웹에서 위치 데이터를 로컬이나 서버단에서 읽고 저장하기 위한 포맷으로 무엇을 사용할 것인지 고민하다가, GeoJSON으로 결정을 했다. 사실 고민은 단 1도 안한듯.. 당연히 GeoJSON 이지 !

GeoJSON은 JSON으로 위치 데이터와 속성 데이터를 저장하는 형식이다. 다른 GIS 포맷과는 다르게 IETF(Internet Engineering Task Force)에서 제안되어 유지되고 있단다. RFC 번호는 7946이다. 좌표는 경위도 좌표체계로 저장되는데, 흔히 구글맵이나 OSM에서는 (위도, 경도)의 순서로 저장하는데 반해, GeoJSON은 (경도, 위도)의 순서로 저장된다고 한다.

GeoJSON은 다음과 같은 장점을 갖는다.

  • XML과 비교하여 스카마나 태그 규칙에 대해 훨씬 자유롭다. 사실 XML은 보기만해도 두통이 먼저 밀려온다.
  • 데이터 용량이 다른 포맷에 비해 상대적으로 작다.
  • JSON 형식이므로 프로그래밍 언어에서 쉽게 객체화 시킬 수 있다. 특히 Javascript에서는 단 1줄로 객체화 시킬 수 있다.
  • 다양한 응용 프로그램에 적재되기에 용이하며, 실제로 다양한 응용 프로그램에서 활용 된다.

실제 빈 GeoJSON 포맷은 아래와 같다.

{
    "type": "FeatureCollection",
    "features": []
}

features 안에 실제 데이터가 담기는데, 빈 Feature 요소는 다음과 같다.

{
    "type": "Feature",
    "geometry": {},
    "properties": {}
}

geometry에 종류(type)과 좌표(coordinates) 정보가 저장되고, properties에 속성 정보가 Key-Values로 자유롭게 저장된다. 아래는 기본 Geometry 종류에 대한 예이다. (출처: https://ko.wikipedia.org/wiki/GeoJSON)

{
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [102.0, 0.5]
            },
            "properties": {
                "prop0": "value0"
            }
        },
        {
            "type": "Feature",
            "geometry": {
                "type": "LineString",
                "coordinates": [[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]]
            },
            "properties": {
                "prop0": "value0",
                "prop1": 0.0
            }
        },
        {
            "type": "Feature",
            "geometry": {
                "type": "Polygon",
                "coordinates": [[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0],[100.0, 1.0], [100.0, 0.0]]]
            },
            "properties": {
                "prop0": "value0",
                "prop1": { "this": "that" }
            }
        }
    ]
}

좀 더 자세한 기본 형태의 지오메트리와 복잡한 형태의 지오메트리에 대한 정보는 앞 예제의 출처를 참고하자.