From 0af8d2525b8e58c3eb2c3eb30bb32ac482d20856 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 15 七月 2025 11:03:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/services/src/main/java/com/doumee/core/utils/GeoUtils.java | 41 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 41 insertions(+), 0 deletions(-)
diff --git a/server/services/src/main/java/com/doumee/core/utils/GeoUtils.java b/server/services/src/main/java/com/doumee/core/utils/GeoUtils.java
new file mode 100644
index 0000000..71846fc
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/core/utils/GeoUtils.java
@@ -0,0 +1,41 @@
+package com.doumee.core.utils;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/7/15 9:57
+ */
+public class GeoUtils {
+ // 灏嗚搴﹁浆鎹负寮у害
+ private static double toRadians(double angle) {
+ return angle * Math.PI / 180.0;
+ }
+
+ // 璁$畻涓ょ偣闂寸殑璺濈锛堝崟浣嶏細鍏噷锛�
+ public static double haversineDistance(double lat1, double lon1, double lat2, double lon2) {
+ // 灏嗙粡绾害杞崲涓哄姬搴�
+ double dLat = toRadians(lat2 - lat1);
+ double dLon = toRadians(lon2 - lon1);
+ lat1 = toRadians(lat1);
+ lat2 = toRadians(lat2);
+
+ // 搴旂敤Haversine鍏紡
+ double a = Math.pow(Math.sin(dLat / 2), 2) + Math.pow(Math.sin(dLon / 2), 2) * Math.cos(lat1) * Math.cos(lat2);
+ double c = 2 * Math.asin(Math.sqrt(a));
+ // 鍦扮悆鍗婂緞锛屽崟浣嶏細鍏噷
+ int R = 6371;
+ return R * c;
+ }
+
+ public static void main(String[] args) {
+ double lat1 = 30.660622; // 绾界害绾害
+ double lon1 = 114.172; // 绾界害缁忓害
+ double lat2 = 30.621857; // 娲涙潐鐭剁含搴�
+ double lon2 = 114.12311; // 娲涙潐鐭剁粡搴�
+
+ double distance = haversineDistance(lat1, lon1, lat2, lon2);
+ System.out.printf("Distance: %.2f km%n", distance);
+ }
+
+}
--
Gitblit v1.9.3