当前位置:数据库 > mongodb >>

mongodb空间查询之查询单位

mongodb空间查询之查询单位
 
1.建立空间索引
  www.zzzyk.com  
db.collection.ensureIndex({‘geom.coordinates’:’2d’})
2.空间查询
这里遇到的问题是查询的时候会涉及到范围,那么这个范围的单位是什么?
官方文档提到了该单位使用的是弧度。
所以,比如查询的是  5公里范围某个点周围的信息,则使用如下:(官方推荐的坐标顺序采用的是 [lng,lat]。)
 
{"geom.coordinates":{$within:{$centerSphere:[[116.314869,39.950785],5*0.621/3963.192]}}}
 1) geom.coordinates 是前面的空间索引字段
 
   2) $within 某个范围内,可以是圆,多边形等
 
   3) $centerSphere[[lng,lat],radius] 
 
   4) radius 是将公里转成英里然后在除以3963.192化成弧度
 
Ref:
 
To convert:
 
distance to radians: divide the distance by the radius of the sphere (e.g. the Earth) in the same units as the distance measurement.
radians to distance: multiply the rad ian measure by the radius of the sphere (e.g. the Earth) in the units system that you want to convert the distance to.
The radius of the Earth is approximately 3963.192 miles or 6378.137 kilometers.
 
官方资料:http://docs.mongodb.org/manual/core/geospatial-indexes/
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,