SpringBoot 接入腾讯地图

第一步 注册腾讯地图api

1. 到腾讯地图api注册一下

https://lbs.qq.com/dev/console/application/mine

2. 创建你自己的应用

在这里插入图片描述
在这里插入图片描述
添加一下key
在这里插入图片描述
添加之后就有key了
在这里插入图片描述
添加之后还需要分配额度才能使用,到账户额度去给这个key配额
在这里插入图片描述
这样分配额度
在这里插入图片描述
然后到应用里面详情就能看到刚刚分配的额度了
在这里插入图片描述
这样就能调用接口请求了
在这里插入图片描述
腾讯地图接口文档:https://lbs.qq.com/service/webService/webServiceGuide/search/webServiceDistrict

第二步:集成SpringBoot

1. 需要用到的依赖

<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.9.1</version>
</dependency>

2. 代码片段

public class TencentMapUtils {
    private static final String KEY = "2A6BZ-MBOKU-CP3VE-GUS4B-25UHZ-6CF5U";
 	// 省市区列表url
    private static final String LIST_URL = "https://apis.map.qq.com/ws/district/v1/list";
    //关键词获取行政区域
    private static final String KEYWORD_URL = "https://apis.map.qq.com/ws/district/v1/search";
    
    /**
     * 获取地址列表
     *
     * @return 省市区地址
     */
    private static List<List<Address>> getList() {
        Gson gson = new Gson();
        String addressData = fetchDataFromAPI(LIST_URL + "?key=" + KEY);
        JsonObject jsonObject = new Gson().fromJson(addressData, JsonObject.class);
        JsonArray jsonArray = jsonObject.getAsJsonArray("result");
        for (JsonElement jsonElement : jsonArray) {
            List<Address> addressList = gson.fromJson(jsonElement, new TypeToken<List<Address>>() {
            }.getType());
            list.add(addressList);
        }
        return list;
    }
    
    public static List<Address> searchByKeyword(String keyword) {
//        https://apis.map.qq.com/ws/district/v1/search?&keyword=香格里拉&key=[你的key]
        String addressData = fetchDataFromAPI(KEYWORD_URL + "?keyword=" + keyword + "&key=" + KEY);
        return mapDataHandler(addressData);
    }

	/**
     * 地图json字符串转list
     *
     * @param addressData
     * @return
     */
    private static List<Address> mapDataHandler(String addressData) {
        if (StringUtils.isBlank(addressData)) {
            return null;
        }
        List<Address> addressList = null;
        JsonObject jsonObject = new Gson().fromJson(addressData, JsonObject.class);
        JsonArray jsonArray = jsonObject.getAsJsonArray("result");
        if (jsonArray != null && !jsonArray.isJsonNull()) {
            addressList = gson.fromJson(jsonArray.get(0), new TypeToken<List<Address>>() {
            }.getType());
        } else {
            return null;
        }
        return addressList;
    }

	private static String fetchDataFromAPI(String apiUrl) {
        StringBuilder response = new StringBuilder();
        try {
            URL url = new URL(apiUrl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            conn.setRequestProperty("Content-Type", "application/json");

            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                response.append(line);
            }
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return response.toString();
    }
 }

根据自己的接收数据创建实体类

@Data
public class Address {


    private Integer id;
    private String name;
    private String fullname;
    private String[] pinyin;
    private Location location;
    private Integer[] cidx;
    private List<Address> childs;
    @Data
    public class Location {
        private String lat;
        private String lng;
    }
}
你好!对于Spring Boot腾讯地图的集成,你可以按照以下步骤进行操作: 1. 首先,确保你已经在项目中引入了Spring Boot的依赖。 2. 在腾讯地图开放平台上申请一个开发者账号,并创建一个应用。这将为你提供访问腾讯地图API的密钥。 3. 在Spring Boot项目中,可以使用腾讯地图提供的Java SDK调用API。你可以通过在项目的pom.xml文件中添加以下依赖来引入SDK: ```xml <dependency> <groupId>com.tencent.tencentmap.mapsdk</groupId> <artifactId>tencentmap-sdk</artifactId> <version>1.12.0</version> </dependency> ``` 4. 在你的Spring Boot应用程序中,创建一个服务类来处理与腾讯地图API的交互。你可以使用SDK提供的类和方法来实现这些功能。 例如,你可以创建一个名为`TencentMapService`的类,并在其中编写方法来调用腾讯地图的API,如获取地理位置、搜索附近的POI等。 ```java @Service public class TencentMapService { @Value("${tencent.map.api-key}") private String apiKey; public String getLocation(String address) { TencentMapClient client = new TencentMapClient(apiKey); GeocodingResponse response = client.geocoding().address(address).execute(); // 处理响应数据并返回结果 return response.getLocation(); } // 其他方法... } ``` 5. 在`application.properties`或`application.yml`文件中配置你的腾讯地图API密钥: ```properties tencent.map.api-key=YOUR_API_KEY ``` 6. 在你的Controller中注入`TencentMapService`,并在需要的地方调用相应的方法来获取地理位置或其他信息。 这样,你就可以在Spring Boot项目中集成腾讯地图API了。当然,具体的使用方式还取决于你想要实现的功能和需求。希望这些步骤能对你有所帮助!如有更多问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值