From ea6b0efbfd58ab4a2f0a7c9f504688e7f4e12102 Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期一, 30 八月 2021 16:29:06 +0800 Subject: [PATCH] Merge branch 'test' into zzj --- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/GisPointUtil.java | 48 +++++++++++++++++++++++++----------------------- 1 files changed, 25 insertions(+), 23 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/GisPointUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/GisPointUtil.java index b357984..bc737fe 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/GisPointUtil.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/GisPointUtil.java @@ -1,11 +1,10 @@ package com.panzhihua.common.utlis; -import java.awt.Point; +import java.awt.*; import java.awt.geom.Point2D; import java.util.ArrayList; import java.util.List; -import com.alibaba.fastjson.JSONArray; import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenDrawLngLatDTO; /** @@ -28,14 +27,13 @@ * @param lng2 * @return */ - public static double getDistance(double lat1, double lng1, double lat2, - double lng2) { + public static double getDistance(double lat1, double lng1, double lat2, double lng2) { double radLat1 = rad(lat1); double radLat2 = rad(lat2); double a = radLat1 - radLat2; double b = rad(lng1) - rad(lng2); - double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + - Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2))); + double s = 2 * Math.asin(Math + .sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2))); s = s * EARTH_RADIUS; s = Math.round(s * 10000d) / 10000d; return s; @@ -43,11 +41,17 @@ /** * 判断一个点是否在圆形区域内 - * @param radius 半径 - * @param lat1 圆心纬度 - * @param lng1 圆心经度 - * @param lat2 坐标纬度 - * @param lng2 坐标经度 + * + * @param radius + * 半径 + * @param lat1 + * 圆心纬度 + * @param lng1 + * 圆心经度 + * @param lat2 + * 坐标纬度 + * @param lng2 + * 坐标经度 */ public static boolean isInCircle(double lng1, double lat1, double lng2, double lat2, String radius) { return getDistance(lat1, lng1, lat2, lng2) < Double.parseDouble(radius); @@ -59,11 +63,7 @@ * @param pointLon * 要判断的点的纵坐标 * @param pointLat - * 要判断的点的横坐标 -// * @param lon - * 区域各顶点的纵坐标数组 -// * @param lat - * 区域各顶点的横坐标数组 + * 要判断的点的横坐标 // * @param lon 区域各顶点的纵坐标数组 // * @param lat 区域各顶点的横坐标数组 * @return */ public static boolean isInPolygon(double pointLon, double pointLat, List<ScreenDrawLngLatDTO> lngLatList) { @@ -110,12 +110,14 @@ } public static void main(String[] args) { -// String points = "[{\"sets\":[{\"name\":\"sswg\",\"value\":\"402881f6681232c00168129b896e0078\"}],\"where\":[{\"name\":\"id\",\"value\":3231735,\"type\":\"=\"}]},{\"sets\":[{\"name\":\"sswg\",\"value\":\"000000006817dd6f0168313b9b89049a\"}],\"where\":[{\"name\":\"id\",\"value\":3231735,\"type\":\"=\"}]}]"; -// JSONArray pointArray = (JSONArray)JSONArray.parse(points); -// System.out.println(isInPolygon(120.636514,31.341752, pointArray)); -// String points = "[{\"x\":120.61123416,\"y\":31.32889074,\"z\":137.05},{\"x\":120.61312695,\"y\":31.31892631,\"z\":128.61},{\"x\":120.61455616,\"y\":31.30808702,\"z\":43.66},{\"x\":120.62127327,\"y\":31.30899876,\"z\":62.21},{\"x\":120.63003506,\"y\":31.31057071,\"z\":29.43},{\"x\":120.63726235,\"y\":31.31203339,\"z\":92.90},{\"x\":120.64536616,\"y\":31.31334188,\"z\":78.36},{\"x\":120.64402082,\"y\":31.31947999,\"z\":13.19},{\"x\":120.64136126,\"y\":31.32757908,\"z\":87.36},{\"x\":120.63689776,\"y\":31.33287239,\"z\":60.62},{\"x\":120.63502091,\"y\":31.33742080,\"z\":114.21},{\"x\":120.63071787,\"y\":31.33793104,\"z\":32.99},{\"x\":120.62952446,\"y\":31.34483170,\"z\":164.79},{\"x\":120.62710968,\"y\":31.34801804,\"z\":164.15},{\"x\":120.62731359,\"y\":31.34823458,\"z\":189.53},{\"x\":120.62700980,\"y\":31.34894193,\"z\":194.24},{\"x\":120.62700980,\"y\":31.34894193,\"z\":194.24},{\"x\":120.62700980,\"y\":31.34894193,\"z\":194.24},{\"x\":120.62665860,\"y\":31.34861797,\"z\":155.41},{\"x\":120.61706620,\"y\":31.34846463,\"z\":200.05},{\"x\":120.61854348,\"y\":31.34267516,\"z\":138.68},{\"x\":120.62111689,\"y\":31.33313042,\"z\":154.61}]"; -// JSONArray pointArray = (JSONArray)JSONArray.parse(points); -// System.out.println(isInPolygon(120.66615036,31.33525453, pointArray));//不在范围内 -// System.out.println(isInPolygon(120.62171413,31.32044689, pointArray));//在范围内 + // String points = + // "[{\"sets\":[{\"name\":\"sswg\",\"value\":\"402881f6681232c00168129b896e0078\"}],\"where\":[{\"name\":\"id\",\"value\":3231735,\"type\":\"=\"}]},{\"sets\":[{\"name\":\"sswg\",\"value\":\"000000006817dd6f0168313b9b89049a\"}],\"where\":[{\"name\":\"id\",\"value\":3231735,\"type\":\"=\"}]}]"; + // JSONArray pointArray = (JSONArray)JSONArray.parse(points); + // System.out.println(isInPolygon(120.636514,31.341752, pointArray)); + // String points = + // "[{\"x\":120.61123416,\"y\":31.32889074,\"z\":137.05},{\"x\":120.61312695,\"y\":31.31892631,\"z\":128.61},{\"x\":120.61455616,\"y\":31.30808702,\"z\":43.66},{\"x\":120.62127327,\"y\":31.30899876,\"z\":62.21},{\"x\":120.63003506,\"y\":31.31057071,\"z\":29.43},{\"x\":120.63726235,\"y\":31.31203339,\"z\":92.90},{\"x\":120.64536616,\"y\":31.31334188,\"z\":78.36},{\"x\":120.64402082,\"y\":31.31947999,\"z\":13.19},{\"x\":120.64136126,\"y\":31.32757908,\"z\":87.36},{\"x\":120.63689776,\"y\":31.33287239,\"z\":60.62},{\"x\":120.63502091,\"y\":31.33742080,\"z\":114.21},{\"x\":120.63071787,\"y\":31.33793104,\"z\":32.99},{\"x\":120.62952446,\"y\":31.34483170,\"z\":164.79},{\"x\":120.62710968,\"y\":31.34801804,\"z\":164.15},{\"x\":120.62731359,\"y\":31.34823458,\"z\":189.53},{\"x\":120.62700980,\"y\":31.34894193,\"z\":194.24},{\"x\":120.62700980,\"y\":31.34894193,\"z\":194.24},{\"x\":120.62700980,\"y\":31.34894193,\"z\":194.24},{\"x\":120.62665860,\"y\":31.34861797,\"z\":155.41},{\"x\":120.61706620,\"y\":31.34846463,\"z\":200.05},{\"x\":120.61854348,\"y\":31.34267516,\"z\":138.68},{\"x\":120.62111689,\"y\":31.33313042,\"z\":154.61}]"; + // JSONArray pointArray = (JSONArray)JSONArray.parse(points); + // System.out.println(isInPolygon(120.66615036,31.33525453, pointArray));//不在范围内 + // System.out.println(isInPolygon(120.62171413,31.32044689, pointArray));//在范围内 } } -- Gitblit v1.7.1