猫鼬 - 两个坐标之间的最小距离(不是 GEOJson 数据)
Mongoose - Least distance between two co-ordinates (Not GEOJson Data)
操作员将从建筑物列表中选择一个。
然后从前端点击它。
建筑物列表存储在 MongoDB 数据库中,每个建筑物都有一个 x,y 点,显示距原点 0 的距离。
该列表存储在 MongoDB 数据库中并通过节点访问。
每个建筑物都有一个 x,y 坐标 -- 仅作为样本,不是 geojson 数据
赞 101,203 等
Mongoose 函数将:
操作员单击按钮并使用坐标
该函数将搜索建筑物列表,return 最接近提供的建筑物 --- 不是最接近 0 原点的建筑物。
关于如何使用 Mongoose 有什么建议吗?
谢谢!
凯伦
这真的只是一道数学题。
考虑一组具有这些 x,y
坐标的建筑文档:
var r = [
{_id:1, x:7, y:11}
,{_id:2, x:15, y:10}
,{_id:3, x:10, y:9}
,{_id:4, x:1, y:8}
,{_id:5, x:3, y:7}
,{_id:6, x:16, y:5}
,{_id:7, x:4, y:3}
,{_id:8, x:7, y:3}
,{_id:9, x:6, y:1}
,{_id:10, x:21, y:1}
];
一个按钮被点击并产生点6,5
:
var P = {x:6, y:5};
要找到最近的建筑物,只需使用勾股定理迭代和计算距离即可:
db.foo.aggregate([
// Don't have to worry about absolute value of x-x1 thanks to
// pow(2) making it positive
// dist = sqrt((x-x1)^2 + (y-y1)^2)
{$addFields: {dist: {$sqrt: {$add:[{$pow:[{$subtract:['$x',P.x]},2]}, {$pow:[{$subtract:['$y',P.y]},2]}]}} }},
{$sort: {'dist':1}},
{$limit: 1}
]);
{ "_id" : 8, "x" : 7, "y" : 3, "dist" : 2.23606797749979 }
删除 $limit
或将其更改为更大的数字以查看下一个最近的建筑物。
操作员将从建筑物列表中选择一个。
然后从前端点击它。
建筑物列表存储在 MongoDB 数据库中,每个建筑物都有一个 x,y 点,显示距原点 0 的距离。
该列表存储在 MongoDB 数据库中并通过节点访问。
每个建筑物都有一个 x,y 坐标 -- 仅作为样本,不是 geojson 数据
赞 101,203 等
Mongoose 函数将:
操作员单击按钮并使用坐标
该函数将搜索建筑物列表,return 最接近提供的建筑物 --- 不是最接近 0 原点的建筑物。
关于如何使用 Mongoose 有什么建议吗?
谢谢! 凯伦
这真的只是一道数学题。
考虑一组具有这些 x,y
坐标的建筑文档:
var r = [
{_id:1, x:7, y:11}
,{_id:2, x:15, y:10}
,{_id:3, x:10, y:9}
,{_id:4, x:1, y:8}
,{_id:5, x:3, y:7}
,{_id:6, x:16, y:5}
,{_id:7, x:4, y:3}
,{_id:8, x:7, y:3}
,{_id:9, x:6, y:1}
,{_id:10, x:21, y:1}
];
一个按钮被点击并产生点6,5
:
var P = {x:6, y:5};
要找到最近的建筑物,只需使用勾股定理迭代和计算距离即可:
db.foo.aggregate([
// Don't have to worry about absolute value of x-x1 thanks to
// pow(2) making it positive
// dist = sqrt((x-x1)^2 + (y-y1)^2)
{$addFields: {dist: {$sqrt: {$add:[{$pow:[{$subtract:['$x',P.x]},2]}, {$pow:[{$subtract:['$y',P.y]},2]}]}} }},
{$sort: {'dist':1}},
{$limit: 1}
]);
{ "_id" : 8, "x" : 7, "y" : 3, "dist" : 2.23606797749979 }
删除 $limit
或将其更改为更大的数字以查看下一个最近的建筑物。