在 OL3 中是否可以检查一个多边形是否包含在另一个多边形中?
我注意到 ol.extent 中有几个方法,例如ol.extent.containsExtent(extent1,extent2)。但这只检查范围而不是整个多边形。所以在某些情况下我得到“真实”虽然多边形在另一个多边形之外,但仍在范围内...... 我需要的是一个函数或算法来检查一个多边形是否完全包含另一个多边形,就像我通常在任何 GIS 中所做的那样。
最佳答案
OpenLayers 3 不包含检查一个多边形是否在另一个多边形内部的函数。但是你可以使用 JSTS , JTS Topology Suite 的 JavaScript 端口做检查:
var feature1 = new ol.Feature(new ol.geom.Polygon(...));
var feature2 = new ol.Feature(new ol.geom.Polygon(...));
var format = new ol.format.GeoJSON();
var geojsonReader = new jsts.io.GeoJSONReader();
var polygon1Jsts = geojsonReader.read(
format.writeFeatureObject(feature1)).geometry;
var polygon2Jsts = geojsonReader.read(
format.writeFeatureObject(feature2)).geometry;
console.log(polygon1Jsts.contains(polygon2Jsts));
关于algorithm - 如何在 OL3 中检查一个多边形是否包含另一个多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29967711/