检查坐标是否在屏幕矩形内

时间:2014-06-03 11:48:43

标签: javascript geolocation coordinates geospatial

我有一个包含大约五十万个对象的数组,每个对象看起来像这样:

{
    "a": "50.400343" // latitude coordinate
    "b": "-1.434934" // longitude coordinate
    "c": "fr234NFDD"  // reference to talk to API
}

我需要创建一个循环遍历每个对象的函数,并检查它们是否在屏幕的坐标内。一个直观的例子:

enter image description here

我需要在地图上显示< 1秒,所以它需要高效(记住这个功能将执行约500,000次操作)。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

编辑:我删除了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);
}