GeoJSON
GeoJSON – 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. 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. 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.
| Rozszerzenia pliku |
.json.geojson |
|---|---|
| Typ MIME |
|
| Otwarty format? |
tak |
| Strona internetowa | |
GeoJSON – 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