GeoJSON: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Спасено источников — 8, отмечено мёртвыми — 0. Сообщить об ошибке. См. FAQ.) #IABot (v2.0.8.7
Использование: оформление
 
Строка 165: Строка 165:


== Использование ==
== Использование ==
GeoJSON поддерживается множеством картографических программных пакетов и [[Геоинформационная система|ГИС]], включая [[OpenLayers]],<ref>{{cite web |url=http://openlayers.org/dev/examples/vector-formats.html |title=アーカイブされたコピー |accessdate=2010-03-16 |archiveurl=https://web.archive.org/web/20100316141001/http://openlayers.org/dev/examples/vector-formats.html |archivedate=2010-03-16 }}</ref> [[Leaflet]], [[MapServer]],<ref>{{Cite web |url=http://mapserver.org/output/template_output.html |title=Template-Driven Output — MapServer 7.0.0 documentation<!-- Заголовок добавлен ботом --> |access-date=2015-10-12 |archive-date=2017-03-16 |archive-url=https://web.archive.org/web/20170316050431/http://mapserver.org/output/template_output.html |deadlink=no }}</ref> [http://www.geoforge.org Geoforge] software,<ref>{{Cite web |url=http://leafletjs.com/reference.html#geojson |title=Documentation — Leaflet — a JavaScript library for interactive maps<!-- Заголовок добавлен ботом --> |access-date=2015-10-12 |archive-date=2018-08-15 |archive-url=https://web.archive.org/web/20180815055415/https://leafletjs.com/reference.html#geojson |deadlink=no }}</ref> [[GeoServer]],<ref>[http://svn.codehaus.org/geoserver/tags/2.0.0-alpha1/geoserver/release/README.txt Codehaus<!-- Заголовок добавлен ботом -->] {{webarchive|url=https://web.archive.org/web/20091213135246/http://svn.codehaus.org/geoserver/tags/2.0.0-alpha1/geoserver/release/README.txt |date=2009-12-13 }}</ref> [[Django (Web framework)|GeoDjango]],<ref>[http://geodjango.org GeoDjango<!-- Заголовок добавлен ботом -->] {{webarchive|url=https://web.archive.org/web/20090907092957/http://geodjango.org/ |date=2009-09-07 }}</ref> [[GDAL]],<ref>{{cite web |url=http://gdal.org/ogr/drv_geojson.html |title=アーカイブされたコピー |accessdate=2009-10-09 |archiveurl=https://web.archive.org/web/20090415054743/http://www.gdal.org/ogr/drv_geojson.html |archivedate=2009-04-15 }}</ref> [[Safe Software]] [[Feature Manipulation Engine|FME]],<ref>{{cite web |url=http://www.safe.com/reader_writerPDF/geojson.pdf |title=アーカイブされたコピー |accessdate=2008-07-24 |archiveurl=https://web.archive.org/web/20080724103529/http://www.safe.com/reader_writerPDF/geojson.pdf |archivedate=2008-07-24 }}</ref> и [[CartoDB]].<ref>{{Cite web |url=http://developers.cartodb.com/documentation/cartodb-js.html |title=CartoDB.js — CartoDB Docs<!-- Заголовок добавлен ботом --> |access-date=2015-10-12 |archive-date=2014-06-27 |archive-url=https://web.archive.org/web/20140627210054/http://developers.cartodb.com/documentation/cartodb-js.html |deadlink=yes }}</ref> Кроме этого, можно использовать GeoJSON с [[PostGIS]]<ref>{{cite web |url=http://pugs.postgresql.org/files/Introduction_to_PostGIS_v1.0.pdf |title=アーカイブされたコピー |accessdate=2010-06-01 |archiveurl=https://web.archive.org/web/20100601122329/http://pugs.postgresql.org/files/Introduction_to_PostGIS_v1.0.pdf |archivedate=2010-06-01 }}</ref> и [[Mapnik]],<ref>{{cite web |url=http://svn.mapnik.org/tags/release-0.6.0/docs/api_docs/python/mapnik-module.html |title=アーカイブされたコピー |accessdate=2009-05-02 |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 }}</ref>, оба работают с форматом с помощью библиотеки GDAL OGR. Онлайн-сервисы [[Bing Maps]], [[Yahoo!]] и [[Google]] также поддерживают GeoJSON в своих API.
GeoJSON поддерживается множеством картографических программных пакетов и [[Геоинформационная система|ГИС]], включая [[OpenLayers]]<ref>{{cite web |url=http://openlayers.org/dev/examples/vector-formats.html |title=アーカイブされたコピー |accessdate=2010-03-16 |archiveurl=https://web.archive.org/web/20100316141001/http://openlayers.org/dev/examples/vector-formats.html |archivedate=2010-03-16 }}</ref>, [[Leaflet]]<ref>{{Cite web |url=http://leafletjs.com/reference.html#geojson |title=Documentation — Leaflet — a JavaScript library for interactive maps |access-date=2015-10-12 |archive-date=2018-08-15 |archive-url=https://web.archive.org/web/20180815055415/https://leafletjs.com/reference.html#geojson |deadlink=no }}</ref>, [[MapServer]]<ref>{{Cite web |url=http://mapserver.org/output/template_output.html |title=Template-Driven Output — MapServer 7.0.0 documentation|access-date=2015-10-12 |archive-date=2017-03-16 |archive-url=https://web.archive.org/web/20170316050431/http://mapserver.org/output/template_output.html |deadlink=no }}</ref>, Geoforge software, [[GeoServer]],<ref>[http://svn.codehaus.org/geoserver/tags/2.0.0-alpha1/geoserver/release/README.txt GeoServer 2.0.0-alpha1 (August 11, 2008)] {{webarchive|url=https://web.archive.org/web/20091213135246/http://svn.codehaus.org/geoserver/tags/2.0.0-alpha1/geoserver/release/README.txt |date=2009-12-13 }}</ref> [[Django|GeoDjango]]<ref>[http://geodjango.org GeoDjango] {{webarchive|url=https://web.archive.org/web/20090907092957/http://geodjango.org/ |date=2009-09-07 }}</ref>, [[GDAL]]<ref>{{cite web |url=http://gdal.org/ogr/drv_geojson.html |title=アーカイブされたコピー |accessdate=2009-10-09 |archiveurl=https://web.archive.org/web/20090415054743/http://www.gdal.org/ogr/drv_geojson.html |archivedate=2009-04-15 }}</ref>, [[Safe Software]] [[Feature Manipulation Engine|FME]]<ref>{{cite web |url=http://www.safe.com/reader_writerPDF/geojson.pdf |title=アーカイブされたコピー |accessdate=2008-07-24 |archiveurl=https://web.archive.org/web/20080724103529/http://www.safe.com/reader_writerPDF/geojson.pdf |archivedate=2008-07-24 }}</ref>, и [[CartoDB]]<ref>{{Cite web |url=http://developers.cartodb.com/documentation/cartodb-js.html |title=CartoDB.js — CartoDB Docs|access-date=2015-10-12 |archive-date=2014-06-27 |archive-url=https://web.archive.org/web/20140627210054/http://developers.cartodb.com/documentation/cartodb-js.html |deadlink=yes }}</ref>. Кроме этого, можно использовать GeoJSON с [[PostGIS]]<ref>{{cite web |url=http://pugs.postgresql.org/files/Introduction_to_PostGIS_v1.0.pdf |title=アーカイブされたコピー |accessdate=2010-06-01 |archiveurl=https://web.archive.org/web/20100601122329/http://pugs.postgresql.org/files/Introduction_to_PostGIS_v1.0.pdf |archivedate=2010-06-01 }}</ref> и [[Mapnik]]<ref>{{cite web |url=http://svn.mapnik.org/tags/release-0.6.0/docs/api_docs/python/mapnik-module.html |title=アーカイブされたコピー |accessdate=2009-05-02 |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 }}</ref>, оба работают с форматом с помощью библиотеки GDAL OGR. Онлайн-сервисы [[Bing Maps]], [[Yahoo!]] и [[Google Карты|Google]] также поддерживают GeoJSON в своих API.


Интерфейс Javascript API v3 карт Google Maps напрямую поддерживают интеграцию слоёв данных GeoJSON<ref>{{Cite web |url=https://developers.google.com/maps/documentation/javascript/examples/layer-data-simple |title=Data Layer: Simple {{!}} Google Maps Javascript API {{!}} Google Developers<!-- Заголовок добавлен ботом --> |access-date=2015-10-12 |archive-date=2016-12-30 |archive-url=https://web.archive.org/web/20161230223034/https://developers.google.com/maps/documentation/javascript/examples/layer-data-simple |deadlink=no }}</ref> с 19 марта 2014 года.<ref>{{Cite web |url=http://googledevelopers.blogspot.com/2014/03/maps-made-easier-geojson-in-javascript.html |title=Google Developers Blog: Maps made easier: GeoJSON in the JavaScript Maps API<!-- Заголовок добавлен ботом --> |access-date=2015-10-12 |archive-date=2016-03-04 |archive-url=https://web.archive.org/web/20160304212708/http://googledevelopers.blogspot.com/2014/03/maps-made-easier-geojson-in-javascript.html |deadlink=no }}</ref>
Интерфейс Javascript API v3 карт Google Maps напрямую поддерживают интеграцию слоёв данных GeoJSON<ref>{{Cite web |url=https://developers.google.com/maps/documentation/javascript/examples/layer-data-simple |title=Data Layer: Simple {{!}} Google Maps Javascript API|website=Google Developers|access-date=2015-10-12 |archive-date=2016-12-30 |archive-url=https://web.archive.org/web/20161230223034/https://developers.google.com/maps/documentation/javascript/examples/layer-data-simple |deadlink=no }}</ref> с 19 марта 2014 года.<ref>{{Cite web |url=http://googledevelopers.blogspot.com/2014/03/maps-made-easier-geojson-in-javascript.html |title=Google Developers Blog: Maps made easier: GeoJSON in the JavaScript Maps API |access-date=2015-10-12 |archive-date=2016-03-04 |archive-url=https://web.archive.org/web/20160304212708/http://googledevelopers.blogspot.com/2014/03/maps-made-easier-geojson-in-javascript.html |deadlink=no }}</ref>


[[GitHub]] тоже поддерживает GeoJSON<ref>{{Cite web |url=https://github.com/blog/1528-there-s-a-map-for-that |title=There’s a map for that · GitHub<!-- Заголовок добавлен ботом --> |access-date=2015-10-12 |archive-date=2016-09-27 |archive-url=https://web.archive.org/web/20160927171146/https://github.com/blog/1528-there-s-a-map-for-that |deadlink=no }}</ref> и GeoJSON-экспорт [[Potrace]].
[[GitHub]] тоже поддерживает GeoJSON<ref>{{Cite web |url=https://github.com/blog/1528-there-s-a-map-for-that |title=There’s a map for that|website=[[GitHub]]|access-date=2015-10-12 |archive-date=2016-09-27 |archive-url=https://web.archive.org/web/20160927171146/https://github.com/blog/1528-there-s-a-map-for-that |deadlink=no }}</ref> и GeoJSON-экспорт [[Potrace]].


== TopoJSON ==
== TopoJSON ==

Текущая версия от 07:43, 13 декабря 2024

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
{ "type": "Point", 
    "coordinates": [30, 10]
}
LineString
{ "type": "LineString", 
    "coordinates": [
        [30, 10], [10, 30], [40, 40]
    ]
}
Polygon
{ "type": "Polygon", 
    "coordinates": [
        [[30, 10], [40, 40], [20, 40], [10, 20], [30, 10]]
    ]
}
{ "type": "Polygon", 
    "coordinates": [
        [[35, 10], [45, 45], [15, 40], [10, 20], [35, 10]], 
        [[20, 30], [35, 35], [30, 20], [20, 30]]
    ]
}
Мультитипы
Типы Примеры
MultiPoint
{ "type": "MultiPoint", 
    "coordinates": [
        [10, 40], [40, 30], [20, 20], [30, 10]
    ]
}
MultiLineString
{ "type": "MultiLineString", 
    "coordinates": [
        [[10, 10], [20, 20], [10, 40]], 
        [[40, 40], [30, 30], [40, 20], [30, 10]]
    ]
}
MultiPolygon
{ "type": "MultiPolygon", 
    "coordinates": [
        [
            [[30, 20], [45, 40], [10, 40], [30, 20]]
        ], 
        [
            [[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]]
        ]
    ]
}
{ "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[3], MapServer[4], Geoforge software, 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 является развитием GeoJSON. Вместо того, чтобы представлять географические объекты по отдельности, в TopoJSON они сшиты в единые объекты, называемые дугами (arcs)[15]. Дуги — это последовательность точек, в то время как линии и полигоны — являются последовательностью дуг. Каждая дуга определяется только один раз, но может быть использована несколько раз в различных формах, тем самым уменьшается избыточность и размер файлов.

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

Схема TopoJSON

[править | править код]

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

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

Примечания

[править | править код]
  1. March 2007 Archives by thread. Дата обращения: 12 октября 2015. Архивировано 8 сентября 2018 года.
  2. アーカイブされたコピー. Дата обращения: 16 марта 2010. Архивировано 16 марта 2010 года.
  3. Documentation — Leaflet — a JavaScript library for interactive maps. Дата обращения: 12 октября 2015. Архивировано 15 августа 2018 года.
  4. Template-Driven Output — MapServer 7.0.0 documentation. Дата обращения: 12 октября 2015. Архивировано 16 марта 2017 года.
  5. GeoServer 2.0.0-alpha1 (August 11, 2008) Архивировано 13 декабря 2009 года.
  6. GeoDjango Архивировано 7 сентября 2009 года.
  7. アーカイブされたコピー. Дата обращения: 9 октября 2009. Архивировано 15 апреля 2009 года.
  8. アーカイブされたコピー. Дата обращения: 24 июля 2008. Архивировано 24 июля 2008 года.
  9. CartoDB.js — CartoDB Docs. Дата обращения: 12 октября 2015. Архивировано из оригинала 27 июня 2014 года.
  10. アーカイブされたコピー. Дата обращения: 1 июня 2010. Архивировано 1 июня 2010 года.
  11. アーカイブされたコピー. Дата обращения: 2 мая 2009. Архивировано 2 мая 2009 года.
  12. Data Layer: Simple | Google Maps Javascript API. Google Developers. Дата обращения: 12 октября 2015. Архивировано 30 декабря 2016 года.
  13. Google Developers Blog: Maps made easier: GeoJSON in the JavaScript Maps API. Дата обращения: 12 октября 2015. Архивировано 4 марта 2016 года.
  14. There’s a map for that. GitHub. Дата обращения: 12 октября 2015. Архивировано 27 сентября 2016 года.
  15. mbostock/topojson-specification · GitHub. Дата обращения: 12 октября 2015. Архивировано 11 июня 2018 года.
  16. topojson-specification/README.md at master · mbostock/topojson-specification · GitHub. Дата обращения: 12 октября 2015. Архивировано 8 декабря 2021 года.

Литература

[править | править код]
  • Jon Raasch; Graham Murray; Vadim Ogievetsky; Joseph Lowery. JavaScript and jQuery for Data Analysis and Visualization (англ.). — Wiley, 2014. — P. 315—. — ISBN 978-1-118-84722-0.
  • Scott Murray. Interactive Data Visualization for the Web (англ.). — O’Reilly Media, 2013. — P. 153—. — ISBN 978-1-4493-4024-7.