繁体   English   中英

检查多点图层是否包含在Openlayers的多边形中

[英]Check if layer of multipoint is contained in a Polygon in Openlayers

如问题所述,我想检查点是否包含在多边形中。 校验

到目前为止,我尝试了containsPoint但它返回的是undefined。

var p = new OpenLayers.Geometry.Point(13977549.20, 1019860.15);
for (var i = 0; i < layer_floodhazard.features.length; i++) {
    var feature = layer_floodhazard.features[i];
    var inside = feature.geometry.containsPoint(p);
    if (inside) {
        alert('Contains');
    };
}

layer_floodhazard是在地图上添加的矢量层。 另一方面,我还有另一个矢量层,其中包含要尝试检查的点在多边形内还是在多边形内。

containsPoint函数绝不能返回未定义的值:

{布尔| 点}在多边形内部。 如果点在边上,则返回1。 否则返回布尔值。

因此您可能没有调用您认为自己的containsPoint函数。

我会在调用containsPoint的行上放置一个断点,并检查“功能”对象,以确保您在正确的属性上调用该函数。 我希望它的.geometry属性不是OpenLayers.Geometry.Polygon对象。

如果不知道layer_floodhazard.features数组是如何填充的,就无法知道一些有效的代码。 如果您可以将代码放入插件或类似服务中,我们将很乐意帮助您进行调试。

此外,仅检查“真实性”可能不会为您提供所需的结果,因为根据您的测试,边缘的对象也将被视为“内部”。 我将测试(结果=== true),以确保您正在检查点是否位于多边形内时返回的布尔true结果。 当然,这与您当前的问题无关:)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM