2014-09-19 43 views
0

比方说,我有两层分别是:层1和层2是否可以识别其他图层内的所有要素图层?

Layers

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

+0

您会一直对矩形内的多边形感兴趣吗?或者它可能是多边形内的多边形。 – 2014-09-19 16:21:51

+0

其他多边形内的多边形...两个多边形不在同一图层上。 – 2014-09-22 06:07:04

+0

好的,在这种情况下,我发布了来自两个不同矢量图层的多边形/多边形相交的答案。 – 2014-09-22 07:38:49

回答

0

有一个为LineStrings定义的intersects function,所以任何几何图形都可以调用该函数来确定与另一个几何图形的相交 - 在多边形的情况下,它将简单地针对它们各自的线串的每个组合进行调用。对于一个点/多边形交集,这只是变成了包含。

因此,要找到两个不同的载体层之间的任何交叉点(并假设你layer1的和二层指的是矢量图层,而不是功能的),你可以做,

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 
     } 
    } 
} 
+0

使用OpenLayers API v3.1有可能吗?如果可能,请你帮助我,因为我面临着与API v3.1相同的问题? – imdadhusen 2015-01-09 11:36:18

相关问题