From 275aa50b1de31ace0cb17fdf0b6f678a63267b3c Mon Sep 17 00:00:00 2001 From: doum <doum> Date: 星期一, 20 十月 2025 10:14:01 +0800 Subject: [PATCH] 最新版本541200007 --- server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/DistanceCalculator.java | 62 +++++++++++++++++++++++++++++-- 1 files changed, 58 insertions(+), 4 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/DistanceCalculator.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/DistanceCalculator.java index 7f76135..2c440ea 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/DistanceCalculator.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tsp/DistanceCalculator.java @@ -25,11 +25,12 @@ System.out.println(calculateDistance(39.326638d,116.363312d,31.326606,118.363272)); } - public static DistanceModel calculateDistanceGaode(String urlStr, JkSketchCustomer c1, JkSketchCustomer c2) { - DistanceModel r =new DistanceModel(); + public static DistanceCustomerModel calculateDistanceGaode(String urlStr, JkCustomer c1, JkCustomer c2) { + DistanceCustomerModel r =new DistanceCustomerModel(); r.setStart(c1); r.setEnd(c2); r.setDistance(0); + r.setCode(0); r.setLocations( new ArrayList<>()); try { String url =urlStr.replace("${lat1}", Constants.formatBigdecimalScale(c1.getLatitude(),6)+"") @@ -47,7 +48,7 @@ JSONArray array = json.getJSONObject("route").getJSONArray("paths"); JSONObject model = array.getJSONObject(0);//鍙栫涓�涓� Long distance = Long.parseLong(model.getString("distance")); - r.setDistance(distance*1000); + r.setDistance(distance); JSONArray steps = model.getJSONArray("steps"); String tl = ""; if(steps!=null && steps.size()>0){ @@ -61,9 +62,62 @@ tl+= steps.getJSONObject(i).getString("polyline" ); } } + r.setPolyline(tl); r.setLocations(Arrays.asList(tl.split(";"))); + r.setCode(1); + log.error("鑾峰彇浜ら�氳鍒掔嚎璺俊鎭垚鍔�=============="); }else{ - log.error("鑾峰彇浜ら�氳鍒掔嚎璺俊鎭垚鍔�=============="); + log.error("鑾峰彇浜ら�氳鍒掔嚎璺俊鎭垚鍔�=====澶辫触锛侊紒========="); + } + }catch (Exception e){ + log.error("鑾峰彇浜ら�氳鍒掔嚎璺俊鎭垚鍔�=====澶辫触=========="); + } + + return r ; + } + public static DistanceModel calculateDistanceGaode(String urlStr, JkSketchCustomer c1, JkSketchCustomer c2) { + DistanceModel r =new DistanceModel(); + r.setStart(c1); + r.setEnd(c2); + r.setDistance(0); + r.setCode(0); + r.setLocations( new ArrayList<>()); + try { + String url =urlStr.replace("${lat1}", Constants.formatBigdecimalScale(c1.getLatitude(),6)+"") + .replace("${lat2}",Constants.formatBigdecimalScale(c2.getLatitude(),6)+"") + .replace("${long1}",Constants.formatBigdecimalScale(c1.getLongitude(),6)+"") + .replace("${long2}",Constants.formatBigdecimalScale(c2.getLongitude(),6)+""); + String result = HttpsUtil.get(url ,true); + JSONObject json = JSONObject.parseObject(result); + if(json!=null + && json.getInteger("status")!=null + && json.getInteger("status") ==1 + && json.getJSONObject("route")!=null + && json.getJSONObject("route").getJSONArray("paths") !=null + && json.getJSONObject("route").getJSONArray("paths") .size()>0 ){ + JSONArray array = json.getJSONObject("route").getJSONArray("paths"); + JSONObject model = array.getJSONObject(0);//鍙栫涓�涓� + Long distance = Long.parseLong(model.getString("distance")); + r.setDistance(distance); + JSONArray steps = model.getJSONArray("steps"); + String tl = ""; + if(steps!=null && steps.size()>0){ + for (int i = 0; i < steps.size(); i++) { + if(StringUtils.isBlank(steps.getJSONObject(i).getString("polyline" ))){ + continue; + } + if(!tl.equals("") &&!tl.endsWith(";")){ + tl += ";"; + } + tl+= steps.getJSONObject(i).getString("polyline" ); + } + } + r.setPolyline(tl); + r.setLocations(Arrays.asList(tl.split(";"))); + r.setCode(1); + log.error("鑾峰彇浜ら�氳鍒掔嚎璺俊鎭垚鍔�=============="); + }else{ + log.error("鑾峰彇浜ら�氳鍒掔嚎璺俊鎭垚鍔�=====澶辫触锛侊紒========="); } }catch (Exception e){ log.error("鑾峰彇浜ら�氳鍒掔嚎璺俊鎭垚鍔�=====澶辫触=========="); -- Gitblit v1.9.3