Overview
MongoDB ofrece soporte a los tipos de objetos GeoJSON que se enumeran en esta página.
Para especificar datos de GeoJSON, utilice un documento incrustado con:
un campo llamado
typeque especifica el tipo de objeto GeoJSON, yun campo llamado
coordinatesque especifica las coordenadas del objeto.
<field>: { type: <GeoJSON type> , coordinates: <coordinates> }
Importante
Si especifica coordenadas de longitud y latitud, enumera primero la longitud y luego la latitud.
Los valores de longitud válidos están entre
-180y180, ambos inclusive.Los valores de latitud válidos están entre
-90y90, ambos inclusive.
Las consultas geoespaciales de MongoDB sobre objetos GeoJSON se calculan en una esfera; MongoDB utiliza el sistema de referencia WGS84 para consultas geoespaciales sobre objetos GeoJSON.
Point
El siguiente ejemplo especifica un punto GeoJSON:
{ type: "Point", coordinates: [ 40, 5 ] }
LineString
El siguiente ejemplo especifica un GeoJSON LineString:
{ type: "LineString", coordinates: [ [ 40, 5 ], [ 41, 6 ] ] }
Polygon
LospolÃgonos consisten en una matriz de LinearRing matrices de coordenadas GeoJSON. Un LinearRing es un cerrado LineString con al menos cuatro pares de coordenadas. La primera y la última coordenada deben ser idénticas.
Las lÃneas entre dos puntos en una superficie curva, o geodésicas, pueden diferir de las lÃneas entre los mismos puntos en una superficie plana. Revise las coordenadas con cuidado para evitar errores de bordes compartidos, superposiciones u otras intersecciones.
PolÃgonos con un único anillo
El siguiente ejemplo especifica un GeoJSON Polygon con un anillo exterior y sin anillos interiores (o huecos). La primera y la última coordenada deben coincidir para cerrar el polÃgono:
{ type: "Polygon", coordinates: [ [ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ] ] }
Para los polÃgonos con un solo anillo, el anillo no puede intersecarse a sà mismo.
PolÃgonos con múltiples anillos
Para polÃgonos con múltiples anillos:
El primer anillo descrito debe ser el anillo exterior.
El anillo exterior no puede auto-intersectarse.
Todo anillo interior debe estar completamente contenido por el anillo exterior.
Los anillos interiores no se pueden intersectar ni solaparse entre sÃ. Los anillos interiores no pueden compartir un borde.
El siguiente ejemplo representa un polÃgono de GeoJSON con un anillo interior:
{ type : "Polygon", coordinates : [ [ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ], [ [ 2 , 2 ] , [ 3 , 3 ] , [ 4 , 2 ] , [ 2 , 2 ] ] ] }
MultiPoint
Se requiere 2Ãndices dsphere.
Los documentos incrustados de GeoJSON MultiPoint codifican una lista de puntos.
{ type: "MultiPoint", coordinates: [ [ -73.9580, 40.8003 ], [ -73.9498, 40.7968 ], [ -73.9737, 40.7648 ], [ -73.9814, 40.7681 ] ] }
MultiLineString
Se requiere 2Ãndices dsphere.
El siguiente ejemplo especifica un 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
Se requiere 2Ãndices dsphere.
El siguiente ejemplo especifica un MultiPolygon de GeoJSON:
{ 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
Se requiere 2Ãndices dsphere.
El siguiente ejemplo almacena coordenadas del 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 ] ] ] } ] }