使用JavaScript在JSon File中查找项目

时间:2014-03-16 01:27:51

标签: javascript json

我想知道过滤庞大的数据集有多重。

我有庞大的数据集包含" Polygones"和"积分"。我每次都在寻找这个数据集中的一个点。 在点的情况下,我使用相等。 如果是polygone,我会看到point是属于polygone还是no。

var data = {
    "type": "FeatureCollection",
    "features": [{
        "type": "Feature",
        "geometry": {
            "type": "MultiPolygon",
            "coordinates": [[
                [13.37356, 52.52064],
                [13.37350, 52.51971],
                [13.37664, 52.51973],
                [13.37594, 52.52062],
                [13.37356, 52.52064]
            ]]
        },
        "properties": {
            "height": 500
        }
    },{
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [13.37356, 52.52064]
        },
        "properties": {
            "height": 500
        }
    }]
};

我写了这两个函数:

function isPointinJsonFile(point,data) {

  for (var i = data.features.length; i >= 0; i--) {  
      console.log(data.features[i].geometry.type)
     if(data.features[i].geometry.type= "point"){
      console.log(point)
     return (data.features[i].geometry.coordinates == point)
    }
     if(data.features[i].geometry.type= "MultiPolygon"){
    return isPointInPoly(data.features[i].geometry.coordinates[0][0],point)
    }
}};


function isPointInPoly(poly, pt){
            for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i)
                ((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) || (poly[j][1] <= pt[1] && pt[1] < poly[i][1]))
                && (pt[0]< (poly[j][0] - poly[i][0]) * (pt.y - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0])
                && (c = !c);
            { console.log(poly)
              return c;  }
    }

启发:http://jsfromhell.com/math/is-point-in-poly

但我最终没有任何意义。 - JavaScrip中是否存在任何与错误率相等的函数。 比如在点ex之后只取第一个数字:而不是比较13,37457234,我们比较13,3 - 我正在做什么?

0 个答案:

没有答案