有没有人使用 mongengine 进行地理空间搜索?我似乎无法让它工作!必须进入 GeoPointField 的数据格式是什么?
我应该如何格式化它?我在文档中找不到有关格式的任何信息!
有没有人使用 mongengine 进行地理空间搜索?我似乎无法让它工作!必须进入 GeoPointField 的数据格式是什么?
我应该如何格式化它?我在文档中找不到有关格式的任何信息!
你能发布你想要做的事情吗?
点数据必须存储在带有键的字段中
"loc":{"lon":51.10682735591432, "lat":-114.11773681640625}
或者
loc: [22.23432, 21.23212]
使用 mongoengine 支持地理点字段
Class Location:
point = GeoPointField()
new_location = Location(point=[21.1232,23.23432])
new_location.save()
像上面这样的东西应该可以工作。
类 GeoPointField(db_field=None,name=None,required=False,default=None,unique=False,unique_with=None,primary_key=False,validation=None,choices=None,verbose_name=None,help_text=None):
存储纬度和经度的列表。
0.4 版中的新功能。
http://mongoengine-odm.readthedocs.org/en/latest/apireference.html#mongoengine.GeoPointField
我在mongoengine 文档中找到了答案:
有一些用于执行地理查询的特殊运算符,可以与 GeoPointFields 一起使用:
within_distance
– 提供一个包含一个点和一个最大距离的列表(例如 [(41.342, -87.653), 5])
within_spherical_distance
– 与上述相同,但使用球形地理模型(例如 [(41.342, -87.653), 5/earth_radius])
near
– 根据文档与给定点的接近程度来对文档进行排序 near_sphere – 与上述相同,但使用球形地理模型
within_box
– 过滤给定边界框内的文档(例如 [(35.0, -125.0), (40.0, -100.0)])
within_polygon
– 过滤给定多边形内的文档(例如 [(41.91,-87.69), (41.92,-87.68), (41.91,-87.65), (41.89,-87.65)])。.. 注意:: 需要 Mongo Server 2.0