Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Objetos GeoJSON

Nesta página

  • Visão geral
  • Point
  • LineString
  • Polygon
  • MultiPoint
  • MultiLineString
  • MultiPolygon
  • GeometryCollection

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.

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

O exemplo a seguir especifica um ponto GeoJSON{ :

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

O exemplo seguinte especifica uma GeoJSON LineString:

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

Polígonos consistem em uma array de LinearRing coordenadas GeoJSON . Estes LinearRings estão fechados LineStrings. O fechado LineStrings tem pelo menos quatro pares de coordenadas e especifica a mesma posição que a primeira e a última coordenadas.

A linha que liga dois pontos numa superfície curva pode ou não conter o mesmo conjunto de coordenadas que liga esses dois pontos numa superfície plana. A linha que liga dois pontos numa superfície curva será geodésica. Marque cuidadosamente os pontos para evitar erros com segmentos compartilhados, bem como sobreposições e outros tipos de intersecçõ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

GeoJSON MultiPoint documentos incorporados 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 a seguir 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 ] ]
]
}
]
}
← Encontre restaurantes com queries geoespaciais