使用 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] }
}