2017-01-03 31 views
5

OpenLayersマップにポリゴンを描画するとき、マーカーがポリゴンの内側にあるかどうかを知りたい。私はOpenLayers APIを検索しましたが、解決策は見つかりませんでした。ポイントがOpenLayersのポリゴンの内側にあるかどうかを調べる3

screenshot for visual clarification

そして、あなたはこのlinkに私の完全なコードを見ることができます。

私はこの機能を変更する必要が印象があります。

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 
    }); 
    } 
} 

私はこれをどのように行うことができますか?

答えて

7

ol.geom.Polygonには、メソッド「intersectsCoordinate」があります。

だから、そのためのコードは次のようになります。

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

それが仕事だありがとう –

1

は、それがOL3からJSTS及びその逆へのジオメトリの変換を可能にするOL3パーサーが含ま等intersectsdifference、などの単純なジオメトリ処理を実現JSTSライブラリを使用することができます。

example in OL3を参照してください。基本的には、マーカのジオメトリがポリゴン内にあるかどうかをチェックし、そこから必要なものを実行するプロセスを使用します。

関連する問題