{{위키데이터 속성 추적}}
{{파일 포맷 정보
| name                   = GeoJSON
| logo                   = 
| icon                   = 
| iconcaption            = 
| screenshot             = 
| caption                = 
|_noextcode              = on
| 확장자             = <code>.json</code>, <code>.geojson</code>
|_nomimecode             = on
| mime                   = <code>application/geo+json</code><ref>{{웹 인용|title=The GeoJSON Format (RFC 7946)|url=https://tools.ietf.org/html/rfc7946|publisher=Internet Engineering Task Force (IETF)}}</ref>
| type code              = 
| uniform type           = 
| conforms to            = 
| magic                  = 
| owner                  = 
| released               = <!-- {{시작 날짜와 나이|YYYY|mm|dd|df=yes/no}} -->
| latest release version = 
| latest release date    = <!-- {{시작 날짜와 나이|YYYY|mm|dd|df=yes/no}} -->
| genre                  = [[GIS 파일 포맷]]
| container for          = 
| contained by           = 
| 기반언어          = [[JSON]]
| extended to            = 
| 표준               = RFC 7946
| free                   = 예
| 웹사이트                    = {{URL|https://geojson.org}}
}}
'''GeoJSON'''(지오제이슨)<ref>[https://tools.ietf.org/html/rfc7946 The GeoJSON Format]</ref>은 <!--공간적이지 않은 속성과 함께--> 위치정보를 갖는 점을 기반으로 체계적으로 지형을 표현하기 위해 설계된 개방형 공개 표준 형식이다. 이것은 [[JSON]]인 [[JavaScript|자바스크립트]] 오브젝트 노테이션(Object Notation)을 사용하는 [[파일 포맷]]이다.<ref>{{웹 인용 |url=http://geojson.org/ |제목=보관된 사본 |확인날짜=2018-08-15 |보존url=https://web.archive.org/web/20180819213312/http://geojson.org/ |보존날짜=2018-08-19 |url-status=dead }}</ref><ref>https://tools.ietf.org/html/rfc7946</ref>

[[지리좌표계]]의 점을 기반으로 [[Geocoding]]된 지형지물(주소 및 위치), 라인스트링(LineString - 거리, 고속도로 및 경계등 정보를 담고있는 문자열) 또는 [[선분|폴리라인]], 다각형 (국가,도시, 토지) 및 이러한 유형의 여러 부분으로 구성된 모음을 특징으로 한다.<ref>[https://wiki.openstreetmap.org/wiki/GeoJSON OSM]</ref> GeoJSON 기능은 물리적 세계의 엔티티만을 나타낼 필요는 없다. 예를 들어, 모바일 라우팅 및 네비게이션 애플리케이션은 GeoJSON을 사용하여 서비스 범위를 확장 기술할 수 있다.<ref>[https://developer.apple.com/library/ios/documentation/userexperience/conceptual/LocationAwarenessPG/ProvidingDirections/ProvidingDirections.html iOS Location and Maps Programming Guide]</ref> 또한 [[GPX]]가 특정 목적을 위한 경로 정보 공유 도구로 활용되는것처럼   즉, 산악 등반이나 마운틴 바이크를 위한  루트 및 길안내 자료등으로 사용할 수 있다.

GeoJSON 형식은 공식 표준 조직이 아니라 [[IETF|국제 인터넷 표준화 기구]] 산하 워킹그룹에 의해 작성되고 유지된다는 점에서 다른 [[GIS]] 표준과 다르지만<ref>{{웹 인용 |url=http://lists.geojson.org/listinfo.cgi/geojson-geojson.org |제목=The GeoJSON Discussion List |확인날짜=2018-08-14 |보존url=https://web.archive.org/web/20180801005133/http://lists.geojson.org/listinfo.cgi/geojson-geojson.org |보존날짜=2018-08-01 |url-status=dead }}</ref>[[XML]]을 기반으로 한[[GPX]]와 함께 사실상 표준처럼 사용된다. 특징으로는 일반적인 [[구글맵]]이나 [[오픈스트리트맵]]서비스가 [위도,경도]의 표기법을 사용하나 GeoJSON은 [[세계 지구 좌표 시스템|WGS 84]]가 권장하는 [경도,위도]의 표기법을 지원한다는 점이다.<ref>[https://tools.ietf.org/html/rfc7946#section-1.3 lon,lat-4.  Coordinate Reference System]</ref> GeoJSON은 지형 공간 토폴로지를 인코딩하며 일반적으로 파일 크기가 더 작다.

GeoJSON의 주목할만한 계열은 TopoJSON이다.

==워킹그룹==
GeoJSON 형식의 워킹그룹과 토론은 2007년 3월에 시작되었으며<ref>{{웹 인용 |url=http://lists.geojson.org/pipermail/geojson-geojson.org/2007-March/thread.html |제목=March 2007 Archives by thread |확인날짜=2018-08-14 |보존url=https://web.archive.org/web/20180908194630/http://lists.geojson.org/pipermail/geojson-geojson.org/2007-March/thread.html |보존날짜=2018-09-08 |url-status=dead }}</ref> 형식 지정은 2008년 6월에 마무리되었다.

2015년 4월 [[IETF]](Internet Engineering Task Force)는 GeoJSON을 2016년 8월 RFC 7946<nowiki/>으로 제안된 Geographic JSON 워킹그룹을 구성했다.<ref>https://datatracker.ietf.org/wg/geojson/history/</ref>



==예==
다음은 [[말레이시아]], [[싱가포르]]등이 위치해 있는 [[자바 해]]의 [[말레이 제도]]에서의  가상의 GeoJson 표현이다.<ref>[http://geojson.io/#map=5/3.755/99.580 mapbox,OSRM]</ref>
<syntaxhighlight lang="JavaScript">
{
  "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" }
      }
    }
  ]
}
</syntaxhighlight>

===주요 Geometries 형태===

{| class="wikitable"
|+기본형태(Geometry primitives)
|-
! 주요 형식(Type)
!colspan="2"| 사용예(Examples)
|-
| [[점 (기하학)|Point]]
| [[파일:SFA Point.svg]]
| <syntaxhighlight lang="JavaScript">{
    "type": "Point",
    "coordinates": [30, 10]
}</syntaxhighlight>
|-
| [[선분|LineString]](polyline)
| [[파일:SFA LineString.svg]]
| <syntaxhighlight lang="JavaScript">{
    "type": "LineString",
    "coordinates": [
        [30, 10], [10, 30], [40, 40]
    ]
}</syntaxhighlight>
|-
|rowspan="2"| [[Polygon]]
| [[파일:SFA Polygon.svg]]
| <syntaxhighlight lang="JavaScript">{
    "type": "Polygon",
    "coordinates": [
        [[30, 10], [40, 40], [20, 40], [10, 20], [30, 10]]
    ]
}</syntaxhighlight>
|-
| [[파일:SFA Polygon with hole.svg]]
| <syntaxhighlight lang="JavaScript">{
    "type": "Polygon",
    "coordinates": [
        [[35, 10], [45, 45], [15, 40], [10, 20], [35, 10]],
        [[20, 30], [35, 35], [30, 20], [20, 30]]
    ]
}</syntaxhighlight>
|}

{| class="wikitable"
|+ 복잡한 형태(Multipart geometries)
|-
! 형식(Type)
!colspan="2"| 사용예(Examples)
|-
|[[점 (기하학)|MultiPoint]]
| [[파일:SFA MultiPoint.svg]]
| <syntaxhighlight lang="JavaScript">{
    "type": "MultiPoint",
    "coordinates": [
        [10, 40], [40, 30], [20, 20], [30, 10]
    ]
}</syntaxhighlight>
|-
| [[선분|MultiLineString]]
| [[파일:SFA MultiLineString.svg]]
| <syntaxhighlight lang="JavaScript">{
    "type": "MultiLineString",
    "coordinates": [
        [[10, 10], [20, 20], [10, 40]],
        [[40, 40], [30, 30], [40, 20], [30, 10]]
    ]
}</syntaxhighlight>
|-
|rowspan="2"| [[Polygon|MultiPolygon]]
| [[파일:SFA MultiPolygon.svg]]
| <syntaxhighlight lang="JavaScript">{
    "type": "MultiPolygon",
    "coordinates": [
        [
            [[30, 20], [45, 40], [10, 40], [30, 20]]
        ],
        [
            [[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]]
        ]
    ]
}</syntaxhighlight>
|-
| [[파일:SFA MultiPolygon with hole.svg]]
| <syntaxhighlight lang="JavaScript">{
    "type": "MultiPolygon",
    "coordinates": [
        [
            [[40, 40], [20, 45], [45, 30], [40, 40]]
        ],
        [
            [[20, 35], [10, 30], [10, 10], [30, 5], [45, 20], [20, 35]],
            [[30, 20], [20, 15], [20, 25], [30, 20]]
        ]
    ]
}</syntaxhighlight>
|}

==지원 소프트웨어==
GeoJSON은 [[OpenLayers]]<ref>{{웹 인용|url=http://openlayers.org/dev/examples/vector-formats.html |title=Archived copy |accessdate=2010-03-16 |url-status=dead |archiveurl=https://web.archive.org/web/20100316141001/http://openlayers.org/dev/examples/vector-formats.html |archivedate=2010-03-16 |df= }}</ref>, [[Leaflet]], [[MapServer]]<ref>http://mapserver.org/output/template_output.html</ref>, [[Geoforge]] 소프트웨어<ref>{{웹 인용 |url=http://leafletjs.com/reference.html#geojson |제목=보관된 사본 |확인날짜=2018-08-14 |보존url=https://web.archive.org/web/20180815055415/https://leafletjs.com/reference.html#geojson |보존날짜=2018-08-15 |url-status=dead }}</ref> [[GeoServer]]<ref>{{웹 인용|url=http://svn.codehaus.org/geoserver/tags/2.0.0-alpha1/geoserver/release/README.txt |title=Archived copy |accessdate=2009-12-13 |url-status=dead |archiveurl=https://web.archive.org/web/20091213135246/http://svn.codehaus.org/geoserver/tags/2.0.0-alpha1/geoserver/release/README.txt |archivedate=2009-12-13 |df= }}</ref>, [[장고 (웹 프레임워크)|GeoDjango]]<ref>{{웹 인용|url=http://geodjango.org |title=Archived copy |accessdate=2009-10-09 |url-status=dead |archiveurl=https://web.archive.org/web/20090907092957/http://geodjango.org/ |archivedate=2009-09-07 |df= }}</ref>,  [[GDAL]]<ref>{{웹 인용|url=http://gdal.org/ogr/drv_geojson.html |title=Archived copy |accessdate=2009-10-09 |url-status=dead |archiveurl=https://web.archive.org/web/20090415054743/http://www.gdal.org/ogr/drv_geojson.html |archivedate=2009-04-15 |df= }}</ref>, Safe Software FME 등 많은 매핑 및 [[GIS]] 소프트웨어 패키지에서 지원하고있다.<ref>{{웹 인용|url=http://www.safe.com/reader_writerPDF/geojson.pdf |title=Archived copy |accessdate=2008-07-24 |url-status=dead |archiveurl=https://web.archive.org/web/20080724103529/http://www.safe.com/reader_writerPDF/geojson.pdf |archivedate=2008-07-24 |df= }}</ref> [[CartoDB]]<ref>{{웹 인용 |url=http://developers.cartodb.com/documentation/cartodb-js.html |제목=보관된 사본 |확인날짜=2018-08-14 |보존url=https://web.archive.org/web/20140627210054/http://developers.cartodb.com/documentation/cartodb-js.html |보존날짜=2014-06-27 |url-status=dead }}</ref>와 GDAL OGR 변환 라이브러리를 통해 형식을 처리하는 [[PostGIS]]<ref>{{웹 인용|url=http://pugs.postgresql.org/files/Introduction_to_PostGIS_v1.0.pdf |title=Archived copy |accessdate=2010-06-01 |url-status=dead |archiveurl=https://web.archive.org/web/20100601122329/http://pugs.postgresql.org/files/Introduction_to_PostGIS_v1.0.pdf |archivedate=2010-06-01 |df= }}</ref>와 [[Mapnik]]<ref>{{웹 인용|url=http://svn.mapnik.org/tags/release-0.6.0/docs/api_docs/python/mapnik-module.html |title=Archived copy |accessdate=2009-05-02 |url-status=dead |archiveurl=https://web.archive.org/web/20090502183602/http://svn.mapnik.org/tags/release-0.6.0/docs/api_docs/python/mapnik-module.html |archivedate=2009-05-02 |df= }}</ref>에서 GeoJSON을 사용할 수도 있다. [[Bing Maps]], [[야후!]], [[HERE]]<ref>{{웹 인용 |url=https://developer.here.com/documentation/maps/topics_api/h-data-geojson-intro.html |제목=보관된 사본 |확인날짜=2018-08-14 |보존url=https://web.archive.org/web/20180612211354/https://developer.here.com/documentation/maps/topics_api/h-data-geojson-intro.html |보존날짜=2018-06-12 |url-status=dead }}</ref> 및 [[Google]]은 [[API]] 서비스에서 GeoJSON을 지원한다.

[[Google Maps]] JavaScript API v3은 2014년 3월 19일 기준으로 GeoJSON 데이터 레이어의 통합을 직접 지원한다.<ref>https://developers.google.com/maps/documentation/javascript/examples/layer-data-simple</ref><ref>http://googledevelopers.blogspot.com/2014/03/maps-made-easier-geojson-in-javascript.html</ref> [[줄리아 (프로그래밍 언어)|Julia]] 언어의 경우 GeoJSON.jl 패키지를 사용할 수 있다.

[[GitHub]]은 GeoJSON 렌더링<ref>https://github.com/blog/1528-there-s-a-map-for-that</ref>과 Potrace GeoJSON 내보내기도 지원한다.

Geojson.io는 웹 브라우저에서 GeoJSON 렌더링 및 편집을 지원합니다.


<!--
== TopoJSON ==
TopoJSON is an extension of GeoJSON that encodes [[Geospatial topology|topology]]. Rather than representing geometries discretely, geometries in TopoJSON files are stitched together from shared line segments called ''arcs''.<ref>https://github.com/topojson/topojson-specification</ref> ''Arcs'' are sequences of points, while line strings and polygons are defined as sequences of arcs. Each arc is defined only once, but can be referenced several times by different shapes, thus reducing redundancy and decreasing the file size.<ref>https://github.com/mbostock/topojson/wiki</ref> In addition, TopoJSON facilitates applications that use topology, such as topology-preserving shape simplification, automatic map coloring, and [[cartogram]]s.

A [https://github.com/mbostock/topojson reference implementation] of the [https://github.com/topojson/topojson-specification/blob/master/README.md TopoJSON specification] is available as a command-line tool to encode TopoJSON from GeoJSON (or ESRI Shapefiles) and a [[client side]] [[JavaScript library]] to decode TopoJSON back to GeoJSON again. TopoJSON is also supported by the popular OGR tool as of version 1.11<ref>[http://trac.osgeo.org/gdal/wiki/Release/1.11.0-News GDAL/OGR 1.11.0 Release Notes]</ref> and PostGIS as of version 2.1.0.<ref>[http://postgis.net/docs/AsTopoJSON.html PostGIS AsTopoJSON]</ref>   -->

== TopoJSON 스키마 ==
[[위도]]0 °와 [[경도]] 0 ° 근처에 [[GIS]] 정보가 주어지면 모든 메타 데이터를 포함하고있는 단순하지만 유효하고 완전한 topojson 파일의 'Polygon', ' LineString ', 'Point' ,'arc' 및 'properties'는 다음과 같이 정의할 수 있다.
[[파일:Topojson shapes-en.svg|섬네일|Topojson 속성들과 표현|400px]]
<syntaxhighlight lang=JavaScript>
{
  "type":"Topology",
  "transform":{
    "scale": [1,1],
    "translate": [0,0]
  },
  "objects":{
    "two-squares":{
      "type": "GeometryCollection",
      "geometries":[
        {"type": "Polygon", "arcs":[[0,1]],"properties": {"name": "Left_Polygon" }},
        {"type": "Polygon", "arcs":[[2,-1]],"properties": {"name": "Right_Polygon" }}
      ]
    },
    "one-line": {
      "type":"GeometryCollection",
      "geometries":[
        {"type": "LineString", "arcs": [3],"properties":{"name":"Under_LineString"}}
      ]
    },
    "two-places":{
      "type":"GeometryCollection",
      "geometries":[
        {"type":"Point","coordinates":[0,0],"properties":{"name":"Origine_Point"}},
        {"type":"Point","coordinates":[0,-1],"properties":{"name":"Under_Point"}}
      ]
    }
  },
  "arcs": [
    [[1,2],[0,-2]],
    [[1,0],[-1,0],[0,2],[1,0]],
    [[1,2],[1,0],[0,-2],[-1,0]],
    [[0,-1],[2,0]]
  ]
}
</syntaxhighlight>

==확장성==
GeoJSON은 [[GPX]]와 호환되면서도, [[XML]]에 기반한 GPX와는 다르게 [[XML 스키마|스키마]]나 태그의 [[HTML 요소|엘리먼트]] 제약으로부터 훨씬 자유롭다. 따라서 [[폴리라인]](라인스트링)의 압축이 가능하고 적은 량(light-weight)의  데이타로 응용 프로그램의 적재에 용이할 수 있다.<ref>[https://developers.google.com/maps/documentation/utilities/polylinealgorithm 구글맵]</ref><ref>{{웹 인용 |url=https://google-developers.appspot.com/maps/documentation/utilities/polyline-utility/polylineutility |제목=구글맵 |확인날짜=2018-08-15 |보존url=https://web.archive.org/web/20180815055344/https://google-developers.appspot.com/maps/documentation/utilities/polyline-utility/polylineutility |보존날짜=2018-08-15 |url-status=dead }}</ref>

== 같이 보기 ==
* [[GeoServer]]
* [[GPX]]
* [[KML]]

== 각주 ==
{{각주}}
* [https://wiki.openstreetmap.org/w/index.php?title=Polyline&redirect=no 오픈스트리트맵]
* [https://developers.google.com/maps/documentation/utilities/polylineutility 구글맵]
* [https://sites.google.com/site/bimprinciple/in-the-news/sogseong-gwahyeongsangdeiteopyohyeon-iganeunghangeojson 속성과 형상 데이터 표현이 가능한 GeoJSON - Taewook Kang] {{웨이백|url=https://sites.google.com/site/bimprinciple/in-the-news/sogseong-gwahyeongsangdeiteopyohyeon-iganeunghangeojson |date=20201017044415 }}
* [http://www.topografix.com/gpx.asp WHAT IS GPX?]

== 외부 링크 ==
* {{공식 웹사이트|https://geojson.org}}
* [https://geojsonlint.com https://geojsonlint.com]
* [https://github.com/topojson/topojson topojson/topojson]

[[분류:지리 정보 시스템]]
[[분류:자유 소프트웨어]]
[[분류:JSON]]