CeDo
2021-06-08 124bdb1b05416702d24f541f1e78aad7b5b85897
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LngLatUtils.java
@@ -27,6 +27,13 @@
        return peneralPath.contains(_point);
    }
    /**
     *
     * @param bound 经纬度数组
     * @param pointlng  短
     * @param pointLat  长
     * @return
     */
    public static  boolean isInPolygon(List<LatLngVO> bound, double pointlng, double pointLat)
    {
        Point2D.Double point = new Point2D.Double(pointlng, pointLat);
@@ -36,4 +43,31 @@
        }
        return check(point, pointList);
    }
    /**
     * 从txt数据中获取经纬度
     * @param latlngTxt
     * @return
     */
    public static List<LatLngVO> getLatLngFromText(String latlngTxt){
        List<LatLngVO> rtResult = new ArrayList<>();
        String str = latlngTxt.replace("[[","");
        str=str.replace("]]","");
        String[] loca=str.split("],\\[");
        for (int i=0;i<loca.length;i++)
        {
            String[] loca1=loca[i].split(",");
            rtResult.add(new LatLngVO(Double.valueOf(loca1[1]), Double.valueOf(loca1[0])));
        }
        return rtResult;
    }
    public static void main(String[] args) {
        String latLngTxt = "[[104.065958,30.662621],[104.06419,30.663172],[104.06315,30.660648],[104.065548,30.661036]]";
        List<LatLngVO> latLngList = getLatLngFromText(latLngTxt);
        System.out.println(isInPolygon(latLngList, 104.0612, 30.6608));
    }
}