我正在使用Openlayers 2,这只是用于测试图层(POINTS)的模拟代码,位于另一层(POLYGON)内。
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];
if (feature.containsPoint(p)) {
alert('Contains')
};
}
当我查看控制台时说:Uncaught TypeError: undefined is not a function
它指向containsPoint
功能所在的行。
答案 0 :(得分:0)
这里发生的事情是feature
没有直接使用containsPoint方法。
假设您的layer_floodhazard.features
为polygons,您应该在该要素下看到geometry
属性,如果几何图形是多边形,那么您应该能够看到.containsPoint
在.geometry
财产下。
也许你应该尝试
if (feature.geometry.containsPoint(p)) {
alert('Contains')
};