From b9b493e3da134f8e4eb36e5b831063fd27fef417 Mon Sep 17 00:00:00 2001
From: 罗元桥 <2376770955@qq.com>
Date: 星期二, 31 八月 2021 15:29:28 +0800
Subject: [PATCH] Merge branch 'test' into 'master'
---
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LngLatUtils.java | 51 +++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 43 insertions(+), 8 deletions(-)
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LngLatUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LngLatUtils.java
index b83603c..56eec9c 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LngLatUtils.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LngLatUtils.java
@@ -1,23 +1,21 @@
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;
+import com.panzhihua.common.model.vos.grid.LatLngVO;
+
public class LngLatUtils {
- public static boolean check(Point2D.Double _point, List<Point2D.Double> polygon)
- {
+ 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)
- {
+ for (Point2D.Double d : polygon) {
peneralPath.lineTo(d.x, d.y);
}
@@ -27,8 +25,17 @@
return peneralPath.contains(_point);
}
- public static boolean isInPolygon(List<LatLngVO> bound, double pointlng, double pointLat)
- {
+ /**
+ *
+ * @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);
List<Point2D.Double> pointList = new ArrayList<>();
for (int i = 0; i < bound.size(); i++) {
@@ -36,4 +43,32 @@
}
return check(point, pointList);
}
+
+ /**
+ * 从txt数据中获取经纬度
+ *
+ * @param lngLatTxt
+ * @return
+ */
+ public static List<LatLngVO> getLatLngFromText(String lngLatTxt) {
+ List<LatLngVO> rtResult = new ArrayList<>();
+ String str = lngLatTxt.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[0]), Double.valueOf(loca1[1])));
+ }
+ return rtResult;
+ }
+
+ public static void main(String[] args) {
+ String latLngTxt =
+ "[[104.066974,30.660293],[104.053394,30.658114],[104.059921,30.657076],[104.065231,30.657086]]";
+ List<LatLngVO> latLngList = getLatLngFromText(latLngTxt);
+
+ System.out.println(isInPolygon(latLngList, 104.063398, 30.657929));
+ }
+
}
--
Gitblit v1.7.1