Browse Source

添加经纬度和依赖管理

yq 3 years ago
parent
commit
c868075e72

+ 102 - 0
mhfire-service/src/main/java/com/bizmatics/mhfire/service/util/GcjToWgs.java

@@ -0,0 +1,102 @@
+package com.bizmatics.mhfire.service.util;
+
+import com.bizmatics.mhfire.service.vo.LocateInfo;
+
+/**
+ * GCJ02与WGS84标准转换
+ * @author yq
+ * @date 2021/7/26 15:04
+ */
+public class GcjToWgs {
+    public static double pi = 3.1415926535897932384626;
+    public static double a = 6378245.0;
+    public static double ee = 0.00669342162296594323;
+
+    public static LocateInfo wgsToGcj(double lat, double lon) {
+        LocateInfo info = new LocateInfo();
+        if (outOfChina(lat, lon)) {
+            info.setChina(false);
+            info.setLatitude(lat);
+            info.setLongitude(lon);
+        }else {
+            double dLat = transformLat(lon - 105.0, lat - 35.0);
+            double dLon = transformLon(lon - 105.0, lat - 35.0);
+            double radLat = lat / 180.0 * pi;
+            double magic = Math.sin(radLat);
+            magic = 1 - ee * magic * magic;
+            double sqrtMagic = Math.sqrt(magic);
+            dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
+            dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);
+            double mgLat = lat + dLat;
+            double mgLon = lon + dLon;
+            info.setChina(true);
+            info.setLatitude(mgLat);
+            info.setLongitude(mgLon);
+        }
+        return info;
+    }
+
+    public static LocateInfo gcjToWgs(double lat, double lon) {
+        LocateInfo info = new LocateInfo();
+        LocateInfo gps = transform(lat, lon);
+        double lontitude = lon * 2 - gps.getLongitude();
+        double latitude = lat * 2 - gps.getLatitude();
+        info.setChina(gps.isChina());
+        info.setLatitude(latitude);
+        info.setLongitude(lontitude);
+        return info;
+    }
+
+    private static boolean outOfChina(double lat, double lon) {
+        if (lon < 72.004 || lon > 137.8347){
+            return true;
+        }
+        if (lat < 0.8293 || lat > 55.8271){
+            return true;
+        }
+        return false;
+    }
+
+    private static double transformLat(double x, double y) {
+        double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y
+                + 0.2 * Math.sqrt(Math.abs(x));
+        ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;
+        ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0;
+        ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0;
+        return ret;
+    }
+
+    private static double transformLon(double x, double y) {
+        double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1
+                * Math.sqrt(Math.abs(x));
+        ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;
+        ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0;
+        ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 * pi)) * 2.0 / 3.0;
+        return ret;
+    }
+
+    private static LocateInfo transform(double lat, double lon) {
+        LocateInfo info = new LocateInfo();
+        if (outOfChina(lat, lon)) {
+            info.setChina(false);
+            info.setLatitude(lat);
+            info.setLongitude(lon);
+            return info;
+        }
+        double dLat = transformLat(lon - 105.0, lat - 35.0);
+        double dLon = transformLon(lon - 105.0, lat - 35.0);
+        double radLat = lat / 180.0 * pi;
+        double magic = Math.sin(radLat);
+        magic = 1 - ee * magic * magic;
+        double sqrtMagic = Math.sqrt(magic);
+        dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
+        dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);
+        double mgLat = lat + dLat;
+        double mgLon = lon + dLon;
+        info.setChina(true);
+        info.setLatitude(mgLat);
+        info.setLongitude(mgLon);
+
+        return info;
+    }
+}

+ 14 - 0
mhfire-service/src/main/java/com/bizmatics/mhfire/service/vo/LocateInfo.java

@@ -0,0 +1,14 @@
+package com.bizmatics.mhfire.service.vo;
+
+import lombok.Data;
+
+/**
+ * @author yq
+ * @date 2021/7/26 15:05
+ */
+@Data
+public class LocateInfo {
+    private double longitude;
+    private double Latitude;
+    private boolean isChina;
+}

+ 305 - 3
pom.xml

@@ -18,11 +18,313 @@
     </modules>
 
     <parent>
-        <artifactId>base-pom</artifactId>
-        <groupId>com.bizmatics</groupId>
-        <version>0.0.1</version>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.2.8.RELEASE</version>
     </parent>
 
