5.5. Documentos GeoJSON

GeoJSON é um formato de intercâmbio geoespacial baseado na notação JSON. Um objeto GeoJSON pode representar uma:

  • Geometria (Geometry)

  • Feição (Feature)

  • Coleção de Feições (Feature Collection)

5.5.1. Geometrias

O formato GeoJSON suporta os seguintes tipos geométricos (Figura 5.5): Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon e GeometryCollection.

Tipos geométricos suportados pela especificação GeoJSON

Figura 5.5 - Tipos geométricos suportados pela especificação GeoJSON.

5.5.1.1. Point

O tipo geométrico Point (Figura 5.5a) é representado por um objeto JSON com o seguinte formato:

{
    "type": "Point",
    "coordinates": [10.0, 10.0]
}

5.5.1.2. LineString

O tipo geométrico LineString (Figura 5.5b) é representado por um objeto JSON com o seguinte formato:

{
    "type": "LineString",
    "coordinates": [
        [10.0, 10.0],
        [20.0, 20.0],
        [30.0, 12.0]
    ]
}

5.5.1.3. Polygon

O tipo geométrico Polygon (Figura 5.5d e Figura 5.5e) é representado por um objeto JSON com o seguinte formato:

{
    "type": "Polygon",
    "coordinates": [
      [
        [0.0, 0.0],
        [0.0, 10.0],
        [10.0, 10.0],
        [10.0, 0.0],
        [0.0, 0.0]
      ]
    ]
}

5.5.1.4. MultiPoint

O tipo geométrico MultiPoint (Figura 5.5f) é representado por um objeto JSON com o seguinte formato:

{
    "type": "MultiPoint",
    "coordinates": [
        [10.0, 10.0],
        [11.0, 11.0]
    ]
}

5.5.1.5. MultiLineString

O tipo geométrico MultiLineString​ (Figura 5.5g) é representado por um objeto JSON com o seguinte formato:

{
    "type": "MultiLineString",
    "coordinates": [
        [ [10.0, 10.0], [11.0, 11.0] ],
        [ [12.0, 12.0], [13.0, 13.0] ]
    ]
}

5.5.1.6. MultiPolygon

O tipo geométrico MultiPolygon (Figura 5.5h) é representado por um objeto JSON com o seguinte formato:

{
    "type": "MultiPolygon",
    "coordinates": [
        [
            [
                [102.0, 2.0],
                [103.0, 2.0],
                [103.0, 3.0],
                [102.0, 3.0],
                [102.0, 2.0]
            ]
        ],
        [
            [
                [100.0, 0.0],
                [101.0, 0.0],
                [101.0, 1.0],
                [100.0, 1.0],
                [100.0, 0.0]
            ],
            [
                [100.2, 0.2],
                [100.2, 0.8],
                [100.8, 0.8],
                [100.8, 0.2],
                [100.2, 0.2]
            ]
        ]
    ]
}

5.5.1.7. GeometryCollection

O tipo geométrico GeometryCollection (Figura 5.5i) é representado por um objeto JSON com o seguinte formato:

{
   "type": "GeometryCollection",
   "geometries": [
       {
           "type": "Point",
           "coordinates": [100.0, 0.0]
       },
       {
           "type": "LineString",
           "coordinates": [
               [101.0, 0.0],
               [102.0, 1.0]
           ]
       }
   ]
}

5.5.2. Feature

Um objeto do tipo Feature representa um objeto ou entidade geográfica, com o seguinte formato:

{
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [-45.88, -23.17]

    },

    "properties": {
        "cidade": "São José dos Campos"
    }
}

5.5.3. FeatureCollection

Um objeto do tipo FeatureCollection pode ser utilizado para representar uma coleção de objetos ou entidades geográficas, com o seguinte formato:

{
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [-45.88, -23.17]

            },
            "properties": {
                "cidade": "São José dos Campos"
            }
        },
        {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [-43.50, -20.38]

            },
            "properties": {
                "cidade": "Ouro Preto"
            }
        }
    ]
}

Nota

A especificação GeoJSON pode ser encontrada em [7].

5.5.4. Validadores de Documentos GeoJSON

Existem na Internet vários aplicativos online que possibilitam validar a estrutura de um documento GeoJSON, isto é, permite sabermos se o documento respeita a sintaxe (ou notação) GeoJSON. Um bom aplicativo é o geojson.io. Acesse o endereço desse aplicativo e verifique os documentos apresentados na seção anterior.