假设我有两层,即:layer1和layer.2。
是否可以将所有要素图层放在其他图层中? 在该示例中,返回红色框内的所有灰色。
答案 0 :(得分:0)
为LineStrings定义了intersects function,因此任何几何体都可以调用此函数来确定与另一个几何体的交集 - 在多边形的情况下,它将简单地为它们各自的线串的每个组合调用。对于点/多边形交集,这只是包含。
因此,要找到两个不同矢量图层之间的任何交点,(并假设你的layer1和layer2引用矢量图层而不是它们中的特征),你可以这样做,
var features1 = layer1.features;
var features2 = layer2.features;
for (var i=0; i < features1.length-1; i++){
var feature1 = features1[i];
for (var j=0; j < features2.length-1; j++){
var feature2 = features2[j];
if (feature1.geometry.intersects(feature2.geometry)){
console.log("vector features 1 " + i + " intersects vector features 2 " + j;
}
}
}
显然,您也可以将测试编写为,
for (var i=0; i < features1.length-1; i++){
for (var j=0; j < features2.length-1; j++){
if(feature1.feature[i].geometry.intersects(feature2.feature[j].geometry)){
//do something
}
}
}