[英]Check if polygon is inside a polygon
昨天我想检查一个点是否在多边形内并找到了这个很棒的脚本: https : //github.com/tparkin/Google-Maps-Point-in-Polygon
但今天在工作中我被告知我们的客户需要检查一个多边形是否在另一个多边形内。 我想知道是否有一个公式,我可以采取,比方说,两个坐标(而不是一个检查一个点),并从这两个坐标生成一个矩形,并检查该矩形是否在多边形内。
我不知道我是不是在问一个愚蠢的问题(高中的一位老师常说“没有愚蠢的问题,只有傻瓜不问”),但如果你完全不了解我,只是一点点,如果你告诉我从哪里开始,我将不胜感激。
也许这段代码可以帮助你:
package com.polygons;
import java.awt.Point;
import java.awt.Polygon;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
/**
* Utility to Manipulate Polygons
*
* @author fernando.hernandez
*
*/
public class PolygonUtils {
/**
* Check if polygon2 is inside polygon to polygon1
* @param polygon1 polygon that contains other
* @param polygon2 polygon that is inner to other
* @return true if polygon2 is inner to polygon1
*/
public boolean isInsidePolygon(Polygon polygon1, Polygon polygon2){
//all points in inner Polygon should be contained in polygon
int[] xpoints = polygon2.xpoints;
int[] ypoints = polygon2.ypoints;
boolean result = true;
for (int i = 0, j = 0; i < polygon2.npoints ; i++,j++) {
result = polygon1.contains(new Point(xpoints[i], ypoints[j]));
if(!result) break;
}
return result;
}
}
首先使用脚本检查多边形中的一个角点是否在另一个多边形内。 然后检查多边形中的任何线是否与另一个多边形中的任何线相交。 如果不这样做,则多边形位于另一个多边形内。
我必须找到类似的解决方案。 这是我到目前为止:
array[pol1cords[cord1,cord2...],pol2cords[cord1,cord2...],..]
中的所有1级多边形坐标array[pol1cords[cord1,cord2...],pol2cords[cord1,cord2...],..]
google.maps.geometry.poly.containsLocation(latLng, pol)
true
计数器会上升 我的算法看起来像这样:
“”区域(级别3) - >区域(级别2) - > VDC(级别1)“”vdcs = getVDCs(); - >给出一个数组中的vdcs,其中包含name,id和polygon坐标zones = getZones(); - >给出一个数组中带有name,id和polygon坐标的区域
foreach(zones as zone){
drawPolygon(zone[coordinates]);
foreach(vdcs as vdc){
foreach(vdc[coordinates] as coordinate){
result = checkLocation(zone, coordinate);
if(result) counter++;
}
if(counter = vdc[coordinates].length){writeConsole(vdc_id+"true in"+zone_id)}
}
}
多边形凸出来了吗? 因为,如果是,您可以为“矩形”的两个“角”运行“多边形点”脚本。 如果两个角都在,并且多边形没有向内的“曲线”,那么整个矩形是不是都在?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.