Openlayersでのループ選択、ポリゴン選択点要素の実装
6139 ワード
/**
*
*/
function drawInteraction(Googlemap,features,layers) {
var source = new SourceVector({
features: features,
})
var draw = new olInteraction.Draw({
source: source,
type:"Polygon", // Circle
});
Googlemap.addInteraction(draw);
draw.on('drawend',async (evt) => {
var polygon = await evt.feature.getGeometry();
var center = polygon.getCenter(),radius = polygon.getRadius(),extent = polygon.getExtent();
var features = layers.getSource().getFeaturesInExtent(extent); // feature
for(var i=0;i<features.length;i++){
var newCoords = features[i].getGeometry().getCoordinates();
if(pointInsideCircle(newCoords,center,radius)){
console.log(features[i]); //
}
}
})
}
このうち3つのパラメータは要素集合,地図インスタンス,レイヤーpointInsideCircleであり,1つの点が円形にあるか否かを判断するアルゴリズムである.