Menu Docs
Página inicial do Docs
/ /

Objetos GeoJSON

O MongoDB suporta os tipos de objeto GeoJSON listados nesta página.

Para especificar dados GeoJSON, utilize um documento incorporado com:

  • um campo denominado type que especifica o tipo de objeto GeoJSON e

  • um campo chamado coordinates que especifica as coordenadas do objeto.

<field>: { type: <GeoJSON type> , coordinates: <coordinates> }

Importante

Se especificar coordenadas de latitude e longitude, liste a longitude primeiro e então a latitude.

  • Os valores de longitude válidos estão entre -180 e 180, ambos inclusos.

  • Os valores de latitude válidos estão entre -90 e 90, ambos inclusos.

queries geoespaciais MongoDB em objetos GeoJSON calculam em uma esfera; O MongoDB utiliza o sistema de referência do WGS84 para queries geoespaciais em Objetos GeoJSON.

O exemplo seguinte especifica um Ponto GeoJSON Ponto:

{ type: "Point", coordinates: [ 40, 5 ] }

O exemplo seguinte especifica um GeoJSON LineString:

{ type: "LineString", coordinates: [ [ 40, 5 ], [ 41, 6 ] ] }

Polígonos consistem em uma array de LinearRing coordenadas GeoJSON . Um LinearRing é um fechado LineString com pelo menos quatro pares de coordenadas. A primeira e a última coordenadas devem ser idênticas.

As linhas entre dois pontos em uma superfície curva, ou geodésicas, podem diferir das linhas entre os mesmos pontos em uma superfície plana. Verifique as coordenadas cuidadosamente para evitar erros de borda compartilhada, sobreposições ou outras interseções.

O exemplo a seguir especifica um GeoJSON Polygon com um anel externo e sem anéis internos (ou orifícios). A primeira e a última coordenadas devem coincidir para fechar o polígono:

{
type: "Polygon",
coordinates: [ [ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ] ]
}

Para polígonos com um único anel, o anel não pode auto-interseccionar.

Para Polígonos com múltiplos anéis:

  • O primeiro anel descrito deve ser o anel externo.

  • O anel externo não pode se auto-intersectar.

  • Qualquer anel interno deve estar inteiramente contido pelo anel externo.

  • Os anéis internos não podem se cruzar ou se sobrepor. Os anéis internos não podem compartilhar uma borda.

O seguinte exemplo representa um polígono GeoJSON com um anel interior:

{
type : "Polygon",
coordinates : [
[ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ],
[ [ 2 , 2 ] , [ 3 , 3 ] , [ 4 , 2 ] , [ 2 , 2 ] ]
]
}
Diagrama de um polígono com anel interno.

Requer índices do 2dsphere

Os documentos incorporados do GeoJSON MultiPoint codificam uma lista de pontos.

{
type: "MultiPoint",
coordinates: [
[ -73.9580, 40.8003 ],
[ -73.9498, 40.7968 ],
[ -73.9737, 40.7648 ],
[ -73.9814, 40.7681 ]
]
}

Requer índices do 2dsphere

O exemplo seguinte especifica um GeoJSON MultiLineString:

{
type: "MultiLineString",
coordinates: [
[ [ -73.96943, 40.78519 ], [ -73.96082, 40.78095 ] ],
[ [ -73.96415, 40.79229 ], [ -73.95544, 40.78854 ] ],
[ [ -73.97162, 40.78205 ], [ -73.96374, 40.77715 ] ],
[ [ -73.97880, 40.77247 ], [ -73.97036, 40.76811 ] ]
]
}

Requer índices do 2dsphere

O exemplo seguinte especifica um GeoJSON MultiPolígono:

{
type: "MultiPolygon",
coordinates: [
[ [ [ -73.958, 40.8003 ], [ -73.9498, 40.7968 ], [ -73.9737, 40.7648 ], [ -73.9814, 40.7681 ], [ -73.958, 40.8003 ] ] ],
[ [ [ -73.958, 40.8003 ], [ -73.9498, 40.7968 ], [ -73.9737, 40.7648 ], [ -73.958, 40.8003 ] ] ]
]
}

Requer índices do 2dsphere

O exemplo seguinte armazena coordenadas do tipo GeoJSON GeometryCollection:

{
type: "GeometryCollection",
geometries: [
{
type: "MultiPoint",
coordinates: [
[ -73.9580, 40.8003 ],
[ -73.9498, 40.7968 ],
[ -73.9737, 40.7648 ],
[ -73.9814, 40.7681 ]
]
},
{
type: "MultiLineString",
coordinates: [
[ [ -73.96943, 40.78519 ], [ -73.96082, 40.78095 ] ],
[ [ -73.96415, 40.79229 ], [ -73.95544, 40.78854 ] ],
[ [ -73.97162, 40.78205 ], [ -73.96374, 40.77715 ] ],
[ [ -73.97880, 40.77247 ], [ -73.97036, 40.76811 ] ]
]
}
]
}

Voltar

Encontre restaurantes

Nesta página