[英]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.