package com.ruoyi.common.utils;

import com.alibaba.fastjson2.JSONObject;

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

public class TencentMapUtils {
    /**
     * 通过腾讯地图将经纬度转成详细地址
     *
     * @param lat 纬度
     * @param lng 经度
     */

    public static JSONObject getLatAndLng(String lat, String lng) throws Exception {
        String key = "YQCBZ-SQZ6A-P6EKD-CAUGZ-L7IWO-JMFMJ";
        // 1. 腾讯地图密钥
        String hsUrl = "https://apis.map.qq.com/ws/geocoder/v1/?location=" + lat + "," + lng + "&key=" + key + "&get_poi=1";
        // 2. 设置URL
        URL url = null;
        // 3. 设置缓存输入流()
        BufferedReader in = null;
        // 4. 设置缓冲区
        StringBuffer sb = new StringBuffer();
        try {
            // 5. 初始化URL对象
            url = new URL(hsUrl);
            // 6. 初始化初始化
            in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
            // 7.
            String str = null;
            // 8. 进行读取数据并写入数据(一行行读取)
            while ((str = in.readLine()) != null) {
                // 9. 添加到我们的字符串缓冲区
                sb.append(str);
            }
        } catch (Exception ex) {
            System.out.println("出现错误");
        } finally {
            try {
                // 10. 关闭流
                if (in != null) {
                    in.close();
                }
            } catch (IOException ex) {

            }
        }
        // 1.这里是JSON字符串
        String result = sb.toString();
        // 2.JSON字符串转换为JSON对象
        JSONObject object = JSONObject.parseObject(result);
        // 3.通过JSON对象获取result这个对象属性
        JSONObject result1 = (JSONObject) object.get("result");
        // 4.然后再次获取address_component这个对象。
        JSONObject address_component = (JSONObject) result1.get("address_component");
        return address_component;
    }

//    public static void main(String[] args) throws Exception {
//        System.out.println(getLatAndLng("43.828281", "125.29985"));  // 密钥⭐
//    }
}
