java调用百度地图接口输入名称查经度纬度
如何注册ak号请参考https://blog.csdn.net/weixin_42512684/article/details/115843299
package manager.tool; import com.alibaba.fastjson.JSON; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; /** * @createDate 创建时间: * 类说明 -- 百度地图经纬度和地址相互转换的工具类 */ @Component public class GetAddressUtil { public static void main(String args[]){ Map<String, String> map = new HashMap<>(); map = getMap("XXX市第一中学"); System.out.println(map); } //由于接口请求有时候无法得到响应,故循环调用五次 public Map<String, String> getMap(String address) { String AK = "你的AK码"; Map<String, String> map = null; for (int i = 0; i < 5; i++) { map = getGeocoderLatitude(address, AK); if (map != null) { break; } } return map; } /** * 返回输入地址的经纬度坐标 * key lng(经度),lat(纬度) */ public static Map<String, String> getGeocoderLatitude(String address, String AK) { BufferedReader in = null; try { //将地址转换成utf-8的16进制 address = URLEncoder.encode(address, "UTF-8"); URL tirc = new URL("http://api.map.baidu.com/geocoder?address=" + address + "&output=json&key=" + AK); in = new BufferedReader(new InputStreamReader(tirc.openStream(), "UTF-8")); String res; StringBuilder sb = new StringBuilder(""); while ((res = in.readLine()) != null) { sb.append(res.trim()); } String str = sb.toString(); Map<String, String> map = null; if (str != null && str.length() > 0) { int lngStart = str.indexOf("lng\":"); int lngEnd = str.indexOf(",\"lat"); int latEnd = str.indexOf("},\"precise"); if (lngStart > 0 && lngEnd > 0 && latEnd > 0) { String lng = str.substring(lngStart + 5, lngEnd); String lat = str.substring(lngEnd + 7, latEnd); map = new HashMap<String, String>(); map.put("lng", lng); map.put("lat", lat); return map; } } } catch (Exception e) { e.printStackTrace(); } finally { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } return null; } }
资源丰富的的网盘资源:网盘资源大全! 推荐一个适合零基础学习SQL的网站:不用安装数据库,在线轻松学习SQL!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!