Search code examples
javascriptopenlayers-3

Check if a point is inside polygon in OpenLayers 3


When I draw a polygon in an OpenLayers map, I want to know if the marker is inside the polygon or not. I searched in the OpenLayers API, but didn't find a solution.

screenshot for visual clarification

And you can see my full code in this link.

I have the impression that I have to modify this function:

  function addInteraction() {
    var value = typeSelect.value;
    if (value !== 'None') {
    draw = new ol.interaction.Draw({
      source: vectorSource,
      type: /** @type {ol.geom.GeometryType} */ (typeSelect.value)
    });
    map.addInteraction(draw);
    draw.on('drawend',function(e){
      //Here
    });
  }
}

How can I do this?


Solution

  • You have a method 'intersectsCoordinate' for the ol.geom.Geometry.

    So the code for that will look like:

    var polygonGeometry = e.feature.getGeometry();
    var coords = iconFeature.getGeometry().getCoordinates();
    polygonGeometry.intersectsCoordinate(coords)