+
+    <properties>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+        <java.version>1.8</java.version>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
+        <compilerArgument>-parameters</compilerArgument>
+
+        <!--spring-cloud-->
+        <spring-cloud-dependencies.version>Hoxton.SR6</spring-cloud-dependencies.version>
+        <spring-spring-cloud-starter.version>2.2.3.RELEASE</spring-spring-cloud-starter.version>
+        <spring-cloud-starter-netflix-eureka-client.version>2.2.3.RELEASE</spring-cloud-starter-netflix-eureka-client.version>
+        <spring-cloud-starter-netflix-eureka-server.version>2.2.3.RELEASE</spring-cloud-starter-netflix-eureka-server.version>
+        <spring-cloud-starter-openfeign.version>2.2.3.RELEASE</spring-cloud-starter-openfeign.version>
+        <spring-cloud-starter-netflix-ribbon.version>2.2.3.RELEASE</spring-cloud-starter-netflix-ribbon.version>
+        <spring-cloud-starter-netflix-hystrix.version>2.2.3.RELEASE</spring-cloud-starter-netflix-hystrix.version>
+        <spring-cloud-starter-netflix-hystrix-dashboard.version>2.2.3.RELEASE</spring-cloud-starter-netflix-hystrix-dashboard.version>
+
+        <!--db-->
+        <mysql.version>8.0.20</mysql.version>
+        <druid-spring-boot-starter.version>1.1.22</druid-spring-boot-starter.version>
+        <mybatis-plus-boot-starter.version>3.3.0</mybatis-plus-boot-starter.version>
+        <mybatis-plus-generator.version>3.3.2</mybatis-plus-generator.version>
+        <dynamic-datasource-spring-boot-starter.version>3.3.1</dynamic-datasource-spring-boot-starter.version>
+
+        <!--lombok-->
+        <lombok.version>1.18.12</lombok.version>
+
+        <!--apache-->
+        <commons-lang3.version>3.11</commons-lang3.version>
+        <commons-beanutils.version>1.9.4</commons-beanutils.version>
+        <commons-io.version>2.6</commons-io.version>
+        <okhttp3.version>4.8.1</okhttp3.version>
+        <openCsv.version>4.6</openCsv.version>
+
+        <!--google-->
+        <guava.version>29.0-jre</guava.version>
+
+        <!--template-->
+        <velocity-engine-core.version>2.1</velocity-engine-core.version>
+        <freemarker.version>2.3.30</freemarker.version>
+
+        <!--json-->
+        <fastjson.version>1.2.54</fastjson.version>
+        <jackson.version>2.10.4</jackson.version>
+
+        <raven-log4j2.version>7.7.0</raven-log4j2.version>
+        <orika-core.version>1.5.4</orika-core.version>
+        <jalopy.version>1.5rc3</jalopy.version>
+        <jenesis4java.version>2.0</jenesis4java.version>
+
+        <venus-cloud-starter-feign.version>1.0.0</venus-cloud-starter-feign.version>
+        <springfox-swagger.version>2.7.0</springfox-swagger.version>
+        <netty-all.version>4.1.36.Final</netty-all.version>
+        <hessian.version>4.0.51</hessian.version>
+        <jetty-server.version>9.4.31.v20200723</jetty-server.version>
+        <apollo-client.version>1.7.0</apollo-client.version>
+        <!--<jetcache-starter-redis-lettuce.version>2.5.9</jetcache-starter-redis-lettuce.version>-->
+        <swagger-annotations.version>1.5.13</swagger-annotations.version>
+        <beetl.version>3.0.5.RELEASE</beetl.version>
+        <poi.version>4.1.0</poi.version>
+        <dom4j.version>2.1.3</dom4j.version>
+        <xerces.version>2.12.0</xerces.version>
+        <jsoup.version>1.9.1</jsoup.version>
+        <aliyun.oss.version>3.10.2</aliyun.oss.version>
+        <javax.mail.version>1.6.2</javax.mail.version>
+        <commons-net.version>3.7.1</commons-net.version>
+        <jsch.version>0.1.55</jsch.version>
+        <!--maven-->
+        <maven-plugin-api.version>3.0</maven-plugin-api.version>
+        <maven-plugin-annotations.version>3.4</maven-plugin-annotations.version>
+        <maven-project.version>2.2.0</maven-project.version>
+        <maven-site-plugin.version>3.9.1</maven-site-plugin.version>
+        <!--bizmatics-->
+        <com.bizmatics.common.version>0.0.1</com.bizmatics.common.version>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <!--common start-->
+            <dependency>
+                <groupId>com.bizmatics</groupId>
+                <artifactId>common</artifactId>
+                <version>${com.bizmatics.common.version}</version>
+                <type>pom</type>
+            </dependency>
+            <dependency>
+                <groupId>com.bizmatics</groupId>
+                <artifactId>common</artifactId>
+                <version>${com.bizmatics.common.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.bizmatics</groupId>
+                <artifactId>common-core</artifactId>
+                <version>${com.bizmatics.common.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.bizmatics</groupId>
+                <artifactId>common-spring</artifactId>
+                <version>${com.bizmatics.common.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.bizmatics</groupId>
+                <artifactId>common-mvc</artifactId>
+                <version>${com.bizmatics.common.version}</version>
+            </dependency>
+
+            <!--common end-->
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring-cloud-dependencies.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <!--spring boot end-->
+
+            <!--spring cloud start-->
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-starter</artifactId>
+                <version>${spring-spring-cloud-starter.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
+                <version>${spring-cloud-starter-netflix-hystrix.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+                <version>${spring-cloud-starter-netflix-eureka-client.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+                <version>${spring-cloud-starter-netflix-eureka-server.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
+                <version>${spring-cloud-starter-netflix-ribbon.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-starter-openfeign</artifactId>
+                <version>${spring-cloud-starter-openfeign.version}</version>
+            </dependency>
+
+            <!--spring cloud end-->
+
+
+            <dependency>
+                <groupId>io.netty</groupId>
+                <artifactId>netty-all</artifactId>
+                <version>${netty-all.version}</version>
+            </dependency>
+
+
+
+            <dependency>
+                <groupId>com.alibaba</groupId>
+                <artifactId>druid-spring-boot-starter</artifactId>
+                <version>${druid-spring-boot-starter.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.baomidou</groupId>
+                <artifactId>mybatis-plus-boot-starter</artifactId>
+                <version>${mybatis-plus-boot-starter.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.apache.velocity</groupId>
+                <artifactId>velocity-engine-core</artifactId>
+                <version>${velocity-engine-core.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.baomidou</groupId>
+                <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+                <version>${dynamic-datasource-spring-boot-starter.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.google.guava</groupId>
+                <artifactId>guava</artifactId>
+                <version>${guava.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.apache.commons</groupId>
+                <artifactId>commons-lang3</artifactId>
+                <version>${commons-lang3.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>commons-io</groupId>
+                <artifactId>commons-io</artifactId>
+                <version>${commons-io.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>commons-beanutils</groupId>
+                <artifactId>commons-beanutils</artifactId>
+                <version>${commons-beanutils.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.alibaba</groupId>
+                <artifactId>fastjson</artifactId>
+                <version>${fastjson.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>ma.glasnost.orika</groupId>
+                <artifactId>orika-core</artifactId>
+                <version>${orika-core.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.apache.maven</groupId>
+                <artifactId>maven-plugin-api</artifactId>
+                <version>${maven-plugin-api.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.projectlombok</groupId>
+                <artifactId>lombok</artifactId>
+                <version>${lombok.version}</version>
+                <optional>true</optional>
+            </dependency>
+
+            <dependency>
+                <groupId>mysql</groupId>
+                <artifactId>mysql-connector-java</artifactId>
+                <version>${mysql.version}</version>
+                <scope>runtime</scope>
+            </dependency>
+
+            <dependency>
+                <groupId>com.fasterxml.jackson.core</groupId>
+                <artifactId>jackson-annotations</artifactId>
+                <version>${jackson.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>io.swagger</groupId>
+                <artifactId>swagger-annotations</artifactId>
+                <version>${swagger-annotations.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.squareup.okhttp3</groupId>
+                <artifactId>okhttp</artifactId>
+                <version>${okhttp3.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.caucho</groupId>
+                <artifactId>hessian</artifactId>
+                <version>${hessian.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.ctrip.framework.apollo</groupId>
+                <artifactId>apollo-client</artifactId>
+                <version>${apollo-client.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.freemarker</groupId>
+                <artifactId>freemarker</artifactId>
+                <version>${freemarker.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>cn.afterturn</groupId>
+                <artifactId>easypoi-spring-boot-starter</artifactId>
+                <version>${poi.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>redis.clients</groupId>
+                <artifactId>jedis</artifactId>
+                <version>${jedis.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.opencsv</groupId>
+                <artifactId>opencsv</artifactId>
+                <version>${openCsv.version}</version>
+            </dependency>
+        </dependencies>
+
+    </dependencyManagement>
+
     <dependencies>
         <dependency>
             <groupId>com.bizmatics</groupId>