我有两个数据层,一个有点,一个有多边形。两个图层都有ID,我想检查ID为x的点是否位于ID为x的多边形内部或外部。
有人知道怎么做吗?
谢谢, 玛丽
答案 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可能有助于进一步完善此类脚本,并且是此答案的主要来源。