Objetos GeoJSON
Nesta página
Visão geral
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 eum 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
e180
, ambos inclusos.Os valores de latitude válidos estão entre
-90
e90
, 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.
Point
O exemplo seguinte especifica um GeoJSON ponto:
{ type: "Point", coordinates: [ 40, 5 ] }
LineString
O exemplo seguinte especifica um GeoJSON LineString:
{ type: "LineString", coordinates: [ [ 40, 5 ], [ 41, 6 ] ] }
Polygon
Os Polígonos consistem em um array de coordenadas GeoJSON LinearRing
. Estes LinearRings
são LineStrings
fechadas. As LineStrings
fechadas têm pelo menos quatro pares de coordenadas e especificam 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.
Polígonos com um anel único
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.
Polígonos com múltiplos anéis
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 ] ] ] }
MultiPoint
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 ] ] }
MultiLineString
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 ] ] ] }
MultiPolygon
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 ] ] ] ] }
GeometryCollection
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 ] ] ] } ] }