【问题标题】: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 如果是这种情况,我应该将数组拆分成更小的数组吗?它适用于移动设备,所以更糟糕的是大声笑
  • 是的,您可能必须找到另一种方法,但首先要进行一些性能测试,比较 iteratingmap
  • 您可以编辑它以使用您的实际对象jsperf.com/arraymap 并确保检查您所定位的实际设备。

标签: javascript geolocation coordinates geospatial


【解决方案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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多