使用 GoogleMap 和 MongoDB 的不同测量结果
Different measure results using GoogleMap and MongoDB
使用相同距离的 GoogleMap 和 MongoDB
的不同测量结果
其实这个问题很难回答。因为需要MongoDB和GoogleMap的方法来解决这个问题。还有一些计算。根据我的其他测试,它们之间的距离差异可以在地球上的不同位置发生变化。就我而言,这种情况并不重要。但这是一个问题...
我有两个点坐标,它们是 [41.034892, 28.980788]
和 [41.036770, 28.985557]
。使用 GoogleMaps 测得两点的距离为 452 米。但是使用 MongoDB $near
和 $maxDistance
运算符我可以在 562 米处从一个点到达另一个点。
相差110米。有谁知道原因吗?
示例文档如下;
{
"_id": ObjectId("54ddd5a06c0213711ca59257"),
"loc": { "type":"Point", "coordinates":[41.034892, 28.980788] }
}
使用的查询词如下;
{
'loc': {
$near: {
$geometry: { "type":"Point", "coordinates":[41.036770, 28.985557] } ,
$maxDistance: 562
}
}
}
您可能切换了经度和纬度坐标:在 Google 地图上计算距离时,或者您在 MongoDB.
中切换了 Point 对象中的坐标顺序
Point geometry object 的 GeoJSON 标准声明数组中的第一项是经度,第二项是纬度。
如果您尝试使用 Google 地图计算 Lat 28.980788、Long 41.034892 和 Lat 28.985557、Long 41.036770 之间的距离,您将得到与 MongoDB.
相同的结果
快速查看 this page 得到了 0.5609 公里(560.9 米)的距离。
编辑
根据您的评论,我怀疑您创建的点可能使用了错误的坐标数组。这应该是您的示例文档:
{
"_id": ObjectId("54ddd5a06c0213711ca59257"),
"loc": { "type":"Point", "coordinates":[28.980788, 41.034892] }
}
使用相同距离的 GoogleMap 和 MongoDB
的不同测量结果
其实这个问题很难回答。因为需要MongoDB和GoogleMap的方法来解决这个问题。还有一些计算。根据我的其他测试,它们之间的距离差异可以在地球上的不同位置发生变化。就我而言,这种情况并不重要。但这是一个问题...
我有两个点坐标,它们是 [41.034892, 28.980788]
和 [41.036770, 28.985557]
。使用 GoogleMaps 测得两点的距离为 452 米。但是使用 MongoDB $near
和 $maxDistance
运算符我可以在 562 米处从一个点到达另一个点。
相差110米。有谁知道原因吗?
示例文档如下;
{
"_id": ObjectId("54ddd5a06c0213711ca59257"),
"loc": { "type":"Point", "coordinates":[41.034892, 28.980788] }
}
使用的查询词如下;
{
'loc': {
$near: {
$geometry: { "type":"Point", "coordinates":[41.036770, 28.985557] } ,
$maxDistance: 562
}
}
}
您可能切换了经度和纬度坐标:在 Google 地图上计算距离时,或者您在 MongoDB.
中切换了 Point 对象中的坐标顺序Point geometry object 的 GeoJSON 标准声明数组中的第一项是经度,第二项是纬度。
如果您尝试使用 Google 地图计算 Lat 28.980788、Long 41.034892 和 Lat 28.985557、Long 41.036770 之间的距离,您将得到与 MongoDB.
相同的结果快速查看 this page 得到了 0.5609 公里(560.9 米)的距离。
编辑
根据您的评论,我怀疑您创建的点可能使用了错误的坐标数组。这应该是您的示例文档:
{
"_id": ObjectId("54ddd5a06c0213711ca59257"),
"loc": { "type":"Point", "coordinates":[28.980788, 41.034892] }
}