| | |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.ruoyi.common.core.domain.Result; |
| | | import com.ruoyi.common.core.enums.GaoDeEnum; |
| | | import com.ruoyi.common.core.exception.GlobalException; |
| | | import com.ruoyi.common.core.vo.GaoDeMap; |
| | | import com.ruoyi.common.core.vo.Path; |
| | | import com.ruoyi.common.core.vo.PolylineData; |
| | | import com.ruoyi.common.core.vo.Steps; |
| | | |
| | | import java.io.BufferedReader; |
| | | import java.io.IOException; |
| | |
| | | import java.net.URL; |
| | | import java.net.URLConnection; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @author HJL |
| | |
| | | /** |
| | | * 功能描述: 高德地图Key |
| | | */ |
| | | private static final String GAO_DE_KEY = "3f00f94b6e9f470a5c6f510c3df814ea"; |
| | | |
| | | //申请的账户Key |
| | | private static final String GAO_DE_KEY = "37331f325a4f4ea25bc0d4e1900a1730"; |
| | | |
| | | /** |
| | | * 功能描述: 根据地址名称得到两个地址间的距离 |
| | |
| | | * @param start 起始位置 |
| | | * @param end 结束位置 |
| | | * @return long 两个地址间的距离 |
| | | * @author isymikasan |
| | | */ |
| | | public static Long getDistanceByAddress(String start, String end) { |
| | | String startLonLat = getLonLat(start).getDatas(); |
| | |
| | | json.append(inputLine); |
| | | } |
| | | in.close(); |
| | | } catch (IOException ignored) { |
| | | } catch (IOException e) { |
| | | throw new GlobalException("获取路线规划失败!"); |
| | | } |
| | | String data = json.toString(); |
| | | GaoDeMap gaoDeMap = JSONObject.parseObject(data, GaoDeMap.class); |
| | | return gaoDeMap.getRoute().getPaths().get(0); |
| | | Path path = gaoDeMap.getRoute().getPaths().get(0); |
| | | List<Steps> steps = path.getSteps(); |
| | | for (Steps step : steps) { |
| | | // 经纬度地址指向 |
| | | List<PolylineData> polylineDataList = new ArrayList<>(); |
| | | String polyline = step.getPolyline(); |
| | | List<String> list = Arrays.stream(polyline.split(";")).collect(Collectors.toList()); |
| | | for (String s : list) { |
| | | String[] split = s.split(","); |
| | | // 经纬度 |
| | | String longitude = split[0]; |
| | | String latitude = split[1]; |
| | | polylineDataList.add(new PolylineData(longitude, latitude)); |
| | | } |
| | | step.setPolylineList(polylineDataList); |
| | | } |
| | | return path; |
| | | } |
| | | |
| | | } |