liang-chen-fly

高德地图整合

工具类

  • GouldUtil

package com.ruoyi.common.cyz;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.springframework.stereotype.Component;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

@Component
public class GouldUtil {
   //在高德申请的应用Key
   private static final String GOULD_KEY = "xx";

   /**
    * 0.根据地址名称得到两个地址间的距离
    *
    * @param start 起始位置
    * @param start 结束位置
    * @return 两个地址间的距离
    */
   public long getDistanceByAddress(String start, String end) {
       String startLonLat = getLonLat(start);
       String endLonLat = getLonLat(end);
       long dis = getDistance(startLonLat, endLonLat);
       return dis;
  }

   /**
    * 1.地址转换为经纬度
    *
    * @param address 地址
    * @return 经纬度
    */
   public String getLonLat(String address) {
       // 返回输入地址address的经纬度信息, 格式是 经度,纬度
       String queryUrl = "http://restapi.amap.com/v3/geocode/geo?key=" + GOULD_KEY + "&address=" + address;
       String queryResult = getResponse(queryUrl); // 高德接品返回的是JSON格式的字符串
       JSONObject job = JSONObject.parseObject(queryResult);
       JSONObject jobJSON = JSONObject
              .parseObject(job.get("geocodes").toString().substring(1, job.get("geocodes").toString().length() - 1));
       String DZ = jobJSON.get("location").toString();
// System.out.println("经纬度:" + DZ);
       return DZ;
  }

   /**
    * 将经纬度getLng, getLat 通过getAMapByLngAndLat方法转换地址
    *
    * @param getLng 经度
    * @param getLat 纬度
    * @return 地址名称
    * @throws Exception
    */
   public String getAMapByLngAndLat(String getLng, String getLat) throws Exception {
       String url;
       try {
           url = "http://restapi.amap.com/v3/geocode/regeo?output=JSON&location=" + getLng + "," + getLat
                   +

分类:

技术点:

相关文章: