GeoJSON

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
GeoJSON
Расширение

..json, .geojson

MIME-тип

application/vnd.geo+json

Тип формата

ГИС формат файла

Расширен из

JSON

Открытый формат?

да

Сайт

geojson.org

GeoJSON — открытый формат, предназначенный для хранения географических структур данных, основан на JSON.

Формат может хранить примитивные типы для описания географических объектов, такие как: точки (адреса и местоположения), линии (улицы, шоссе, границы), полигоны (страны, штаты, участки земли). Также могут храниться так называемые мультитипы, которые представляют собой объединение нескольких примитивных типов.

Формат GeoJSON отличается от других стандартов ГИС тем, что он был написан и поддерживается не какой-либо организацией по стандартизации, а с помощью рабочей группы разработчиков.

Дальнейшим развитием GeoJSON является TopoJSON, расширение GeoJSON, которое кодирует геопространственную топологию, и, как правило, обеспечивает меньший размер файлов.

История[править | править вики-текст]

Формат GeoJSON начал обсуждаться рабочей группой в марте 2007 года[1] и окончательная спецификация стандарта была готова к июню 2008 года.

Пример[править | править вики-текст]

{ "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"}
           }
         }
       ]
     }

Объекты[править | править вики-текст]

Примитивные типы
Типы Примеры
Point SFA Point.svg
{ "type": "Point", 
    "coordinates": [30, 10]
}
LineString SFA LineString.svg
{ "type": "LineString", 
    "coordinates": [
        [30, 10], [10, 30], [40, 40]
    ]
}
Polygon SFA Polygon.svg
{ "type": "Polygon", 
    "coordinates": [
        [[30, 10], [40, 40], [20, 40], [10, 20], [30, 10]]
    ]
}
SFA Polygon with hole.svg
{ "type": "Polygon", 
    "coordinates": [
        [[35, 10], [45, 45], [15, 40], [10, 20], [35, 10]], 
        [[20, 30], [35, 35], [30, 20], [20, 30]]
    ]
}
Мультитипы
Типы Примеры
MultiPoint SFA MultiPoint.svg
{ "type": "MultiPoint", 
    "coordinates": [
        [10, 40], [40, 30], [20, 20], [30, 10]
    ]
}
MultiLineString SFA MultiLineString.svg
{ "type": "MultiLineString", 
    "coordinates": [
        [[10, 10], [20, 20], [10, 40]], 
        [[40, 40], [30, 30], [40, 20], [30, 10]]
    ]
}
MultiPolygon SFA MultiPolygon.svg
{ "type": "MultiPolygon", 
    "coordinates": [
        [
            [[30, 20], [45, 40], [10, 40], [30, 20]]
        ], 
        [
            [[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]]
        ]
    ]
}
SFA MultiPolygon with hole.svg
{ "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]]
        ]
    ]
}

Использование[править | править вики-текст]

GeoJSON поддерживается множеством картографических программных пакетов и ГИС, включая OpenLayers,[2] Leaflet, MapServer,[3] Geoforge software,[4] GeoServer,[5] GeoDjango,[6] GDAL,[7] Safe Software FME,[8] и CartoDB.[9] Кроме этого, можно использовать GeoJSON с PostGIS[10] и Mapnik,[11], оба работают с форматов с помощью библиотеки GDAL OGR. Онлайн-сервисы Bing Maps, Yahoo! и Google также поддерживают GeoJSON в своих API.

Интерфейс Javascript API v3 карт Google Maps напрямую поддерживают интеграцию слоёв данных GeoJSON[12] по с 19 марта 2014 года.[13]

GitHub тоже поддерживает GeoJSON[14] и GeoJSON-экспорт Potrace.

TopoJSON[править | править вики-текст]

TopoJSON является развитием GeoJSON. Вместо того, чтобы представлять географические объекты по-отдельности, в TopoJSON они сшиты в единые объекты, называемые дугами (arcs)[15]. Дуги — это последовательность точек, в то время как линии и полигоны — являются последовательностью дуг. Каждая дуга определяется только один раз, но может быть использована несколько раз в различных формах, тем самым уменьшается избыточность и размер файлов.

Спецификация формата TopoJSON размещена на сайте GitHub[16].

Схема TopoJSON[править | править вики-текст]

Пример описания объекта, размещающегося около координат нулевой параллели и нулевой широты. Простое но содержит все необходимые типы геометрии: Полигоны(Polygon), Линии(LineString), Точки(Point), Дуги (arcs) и Описания:

{
  "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]]
  ]
}

Примечания[править | править вики-текст]

Литература[править | править вики-текст]

Ссылки[править | править вики-текст]