From 53562814add61acfdc02d6b25dae6324f6fd5f92 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 18 五月 2023 16:38:14 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java |   64 +++++++++++++++++++++++++++-----
 1 files changed, 54 insertions(+), 10 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java
index aa6b522..ab98bf0 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java
@@ -62,8 +62,10 @@
             AddressComponent[] addressComponents = results[0].addressComponents;
             AddressComponentsVo[] addressComponentsVos = new AddressComponentsVo[addressComponents.length];
             for (int i = 0; i < addressComponents.length; i++) {
-                addressComponentsVos[i].setLongName(addressComponents[i].longName);
-                addressComponentsVos[i].setShortName(addressComponents[i].shortName);
+                AddressComponentsVo addressComponentsVo = new AddressComponentsVo();
+                addressComponentsVo.setLongName(addressComponents[i].longName);
+                addressComponentsVo.setShortName(addressComponents[i].shortName);
+                addressComponentsVos[i] = addressComponentsVo;
             }
             String address = results[0].formattedAddress;
             vo.setAddressComponentsVos(addressComponentsVos);
@@ -95,6 +97,39 @@
             String formattedAddress = candidates[0].formattedAddress;
             String name = candidates[0].name;
             Geometry geometry = candidates[0].geometry;
+            LatLng location = geometry.location;
+            double lat = location.lat;
+            double lng = location.lng;
+
+            vo.setName(name);
+            vo.setAddress(formattedAddress);
+            vo.setLat(lat);
+            vo.setLng(lng);
+        }
+        return vo;
+    }
+
+
+    /**
+     * 模糊搜索地图内容
+     * @param query
+     * @return
+     * @throws Exception
+     */
+    public static FindPlaceFromTextVo textsearch(String query) throws Exception{
+        GeoApiContext context = new GeoApiContext.Builder()
+                .apiKey(key)
+                .build();
+        TextSearchRequest request = new TextSearchRequest(context);
+        request.query(query);
+        PlacesSearchResponse placesSearchResponse = request.await();
+        PlacesSearchResult[] results = placesSearchResponse.results;
+        FindPlaceFromTextVo vo = null;
+        if(results.length > 0){
+            vo = new FindPlaceFromTextVo();
+            String formattedAddress = results[0].formattedAddress;
+            String name = results[0].name;
+            Geometry geometry = results[0].geometry;
             LatLng location = geometry.location;
             double lat = location.lat;
             double lng = location.lng;
@@ -145,14 +180,23 @@
      * @throws Exception
      */
     public static DistancematrixVo getDistancematrix(Double sLat, Double sLnt, Double eLat, Double eLnt) throws Exception{
-        ReverseGeocodeVo reverseGeocode = getReverseGeocode(sLat, sLnt);
-        ReverseGeocodeVo reverseGeocode1 = getReverseGeocode(eLat, eLnt);
-        if(null != reverseGeocode && null != reverseGeocode1){
-            String origin = reverseGeocode.getAddress();
-            String destination = reverseGeocode1.getAddress();
-            return getDistancematrix(origin, destination);
-        }
-        return null;
+        GeoApiContext context = new GeoApiContext.Builder()
+                .apiKey(key)
+                .build();
+        DistanceMatrixApiRequest request = DistanceMatrixApi.newRequest(context);
+        request.origins(new LatLng(sLat, sLnt));
+        request.destinations(new LatLng(eLat, eLnt));
+        request.mode(TravelMode.DRIVING);//出行方式(驾车)
+        DistanceMatrix distanceMatrix = request.await();
+        Gson gson = new GsonBuilder().setPrettyPrinting().create();
+        System.out.println(gson.toJson(distanceMatrix));
+        context.shutdown();
+
+        DistanceMatrixElement elements = distanceMatrix.rows[0].elements[0];
+        DistancematrixVo vo = new DistancematrixVo();
+        vo.setDistance(elements.distance.inMeters);
+        vo.setDuration(elements.duration.inSeconds);
+        return vo;
     }
 
 

--
Gitblit v1.7.1