Loading

如何利用地图API接口根据地址获取具体的经纬度?

 目录

一、登录到百度地图开放平台

二、认证为开发者

三、创建应用

四、地址转经纬度API接口

五、封装JAVA工具类


一、登录到百度地图开放平台

百度地图开放平台网址:https://lbsyun.baidu.com/

18700d76a388458ba5f632b327a97424.png

二、认证为开发者

这里你有两种选择,可以选择认证个人开发者或者企业开发者,区别在企业认证每日接口调用次数配额更多,并发调用频率越高。

342893d307d04b568077cf4bae3047cb.png

三、创建应用

 白名单限制填写:0.0.0.0/0 即可,便于调试。

四、地址转经纬度API接口

https://api.map.baidu.com/geocoding/v3/?address=天津宝坻区钰华街道金玉一园&output=xml&ak=IfyIr3ZMDihB6QTAVw4GoFBsX7Z6nEPb

 这里output支持json和xml格式返回。

872c3441389b496098a29554f5932198.png

2f5f9c8b34054510bdfb5d124f172a63.png

五、封装JAVA工具类

package com.ruoyi.common.utils;

import cn.hutool.core.util.XmlUtil;
import cn.hutool.http.HttpUtil;
import org.w3c.dom.Document;

import javax.xml.xpath.XPathConstants;
import java.util.HashMap;
import java.util.Map;

/**
 * 百度地图定位接口
 */
public class BaiduMapUtils {

    public static Map<String, String> getAddressLngLat(String address) {
        Map<String, String> result = new HashMap<>();
        final String ak_token = "ak密钥";
        String xml = HttpUtil.get("https://api.map.baidu.com/geocoding/v3/?address=" + address + "&output=xml&ak=" + ak_token);
        try {
            Document doc = XmlUtil.parseXml(xml);
            String lng = (String) XmlUtil.getByXPath("//location/lng", doc, XPathConstants.STRING);
            String lat = (String) XmlUtil.getByXPath("//location/lat", doc, XPathConstants.STRING);
            System.out.println("lng = " + lng);
            System.out.println("lat = " + lat);
            result.put("lng", lng);
            result.put("lat", lat);
        } catch (Exception e) {
            System.out.println(" 百度地址解析异常" + e.getMessage());
            return null;
        }
        return result;
    }
}

posted @ 2023-03-03 09:31  Roc-xb  阅读(792)  评论(0编辑  收藏  举报

易微帮源码


易微帮官网