From 18ab70b5f19fce88ba91c08689f2f39bb9784ecf Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 25 十一月 2025 16:18:15 +0800
Subject: [PATCH] 最新版本541200007
---
server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/ClusterCustomKMeans.java | 20 +++++++++++++++++---
1 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/ClusterCustomKMeans.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/ClusterCustomKMeans.java
index 773ceaa..8915a9b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/ClusterCustomKMeans.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/ClusterCustomKMeans.java
@@ -1,9 +1,7 @@
package com.doumee.core.tsp;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
import com.doumee.core.utils.Constants;
import com.doumee.dao.admin.request.SketchCateModel;
@@ -78,6 +76,7 @@
cList.add(doublePointNew.getCustomer());
sketchCateModel.setTotalNum(Constants.formatBigdecimal(sketchCateModel.getTotalNum()).add(Constants.formatBigdecimal(doublePointNew.getCustomer().getTotalNum())));
}
+ sortPointByCenterPoint(cluster,cList);
sketchCateModel.setCustomerList(cList);
sketchCateModel.setStartPoint(cList.get(0));
sketchCateModel.setTotalCustomer(cList.size());
@@ -86,6 +85,21 @@
return list;
}
+ private void sortPointByCenterPoint(CentroidCluster<DoublePointNew> cluster, List<JkSketchCustomer> cList) {
+ double clat = Constants.formatBigdecimal(cList.get(0).getLatitude()).doubleValue();
+ double clong = Constants.formatBigdecimal(cList.get(0).getLongitude()).doubleValue();
+ if(cluster!=null || cluster.getCenter() != null || cluster.getCenter().getPoint() != null && cluster.getCenter().getPoint().length>=2){
+ clong = cluster.getCenter().getPoint()[1];
+ clat = cluster.getCenter().getPoint()[0];
+ }
+ for(JkSketchCustomer c : cList){
+ double latDiff = Constants.formatBigdecimal(c.getLatitude()).doubleValue() - clat;
+ double lonDiff = Constants.formatBigdecimal(c.getLongitude()).doubleValue() - clong;
+ c.setDistanceCenter(Math.sqrt(latDiff * latDiff + lonDiff * lonDiff)); // 娆ф皬璺濈
+ }
+ Collections.sort(cList, (p1, p2) -> Double.compare(p1.getDistanceCenter(), p2.getDistanceCenter()));
+ }
+
public class DoublePointNew extends DoublePoint{
private JkSketchCustomer customer;
--
Gitblit v1.9.3