puzhibing
2022-10-12 448ffdc100aade7aa1f440923abdd8ff561b4b72
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);
@@ -108,6 +110,39 @@
    }
    /**
     * 模糊搜索地图内容
     * @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;
            vo.setName(name);
            vo.setAddress(formattedAddress);
            vo.setLat(lat);
            vo.setLng(lng);
        }
        return vo;
    }
    /**
     * 获取两个地点之间的预估里程和预估时间