我想知道过滤庞大的数据集有多重。
我有庞大的数据集包含" 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 - 我正在做什么?