【发布时间】:2015-08-07 09:10:02
【问题描述】:
我正在尝试使用 Python3 为给定的纬度和经度创建一个具有一定距离(或半径)的边界框(或圆)。
我已经完成了这个问题的先前解决方案,但我对它的工作原理有些怀疑。有一些变量,如 halfsideinKm 和一些 degree to radian 和 radian to degree 转换,我无法理解这些转换是什么以及它是如何工作的。
Given lat and long finding binding box
Geocoding calculate bounding box
我有一个数据库集合 Locations(在 MongoDB 中),其中包含经纬度。
我的要求是,如果我输入纬度和经度,我想拥有位于边界框区域内(距离为 20 公里)的地点列表(来自我的 mongodb)。
谁能为我提供这个问题的解决方案或解释这些代码是如何工作的?
这可以使用geopy 实现吗?(因为它说明了大圆距离计算)
数据库值
{
"place_id":"151142295",
"osm_type":"relation",
"osm_id":"65606",
"lat":"51.5073219",
"lon":"-0.1276474",
"display_name":"London, Greater London, England, United Kingdom",
"class":"place",
"type":"city",
"importance":0.9754895765402
},
{
"place_id":"4566287",
"osm_type":"node",
"osm_id":"485248691",
"lat":"42.988097",
"lon":"-81.2460295",
"display_name":"London, Ontario, Canada",
"class":"place",
"type":"city",
"importance":0.6515723047601
}
(只是数据如何存储在我的数据库中的示例)
【问题讨论】:
-
在询问和使用 MongoDB 存储此类数据时,您确实应该阅读文档。要找到给定另一个点“附近”的东西,只需使用
$nearSphere获取地理位置。了解地理空间索引。和/或向我们展示您是如何存储数据的。 -
@BlakesSeven 我添加了一个数据如何存储在我的数据库中的示例,并且正在浏览地理空间索引和文档
标签: python mongodb geolocation mongodb-query