GeoJSON: различия между версиями
GeenMay (обсуждение | вклад) Создана статья на основе английской. Метка: визуальный редактор отключён |
(нет различий)
|
Версия от 09:27, 12 октября 2015
GeoJSON | |
---|---|
Расширение |
. |
MIME-тип | application/vnd.geo+json |
Разработчик | Инженерный совет Интернета |
Тип формата | ГИС формат файла |
Расширен из | JSON |
Открытый формат? | да |
Сайт | geojson.org (англ.) |
GeoJSON это открытый формат открытого предназначен для хранения географических структур данных, основан основанные на JavaScript Object Notation.
Формат может хранить примитивные типы для описания географических объектов, такие как: точки (адреса и местоположения), линии (улицы, шоссе, границы), полигоны (страны, штаты, участки земли). Также могут храниться так называемые мультитипы, которые представляют собой объединение нескольких примитивных типов.
Формат 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"}
}
}
]
}
Объекты
Type | Examples | |
---|---|---|
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]]
]
}
|
Type | Examples | |
---|---|---|
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, 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.
Карты Google Maps Javascript API v3 напрямую поддерживают интеграцию слоёв данных GeoJSON [12] по состоянию на 19 марта 2014 года.[13]
GitHub тоже поддерживает GeoJSON [14] и Potrace GeoJSON-экспорт.
TopoJSON
TopoJSON является продолжением GeoJSON. Вместо того, чтобы представлять географические объекты по-отдельности, в TopoJSON они сшиты в единые объекты, называемые дугами (arcs).[15] Дуги - это последовательность точек, в то время как линии и полигоны - являются последовательность дуг. Каждая дуга определяется только один раз, но может быть использована несколько раз в различных формах, тем самым уменьшается избыточность и размер файлов.
Здесь reference implementation можно of the TopoJSON specification доступен инструмент командной строки для кодирования TopoJSON из GeoJSON и JavaScript библиотека для декодирования TopoJSON обратно GeoJSON.
TopoJSON Схема
Описание объекта около координат нулевой параллели и нулевой широты, простое но содержащее все необходимые типы Полигоны(Polygon), Линии(LineString), Точки(Point), Дуги (arcs) и Описания:
![](http://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Topojson_shapes-en.svg/400px-Topojson_shapes-en.svg.png)
{
"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]]
]
}
Ссылки
- ↑ March 2007 Archives by thread
- ↑ http://openlayers.org/dev/examples/vector-formats.html
- ↑ http://mapserver.org/output/template_output.html
- ↑ http://leafletjs.com/reference.html#geojson
- ↑ http://svn.codehaus.org/geoserver/tags/2.0.0-alpha1/geoserver/release/README.txt
- ↑ http://geodjango.org
- ↑ http://gdal.org/ogr/drv_geojson.html
- ↑ http://www.safe.com/reader_writerPDF/geojson.pdf
- ↑ http://developers.cartodb.com/documentation/cartodb-js.html
- ↑ http://pugs.postgresql.org/files/Introduction_to_PostGIS_v1.0.pdf
- ↑ http://svn.mapnik.org/tags/release-0.6.0/docs/api_docs/python/mapnik-module.html
- ↑ https://developers.google.com/maps/documentation/javascript/examples/layer-data-simple
- ↑ http://googledevelopers.blogspot.com/2014/03/maps-made-easier-geojson-in-javascript.html
- ↑ https://github.com/blog/1528-there-s-a-map-for-that
- ↑ https://github.com/topojson/topojson-specification
Источники
- http://geojson.org/
- http://geojson.org/geojson-spec.html
- Andrews, Christopher Emerging Technology: AJAX and GeoJSON (18 сентября 2007).
- Geoweb Guru: Technical Overview: GeoJSON (16 февраля 2009).
- Lambert, Chris Google Geo Developers Blog: Build on top of your public Latitude location with GeoJSON & KML (4 мая 2009).
- https://github.com/mbostock/topojson
- https://github.com/topojson/topojson-specification