2017-01-03 6 views
5

जब मैं ओपनलेयर मानचित्र में बहुभुज खींचता हूं, तो मैं जानना चाहता हूं कि मार्कर बहुभुज के अंदर है या नहीं। मैंने ओपनलेयर एपीआई में खोज की, लेकिन मुझे कोई समाधान नहीं मिला।जांचें कि ओपनलेयर 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

आप JSTS पुस्तकालय है, जो सरल ज्यामिति प्रसंस्करण ऐसे intersects, difference, आदि के रूप यह एक OL3 पार्सर कि OL3 से JSTS और उपाध्यक्ष प्रतिकूल करने के लिए ज्यामिति के रूपांतरण की अनुमति देता है शामिल है को लागू करता है का उपयोग कर सकते हैं।

example in OL3 देखें। असल में, आप एक ऐसी प्रक्रिया का उपयोग करेंगे जो जांचता है कि क्या आपके मार्कर की ज्यामिति आपके बहुभुज के भीतर है या नहीं और वहां से आप जो चाहते हैं वह करें।

संबंधित मुद्दे