From 9317fed1cea5372d9997a8273c07f041db94f99c Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期二, 28 五月 2024 09:40:11 +0800
Subject: [PATCH] 新增功能
---
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java | 68 +++++++++++++++++++++++++++++-----
1 files changed, 58 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..72c49d9 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
@@ -10,7 +10,7 @@
*/
public class GoogleMapUtil {
- private final static String key = "AIzaSyA_FEliOkbkL1IAHQsnBpbpo9MlIp729H0";
+ private final static String key = "AIzaSyCG6PsfkaCEc94VK2vIAZk1YYKvOS_Ewts";
/**
@@ -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,27 @@
* @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);
+ 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];
+ DistanceMatrixElementStatus status = elements.status;
+ if(status.compareTo(DistanceMatrixElementStatus.OK) != 0){
+ return null;
}
- return null;
+ DistancematrixVo vo = new DistancematrixVo();
+ vo.setDistance(elements.distance.inMeters);
+ vo.setDuration(elements.duration.inSeconds);
+ return vo;
}
--
Gitblit v1.7.1