package com.panzhihua.common.utlis;
|
|
import com.panzhihua.common.model.vos.grid.LatLngVO;
|
|
import java.awt.geom.Point2D;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class LngLatUtils {
|
|
public static boolean check(Point2D.Double _point, List<Point2D.Double> polygon)
|
{
|
java.awt.geom.GeneralPath peneralPath = new java.awt.geom.GeneralPath();
|
|
Point2D.Double first = polygon.get(0);
|
peneralPath.moveTo(first.x, first.y);
|
polygon.remove(0);
|
|
for(Point2D.Double d : polygon)
|
{
|
peneralPath.lineTo(d.x, d.y);
|
}
|
|
peneralPath.lineTo(first.x, first.y);
|
peneralPath.closePath();
|
|
return peneralPath.contains(_point);
|
}
|
|
public static boolean isInPolygon(List<LatLngVO> bound, double pointlng, double pointLat)
|
{
|
Point2D.Double point = new Point2D.Double(pointlng, pointLat);
|
List<Point2D.Double> pointList = new ArrayList<>();
|
for (int i = 0; i < bound.size(); i++) {
|
pointList.add(new Point2D.Double(bound.get(i).getLng(), bound.get(i).getLat()));
|
}
|
return check(point, pointList);
|
}
|
}
|