MongoDB CRUD操作:地理位置查询中的GeoJSON对象
文章目录
MongoDB 支持GeoJSON的对象类型有:Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon、GeometryCollection等,本文针对每种类型进行说明。
要指定GeoJSON的数据需要使用内嵌文档,其形式如下:
<field>: {
type: <GeoJSON type> , coordinates: <coordinates> }
- type字段,指定GeoJSON对象类型
- coordinates字段,用于指定对象的坐标
指定经纬度坐标时,先经度,后纬度,其中经度值介于-180和180之间(含),纬度值介于-90和90之间(含)。
MongoDB对GeoJSON对象的地理空间查询以球面为计算单位,使用WGS84参考系。
Point类型
下面的示例展示了一个GeoJSON点:
{
type: "Point", coordinates: [ 40, 5 ] }
LineString类型
下面的示例展示了一个GeoJSON LineString:
{
type: "LineString", coordinates: [ [ 40, 5 ], [ 41, 6 ] ] }
Polygon(多边形)类型
Polygon类型由GeoJSON LinearRing坐标数组构成,这些LinearRing是闭合的,闭合线串至少有四个坐标对,并指定与第一个和最后一个坐标相同的位置。连接曲面上两个点的线可能包含也可能不包含连接平面上这两个点的同一组坐标,连接曲面上两点的线为测地线,应用时要注意仔细检查点以避免共享边、重叠和其他类型交叉点的错误。
单环多边形
下面的示例指定了一个具有外环但没有内环(或孔)的 GeoJSON 多边形。第一个和最后一个坐标必须匹配才能闭合多边形:
{
type: "Polygon",
coordinates: [ [ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ]