Какво е GeoJSON файл?
GeoJSON е базиран на JSON формат, предназначен да представя географските характеристики с техните непространствени атрибути. Този формат дефинира различни JSON (JavaScript Object Notation) обекти и техния начин на свързване. Форматът JSON представлява сборна информация за географските характеристики, техните пространствени обхвати и свойства. Обект от този файл може да показва геометрия (точка, линия, многоъгълник), функция или колекция от характеристики. Функциите отразяват адреси и места като улици на точки, главни пътища и граници като линейни низове и държави, провинции и земни региони като полигони. Използвайки GeoJSON, различни мобилни приложения за маршрутизиране и навигация могат да посочват покритието на своите услуги. Разширение на GeoJSON е TopoJSON, което е с по-малък размер и кодира геопространствена топология.
Кратка история
Internet Engineering Task Force (IETF), съвместно с авторите на формата, оформи GeoJSON WG, за да пусне GeoJSON през април 2015 г. Заменяйки 2008 г. Спецификация GeoJSON, RFC 7946, новата стандартна спецификация на формата GeoJSON, публикувана през август 2016 г.
Файлов формат GeoJSON
Координат
Координатата е основният елемент на всички географски данни. Това е едно измерение (географска дължина, ширина), представляващо едно число (десетичен формат) и понякога записва и координата за надморска височина. Времето също е измерение, но неговата сложност затруднява записването му като координата. Координатите и в двата JSON GeoJSON са форматирани като числа.
Позиция
Подреден масив от координати представлява позицията. Това е най-малката единица, която може да посочи точка на земята.
[Дължина, ширина, надморска височина]
Преди пускането на текущата спецификация GeoJSON позволяваше да записва три координати на позиция, но не е разрешено от новата спецификация.
Геометрия
Геометриите са прости форми (точки, криви и повърхности) в GeoJSON, които се състоят от тип и колекция от координати. Точката е най-простата геометрия, която представлява една позиция
{ "тип": "Точка", "координати": [0, 0] }
LineStrings
Най-малко две свързани места се използват за представяне на линия.
{ "тип": "LineString", "координати": [[10, 30], [10, 10]] }
Точковите и линейните низове са двете най-прости категории на геометрията. И двата вида геометрия не притесняват много геометрични правила. Една точка може да бъде представена на място навсякъде и една линия може да има повече от една точка, дори ако точките се пресичат.
Многоъгълници
GeoJSON геометриите изглеждат значително по-сложни в Polygons. Многоъгълниците имат вътрешни и външни области и могат да имат дупки във вътрешността.
{
"type": "Polygon",
"Coordinates": [
[
[30, 10], [10, 10], [10, 0], [20, 40]
]
]
}
В сравнение с LineStrings, в полигоните списъкът с координати е още едно вложено ниво и може да има изрезки като понички.
Координатно ниво
Във формат GeoJSON за свойството на координатите има четири нива на дълбочина.
Характеристика
Геометриите са централната част на GeoJSON, следователно данните от реалния свят са повече от тези прости форми с идентичност и атрибути. Features записва геометрията, както и техните свойства.
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [20, 10]
},
"properties": {
"name": "fortune island"
}
}
Свойствата на функцията могат да бъдат тип JSON обект, съдържащ съпоставяния на ключови стойности с една дълбочина.
FeatureCollection
На най-високото ниво на GeoJSON файловете, FeatureCollection е най-често срещаното нещо, което изглежда така:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [20, 10]
},
"properties": {
"name": "null island"
}
}
]
}
Много софтуерни пакети за картографиране и ГИС поддържат GeoJSON, включително софтуер GeoDjango, OpenLayers и Geoforge. Също така е съвместим с PostGIS и Mapnik. API услугите на Google, yahoo и Bing maps също поддържат GeoJSON.