检查坐标是不是在屏幕矩形内
Posted
技术标签:
【中文标题】检查坐标是不是在屏幕矩形内【英文标题】:Check if coordinate is inside screen rectangle检查坐标是否在屏幕矩形内 【发布时间】:2014-06-03 11:48:43 【问题描述】:我有一个包含大约 50 万个对象的数组,每个对象看起来像这样:
"a": "50.400343" // latitude coordinate
"b": "-1.434934" // longitude coordinate
"c": "fr234NFDD" // reference to talk to API
我需要创建一个函数来循环遍历这些对象中的每一个并检查它们是否在屏幕坐标内。一个直观的例子:
我需要在
有什么想法吗?
【问题讨论】:
如果您正在为浏览器编写代码,我认为不可能在内存中有 50 万个项目然后循环遍历它们并在 @sabithpocker 如果是这种情况,我应该将数组拆分成更小的数组吗?它适用于移动设备,所以更糟糕的是大声笑 是的,您可能必须找到另一种方法,但首先要进行一些性能测试,比较iterating
与 map
您可以编辑它以使用您的实际对象jsperf.com/arraymap 并确保检查您所定位的实际设备。
【参考方案1】:
编辑:我删除了 console.logs(耗时),它转得很快。我添加了一个快速计时器。
DEMO
function find(rect, list)
var count = 0;
for (var i = 0; i < half_a_million.length; i++)
if (half_a_million[i].a >= rect.x1 && half_a_million[i].a <= rect.x2 && half_a_million[i].b >= rect.y1 && half_a_million[i].b <= rect.y2)
console.log(half_a_million[i].c + ' is a solution.');
count += 1;
console.log('All solutions found: ' + count);
【讨论】:
以上是关于检查坐标是不是在屏幕矩形内的主要内容,如果未能解决你的问题,请参考以下文章
java知道四个点坐标,怎么判断一个点是否在这个矩形区域内(矩形可能是斜着放的,有一定的斜度)
java知道四个点坐标,怎么判断一个点是否在这个矩形区域内(矩形可能是斜着放的,有一定的斜度)