使用2个谷歌地图点(纬度和经度)从mongodb查询中查找方形区域数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用2个谷歌地图点(纬度和经度)从mongodb查询中查找方形区域数据相关的知识,希望对你有一定的参考价值。

我正在研究mongodb地理空间功能。

以下是我的数据库架构

{
    _id:5c6fea5aa7f54038cc63db92,
    location:{
        coordinates:[-96.81916,33.07516],
        type:"Point"
    },
    userId:1
}

使用2dsphere在位置字段上建立索引

我有2个点,每个都有纬度和经度,其示例如下

sw_latitude:32.76286484066411 sw_longitude:-96.91870791625979

ne_latitude:32.789133220783015 ne_longitude:-96.67529208374026

基于这两点,我需要得到所有userId,这些都是在这两个点上覆盖

你能告诉我mongo查询给我的结果吗?

答案

我尝试了很多方式,最后我得到了一个解决方案

解决方案1的步骤:

第1步:从该点找到边界

纬度:[32.740776至32.8112099]和经度:[ - 96.910983 TO -96.683016]

第2步:使用Geospatial(ref:$box from mongo)中的$ box并传递此边界点。

{    location: { 
       $geoWithin: { 
           $box:  [ [ 32.740776, 32.8112099 ], [ -96.910983, -96.683016 ] ] 
        }     
      } 
}

解决方案2的步骤:

第1步:按照以下方式正确设置现有点

纬度:[32.76286484066411至32.789133220783015]经度:[ - 96.91870791625979 TO -96.67529208374026]

第2步:使用Geospatial(ref:$box from mongo)中的$ box并传递此边界点。

{    location: { 
       $geoWithin: { 
           $box:  [ [ 32.76286484066411,  32.789133220783015 ], [ -96.91870791625979, -96.67529208374026 ] ] 
        }     
      } 
}

希望对你有所帮助

以上是关于使用2个谷歌地图点(纬度和经度)从mongodb查询中查找方形区域数据的主要内容,如果未能解决你的问题,请参考以下文章

两个纬度/经度点之间的谷歌地图距离计算?

移动谷歌地图标记点时用纬度和经度更新数据库

怎么查经纬度准确地点

如何从 ionic 2 中的谷歌地图获取纬度和经度?

谷歌地图精度问题

如何用经纬度查地点?