是否有可能检查多边形是否包含在OL3中的另一个多边形中?
我注意到ol.extent中有几种方法,例如ol.extent.containsExtent(extent1,extent2)。但是这只检查范围而不是整个多边形。所以在某些情况下我得到“真实”,虽然多边形在另一个多边形之外,但仍然在... 我需要的是一个函数或算法,它检查多边形是否完全包含另一个多边形,就像我在任何GIS中一样。
答案 0 :(得分:1)
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));
答案 1 :(得分:0)
我没有OL3的经验,但是:
如果你有两个多边形A& B,A的所有顶点都位于B的区域内,然后B包含A.在A的每个坐标上运行ol.extent.containsCoordinate
应该可以做到。
旁注:如果B是凹的(不确定这是在这里使用的单词的正确形式),这可能不起作用......