是否可以识别其他层内的所有要素图层?

时间:2014-09-19 01:01:15

标签: openlayers

假设我有两层,即:layer1和layer.2。

Layers

是否可以将所有要素图层放在其他图层中? 在该示例中,返回红色框内的所有灰色。

1 个答案:

答案 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
       }
   }
}