GeoJSON - GeoJSON
Расширения имени файла | .json , .geojson |
---|---|
Тип интернет-СМИ | приложение / 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 г.
Пример
{ "тип": "FeatureCollection", "Особенности": [ { "тип": "Особенность", "геометрия": { "тип": "Точка", "координаты": [102.0, 0.5] }, "характеристики": { "prop0": "значение0" } }, { "тип": "Особенность", "геометрия": { "тип": "LineString", "координаты": [ [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0] ] }, "характеристики": { "prop0": "значение0", "prop1": 0.0 } }, { "тип": "Особенность", "геометрия": { "тип": «Полигон», "координаты": [ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ] ] }, "характеристики": { "prop0": "значение0", "prop1": { "это": "который" } } } ]}
Геометрии
Тип | Примеры | |
---|---|---|
Точка | { "тип": "Точка", "координаты": [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) и сторона клиента Библиотека JavaScript чтобы снова декодировать TopoJSON обратно в GeoJSON. TopoJSON также поддерживается популярным инструментом OGR начиная с версии 1.11.[8] и PostGIS версии 2.1.0.[9]
Схема TopoJSON
Учитывая ГИС форма рядом координаты широта 0 ° и долгота 0 °, простой, но действительный и полный файл topojson, содержащий все метаданные, Многоугольник, LineString, Точка элементы дуги и характеристики определяется следующим образом:
{ "тип":"Топология", "преобразовать":{ "шкала": [1,1], "переведите": [0,0] }, "объекты":{ "два квадрата":{ "тип": "GeometryCollection", "геометрии":[ {"тип": «Полигон», "дуги":[[0,1]],"характеристики": {"имя": "Левый полигон" }}, {"тип": «Полигон», "дуги":[[2,-1]],"характеристики": {"имя": "Правый полигон" }} ] }, "одна линия": { "тип":"GeometryCollection", "геометрии":[ {"тип": "LineString", "дуги": [3],"характеристики":{"имя":"Under_LineString"}} ] }, "двухместные":{ "тип":"GeometryCollection", "геометрии":[ {"тип":"Точка","координаты":[0,0],"характеристики":{"имя":"Origine_Point"}}, {"тип":"Точка","координаты":[0,-1],"характеристики":{"имя":"Under_Point"}} ] } }, "дуги": [ [[1,2],[0,-2]], [[1,0],[-1,0],[0,2],[1,0]], [[1,2],[1,0],[0,-2],[-1,0]], [[0,-1],[2,0]] ]}
Смотрите также
Рекомендации
- ^ а б Батлер, Ховард; Дэли, Мартин; Дойл, Аллан; Гиллис, Шон; Хаген, Стефан; Шауб, Тим (август 2016 г.). RFC 7946. IETF. Дои:10.17487 / RFC7946.
- ^ Руководство по программированию местоположения и карт iOS
- ^ Список обсуждения GeoJSON
- ^ Март 2007 Архив по веткам
- ^ https://datatracker.ietf.org/wg/geojson/history/
- ^ https://github.com/topojson/topojson-specification
- ^ https://github.com/mbostock/topojson/wiki
- ^ Примечания к выпуску GDAL / OGR 1.11.0
- ^ PostGIS AsTopoJSON
Источники
- Эндрюс, Кристофер (18 сентября 2007 г.). «Новые технологии: AJAX и GeoJSON». Архивировано из оригинал 22 мая 2009 г.
- "Geoweb Guru: Технический обзор: GeoJSON". 16 февраля 2009 г. Архивировано с оригинал 21 февраля 2009 г.
- Ламберт, Крис (4 мая 2009 г.). «Блог разработчиков Google Geo: создавайте свои общедоступные данные в Локаторе с помощью GeoJSON и KML».