gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 16:24:36 25 4
gpt4 key购买 nike

正如问题所说,我想检查这些点是否包含在多边形中。 check

到目前为止,我尝试了 containsPoint 但它返回未定义。

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 是添加在 map 上的矢量图层。另一方面,我有另一个矢量图层,其中包含我试图检查这些点是否在多边形内的点。

最佳答案

containsPoint 函数永远不应该返回未定义:

{Boolean | Number} The point is inside the polygon. Returns 1 if the point is on an edge. Returns boolean otherwise.

所以您可能没有调用您认为的 containsPoint 函数。

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

如果不知道 layer_floodhazard.features 数组是如何填充的,那么在不查看一些工作代码的情况下就无法知道。如果您可以将代码放入 plunker 或类似服务中,我很乐意帮助您调试。

此外,仅检查“真实性”可能无法给您带来所需的结果,因为根据您的测试,边缘上的对象也将被视为“内部”。我将测试 (result === true) 以确保您检查返回的 bool true 结果(如果该点位于多边形内部)。当然,这与您当前的问题无关:)。

关于javascript - 检查多点图层是否包含在 Openlayers 中的多边形中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28795843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com