Расширения имени файла | .json , .geojson |
---|---|
Тип интернет-СМИ | application/geo+json [1] |
Тип формата | Формат файла ГИС |
Расширен с | JSON |
Стандарт | RFC 7946 |
Открытый формат ? | да |
Интернет сайт | geojson |
GeoJSON [1] - это открытый стандартный формат, разработанный для представления простых географических объектов вместе с их непространственными атрибутами. Он основан на формате JSON .
К функциям относятся точки (следовательно, адреса и местоположения), линейные строки (т.е. улицы, шоссе и границы), многоугольники (страны, провинции, участки земли) и составные части этих типов. Функции GeoJSON не обязательно должны представлять объекты только физического мира; например, мобильные приложения для маршрутизации и навигации могут описывать покрытие своих услуг с помощью GeoJSON. [2]
Формат GeoJSON отличается от других стандартов ГИС тем, что он был написан и поддерживается не официальной организацией по стандартизации, а рабочей группой разработчиков в Интернете. [3]
Заметным потомком GeoJSON является TopoJSON , расширение GeoJSON, которое кодирует геопространственную топологию и обычно обеспечивает файлы меньшего размера.
История [ править ]
Рабочая группа и обсуждение формата GeoJSON были начаты в марте 2007 года [4], а спецификация формата была завершена в июне 2008 года.
В апреле 2015 года Инженерная группа Интернета учредила рабочую группу Geographic JSON [5], которая выпустила GeoJSON как RFC 7946 в августе 2016 года.
Пример [ править ]
{ "type" : "FeatureCollection" , "features" : [ { "type" : "Feature" , "geometry" : { "type" : "Point" , "координаты" : [ 102.0 , 0.5 ] }, "properties" : { "prop0" : "value0" } }, { "type" : "Feature" , "geometry" : { "тип " : " LineString " , " координаты " : [ [ 102.0 , 0.0 ], [ 103.0 , 1.0 ], [ 104.0 , 0.0 ], [ 105.0 , 1.0 ] ] }, "properties" : { "prop0" : "value0" , "prop1" : 0.0 } }, { " тип " : " Объект " , " геометрия " : { " тип " : " Многоугольник " , " координаты " : [ [ [ 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 " } } } ] }
Геометрия [ править ]
Тип | Примеры | |
---|---|---|
Точка | { "тип" : "точка" , "координаты" : [ 30 , 10 ] } | |
LineString | { "тип" : "LineString" , "координаты" : [ [ 30 , 10 ], [ 10 , 30 ], [ 40 , 40 ] ] } | |
Многоугольник | { "тип" : "Многоугольник" , "координаты" : [ [[ 30 , 10 ], [ 40 , 40 ], [ 20 , 40 ], [ 10 , 20 ], [ 30 , 10 ]] ] } | |
{ "тип" : "Многоугольник" , "координаты" : [ [[ 35 , 10 ], [ 45 , 45 ], [ 15 , 40 ], [ 10 , 20 ], [ 35 , 10 ]], [[ 20 , 30 ], [ 35 , 35 ], [ 30 , 20 ], [ 20 , 30 ]] ] } |
Тип | Примеры | |
---|---|---|
MultiPoint | { "тип" : "Многоточечный" , "координаты" : [ [ 10 , 40 ], [ 40 , 30 ], [ 20 , 20 ], [ 30 , 10 ] ] } | |
MultiLineString | { "тип" : "MultiLineString" , "координаты" : [ [[ 10 , 10 ], [ 20 , 20 ], [ 10 , 40 ]], [[ 40 , 40 ], [ 30 , 30 ], [ 40 , 20 ], [ 30 , 10 ]] ] } | |
Мультиполигон | { "тип" : "Мультиполигон" , "координаты" : [ [ [[ 30 , 20 ], [ 45 , 40 ], [ 10 , 40 ], [ 30 , 20 ]] ]], [ [[ 15 , 5 ], [ 40 , 10 ], [ 10 , 20 ], [ 5 , 10 ], [ 15 , 5 ]] ] ] } | |
{ "тип" : "Мультиполигон" , "координаты" : [ [ [[ 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 ]] ] ] } | ||
GeometryCollection | { "тип" : "GeometryCollection" , "геометрии" : [ { "тип" : "Точка" , "координаты" : [ 40 , 10 ] }, { "тип" : "LineString" , "координаты" : [ [ 10] , 10 ], [ 20 , 20 ], [ 10 , 40 ] ] }, { "тип" : "Многоугольник", "координаты": [ [[ 40 , 40 ], [ 20 , 45 ], [ 45 , 30 ], [ 40 , 40 ]] ] } ] } |
TopoJSON [ править ]
TopoJSON - это расширение GeoJSON, которое кодирует топологию . Вместо того, чтобы представлять геометрию дискретно, геометрия в файлах TopoJSON сшивается из общих линейных сегментов, называемых дугами . [6] Дуги - это последовательности точек, а линейные цепочки и многоугольники - это последовательности дуг. Каждая дуга определяется только один раз, но на нее можно ссылаться несколько раз разными формами, что снижает избыточность и размер файла. [7] Кроме того, TopoJSON облегчает приложения, использующие топологию, такую как упрощение формы с сохранением топологии, автоматическая раскраска карт и картограммы .
Эталонная реализация спецификации TopoJSON доступна в виде инструмента командной строки для кодирования TopoJSON из GeoJSON (или ESRI Shapefiles) и библиотеки JavaScript на стороне клиента для повторного декодирования TopoJSON обратно в GeoJSON. TopoJSON также поддерживается популярным инструментом OGR с версии 1.11 [8] и PostGIS с версии 2.1.0. [9]
Схема TopoJSON [ править ]
Для данной формы ГИС с координатами 0 ° широты и 0 ° долготы простой, но действительный и полный файл topojson, содержащий все метаданные, Polygon , LineString , элементы Point , дуги и свойства , определяется следующим образом:
{ "тип" : "Топология" , "преобразование" : { "масштаб" : [ 1 , 1 ], "перевод" : [ 0 , 0 ] }, "объекты" : { "два квадрата" : { "тип" : "GeometryCollection" , "geometries" : [ { "type" : "Polygon" , "arcs" : [[ 0 , 1 ]],"properties" : {"name" : "Left_Polygon" }}, { "type" : "Polygon" , "arcs" : [[ 2 , - 1 ]], "properties" : { "name" : "Right_Polygon" }} ] }, " однострочный " : { " тип " : " GeometryCollection " , " геометрия " : [ { " тип " : " LineString " , " дуги " : [ 3 ], "properties" : { "name": "Under_LineString" }} ] }, "два места" : { "тип" : "GeometryCollection" , "геометрии" : [ { "тип" : "Точка" , "координаты" : [ 0 , 0 ], "свойства " : { " name " : " Origine_Point " }}, { " type " : " Point " , " координаты " : [ 0 ,- 1 ], "свойства" : {"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 ]] ] }
См. Также [ править ]
- Язык разметки географии
- Формат векторных файлов ГИС
Ссылки [ править ]
- ^ a b Батлер, Ховард; Дэли, Мартин; Дойл, Аллан; Гиллис, Шон; Хаген, Стефан; Шауб, Тим (август 2016 г.). RFC 7946 . IETF . DOI : 10,17487 / RFC7946 .
- ^ «Обеспечение направлений» . developer.apple.com .
- ^ "Информационная страница GeoJSON" . lists.geojson.org .
- ^ "GeoJSON, март 2007 г. Архив по ветке" . lists.geojson.org .
- ^ "Географический JSON (geojson) -" . datatracker.ietf.org .
- ^ "топойсон / топойсон-спецификация" . 11 декабря 2020 г. - через GitHub.
- ^ "топойсон / топойсон" . GitHub .
- ^ "Релиз / 1.11.0-Новости - ГДАЛ" . trac.osgeo.org .
- ^ "AsTopoJSON" . postgis.net .
Источники [ править ]
- Эндрюс, Кристофер (18 сентября 2007 г.). «Новые технологии: AJAX и GeoJSON» . Архивировано из оригинального 22 мая 2009 года.
- «Geoweb Guru: Технический обзор: GeoJSON» . 16 февраля 2009 года в архив с оригинала на 2009-02-21.
- Ламберт, Крис (4 мая 2009 г.). «Блог разработчиков Google Geo: создавайте свои общедоступные данные в Локаторе с помощью GeoJSON и KML» .
Внешние ссылки [ править ]
- Официальный веб-сайт
- topojson / topojson
- topojson / topojson-спецификация