GeoJSON
Rozszerzenia pliku |
.json .geojson |
---|---|
Typ MIME |
|
Otwarty format? |
tak |
Strona internetowa |
GeoJSON to otwarty standard format przeznaczony do reprezentowania prostych obiektów geograficznych wraz z ich nieprzestrzennymi atrybutami. Opiera się na formacie JSON.
Obiekty (Feature) obejmują punkty (mogą zwierać adresy i lokalizacje), linie łamane (np. ulice, drogi i granice), wielokąty (np. obszary, miasta, kraje, kontynenty) oraz wieloczęściowe kolekcje różnego typu. Obiekty GeoJSON nie muszą reprezentować tylko fizycznie istniejących obiektów - np. mobilne aplikacje do nawigacji mogą opisywać zasięg swoich usług za pomocą GeoJSON[1].
Format GeoJSON różni się od innych standardów GIS tym, że nie został opracowany przez formalną organizację normalizacyjną, ale przez internetową grupę roboczą programistów[2].
Jednym z rozszerzeń GeoJSON jest TopoJSON, który koduje topologię geoprzestrzenną w postaci połączonych obiektów i zazwyczaj zapewnia mniejsze rozmiary plików.
Format GeoJSON jest wykorzystywany m.in przez biblioteki do wyświetlania dynamicznych map na stronach internetowych np. OpenLayers, Leaflet.
Historia[edytuj | edytuj kod]
Grupa robocza standardu GeoJSON i dyskusja rozpoczęły się w marcu 2007[3], a specyfikacja formatu została ukończona w czerwcu 2008.
W kwietniu 2015 r. Internet Engineering Task Force założył grupę roboczą Geographic JSON[4], która w sierpniu 2016 r. wydała GeoJSON jako RFC 7946 ↓.
Przykład[edytuj | edytuj kod]
{
"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" }
}
}
]
}
Obiekty geometryczne (Features)[edytuj | edytuj kod]
Punkty są reprezentowane jako [x, y] lub [x, y, z]. Mogą to być długość i szerokość geograficzna lub współrzędne kartezjańskie. Wysokość to opcjonalna trzecia liczba. Zapisywane jako liczby dziesiętne[5].
Na przykład Londyn (51,5074° N, 0,1278° E) to [-0,1278, 51,5074]
Typ | Przykład | |
---|---|---|
Punkt (Point) | {
"type": "Point",
"coordinates": [30.0, 10.0]
}
| |
Linia łamana (LineString) | {
"type": "LineString",
"coordinates": [
[30.0, 10.0],
[10.0, 30.0],
[40.0, 40.0]
]
}
| |
Wielokąt (Polygon) | {
"type": "Polygon",
"coordinates": [
[
[30.0, 10.0],
[40.0, 40.0],
[20.0, 40.0],
[10.0, 20.0],
[30.0, 10.0]
]
]
}
| |
{
"type": "Polygon",
"coordinates": [
[
[35.0, 10.0],
[45.0, 45.0],
[15.0, 40.0],
[10.0, 20.0],
[35.0, 10.0]
],
[
[20.0, 30.0],
[35.0, 35.0],
[30.0, 20.0],
[20.0, 30.0]
]
]
}
|
Typ | Przykład | |
---|---|---|
Wielopunkt (MultiPoint) | {
"type": "MultiPoint",
"coordinates": [
[10.0, 40.0],
[40.0, 30.0],
[20.0, 20.0],
[30.0, 10.0]
]
}
| |
Linie łamane (MultiLineString) | {
"type": "MultiLineString",
"coordinates": [
[
[10.0, 10.0],
[20.0, 20.0],
[10.0, 40.0]
],
[
[40.0, 40.0],
[30.0, 30.0],
[40.0, 20.0],
[30.0, 10.0]
]
]
}
| |
Wielokąty (MultiPolygon | {
"type": "MultiPolygon",
"coordinates": [
[
[
[30.0, 20.0],
[45.0, 40.0],
[10.0, 40.0],
[30.0, 20.0]
]
],
[
[
[15.0, 5.0],
[40.0, 10.0],
[10.0, 20.0],
[5.0, 10.0],
[15.0, 5.0]
]
]
]
}
| |
{
"type": "MultiPolygon",
"coordinates": [
[
[
[40.0, 40.0],
[20.0, 45.0],
[45.0, 30.0],
[40.0, 40.0]
]
],
[
[
[20.0, 35.0],
[10.0, 30.0],
[10.0, 10.0],
[30.0, 5.0],
[45.0, 20.0],
[20.0, 35.0]
],
[
[30.0, 20.0],
[20.0, 15.0],
[20.0, 25.0],
[30.0, 20.0]
]
]
]
}
| ||
Kolekcja obiektów (GeometryCollection) | {
"type": "GeometryCollection",
"geometries": [
{
"type": "Point",
"coordinates": [40.0, 10.0]
},
{
"type": "LineString",
"coordinates": [
[10.0, 10.0],
[20.0, 20.0],
[10.0, 40.0]
]
},
{
"type": "Polygon",
"coordinates": [
[
[40.0, 40.0],
[20.0, 45.0],
[45.0, 30.0],
[40.0, 40.0]
]
]
}
]
}
|
Zobacz też[edytuj | edytuj kod]
- Język znaczników geograficznych
- Format pliku wektorowego GIS
Przypisy[edytuj | edytuj kod]
- ↑ Providing Directions. developer.apple.com.
- ↑ GeoJSON Info Page. lists.geojson.org.
- ↑ The GeoJSON March 2007 Archive by thread. lists.geojson.org.
- ↑ Geographic JSON (geojson) -. datatracker.ietf.org.
- ↑ GeoJSON RFC #3.1.1.
Źródła[edytuj | edytuj kod]
- Christopher Andrews: Emerging Technology: AJAX and GeoJSON. 18 September 2007. [zarchiwizowane z tego adresu (22 May 2009)].
- Geoweb Guru: Technical Overview: GeoJSON. 16 February 2009. [zarchiwizowane z tego adresu (2009-02-21)].
- Chris Lambert: Google Geo Developers Blog: Build on top of your public Latitude location with GeoJSON & KML. 4 May 2009.
Linki zewnętrzne[edytuj | edytuj kod]
- H. Butler i inni, The GeoJSON Format, RFC 7946, IETF, sierpień 2016, DOI: 10.17487/RFC7946, ISSN 2070-1721, OCLC 943595667 (ang.).
- Oficjalna strona projektu
- Walidator GeoJSON
- TopoJSON