检查QGIS中点和多边形之间的交叉点

时间:2017-01-26 18:15:05

标签: qgis

我有两个数据层,一个有点,一个有多边形。两个图层都有ID,我想检查ID为x的点是否位于ID为x的多边形内部或外部。

有人知道怎么做吗?

谢谢, 玛丽

1 个答案:

答案 0 :(得分:0)

在python控制台中为您提供逗号分隔列表的一个可能的解决方案是从python控制台运行一个小脚本:

         <html>
         <title>W3.CSS</title>
         <meta name="viewport" content="width=device-width, initial-scale=1"/>
         <link rel="stylesheet" href="http://www.w3schools.com/lib/w3.css"/>
         <body>

         <div class="w3-container" style="margin-top: -50px;">
           <ul class="w3-navbar w3-black">
             <li><a href="javascript:void(0)" class="tablink w3-blue" onclick="openCity(event, 'London');">London</a></li>
             <li><a href="javascript:void(0)" class="tablink" onclick="openCity(event, 'Paris');">Paris</a></li>
             <li><a href="javascript:void(0)" class="tablink" onclick="openCity(event, 'Tokyo');">Tokyo</a></li>
           </ul>

           <div id="London" class="w3-container w3-border city">
             <h2>London</h2>
             <p>London is the capital city of England.</p>
           </div>

           <div id="Paris" class="w3-container w3-border city" style="display:none">
             <h2>Paris</h2>
             <p>Paris is the capital of France.</p> 
           </div>

           <div id="Tokyo" class="w3-container w3-border city" style="display:none">
             <h2>Tokyo</h2>
             <p>Tokyo is the capital of Japan.</p>
           </div>
         </div>

         <script>
         function openCity(evt, cityName) {
           var i, x, tablinks;
           x = document.getElementsByClassName("city");
           for (i = 0; i < x.length; i++) {
               x[i].style.display = "none";
           }
           tablinks = document.getElementsByClassName("tablink");
           for (i = 0; i < x.length; i++) {
               tablinks[i].className = tablinks[i].className.replace(" w3-red", "");
           }
           document.getElementById(cityName).style.display = "block";
           evt.currentTarget.className += " w3-red";
         }
         </script>
         </body>
         </html>

这应该产生一个特征与另一个特征相交的情况的结果。在我的测试中,层的顺序无关紧要,但是,两个层都必须使用相同的坐标参考系统,因此如果两个层具有不同的参考系统,则可能需要重新投影数据。这适用于多边形和与多边形相交的多边形中的点(我确信它也适用于线条)。

诸如此类的答案:https://gis.stackexchange.com/questions/168266/pyqgis-a-geometry-intersectsb-geometry-wouldnt-find-any-intersections可能有助于进一步完善此类脚本,并且是此答案的主要来源。