JAVA百度地图的API

/*** 通过经纬度获取地址名称** @param latitude(维度), longitude(经度)* @return address(地址)*/@GetMapping(value = "/getAddress")public Result getAddress(@RequestParam(value = "LATITUDE") String latitude,@RequestParam(value = "LONGITUDE") String longitude) {Map<String, String> result = new HashMap<>();result.put("ADDRESS", MapUtil.getAddressByLatAndLng(latitude, longitude));return Result.buildResult(Result.Status.OK, result);}/*** 通过地址获取经纬度** @param* @return address(地址)*/@GetMapping(value = "/getLatAndLngByAddress")public Result getLatAndLng(@RequestParam(value = "ADDRESS") String address) {return Result.buildResult(Result.Status.OK, MapUtil.getLatAndLngByAddress(address));}//数组转集合private List<String> array2List(String[] strings) {return Arrays.asList(strings);}//判断两个经纬度的距离private static final double EARTH_RADIUS = 6378.137;//地球半径,单位千米//将角度转为弧度private static double rad(double d) {return d * Math.PI / 180.0;}private static double getDistance(double lat1, double lng1, double lat2, double lng2) {double radLat1 = rad(lat1);double radLat2 = rad(lat2);double a = radLat1 - radLat2;double b = rad(lng1) - rad(lng2);double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));s = s * EARTH_RADIUS;s = Math.round(s * 1000);return s;}}
package springboot_001.utils;import com.google.gson.Gson;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.params.ConnRouteParams;
import org.apache.http.impl.client.DefaultHttpClient;
import springboot_001.safeguard.controller.WeLinkZBController;
import springboot_001.safeguard.entity.MapResult;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;/*** @author zhao pan* @Date 16:19 2019/12/18* @Description*/
public class MapUtil {public static final String ak = "1NKC2pNxVRKuPBdzkIrjiTAdiFE7VcyB";//    private static final String ak = "4IKgN0DzGVgiGtXW0hm8Z0OWsnYL7CuM";//    private static final String mapUrl = "172.30.68.94:8080";public static final String mapUrl = "api.map.baidu.com";public static String getAddressByLatAndLng(String latitude, String longitude) {StringBuffer sb = new StringBuffer();//创建HttpClient实例HttpClient client = getHttpClient();//创建httpGetHttpGet httpGet = new HttpGet("http://" + mapUrl + "/reverse_geocoding/v3/?ak=" + ak + "&output=json&coordtype=wgs84ll&location=" + latitude + "," + longitude);  //先维度(lati)后经度//执行try {HttpResponse response = client.execute(httpGet);HttpEntity entry = response.getEntity();if (entry != null) {InputStreamReader is = new InputStreamReader(entry.getContent());BufferedReader br = new BufferedReader(is);String str = null;while ((str = br.readLine()) != null) {sb.append(str.trim());}br.close();}} catch (ClientProtocolException e) {e.printStackTrace();return "地址获取失败";} catch (IOException e) {e.printStackTrace();return "地址获取失败";}Gson gson = new Gson();MapResult mapResult = gson.fromJson(sb.toString(), MapResult.class);if (mapResult.getResult() == null || mapResult.getResult().get("formatted_address") == null) {return "地址获取失败";}return mapResult.getResult().get("formatted_address").toString();}public static Map<String, Object> getLatAndLngByAddress(String address) {Map<String, Object> result = new HashMap<>();StringBuffer sb = new StringBuffer();//创建HttpClient实例HttpClient client = getHttpClient();//创建httpGetHttpGet httpGet = new HttpGet("http://" + mapUrl + "/geocoding/v3/?ak=" + ak + "&output=json&callback=showLocation&address=" + address);//执行try {HttpResponse response = client.execute(httpGet);HttpEntity entry = response.getEntity();if (entry != null) {InputStreamReader is = new InputStreamReader(entry.getContent());BufferedReader br = new BufferedReader(is);String str = null;while ((str = br.readLine()) != null) {sb.append(str.trim());}br.close();}} catch (ClientProtocolException e) {e.printStackTrace();return result;} catch (IOException e) {e.printStackTrace();return result;}Gson gson = new Gson();MapResult mapResult = gson.fromJson(sb.toString().replaceAll("showLocation&&showLocation\\(", "").replaceAll("\\)", ""), MapResult.class);if(mapResult.getResult() == null) return result;Map<String, Object> mapResultLocation = (Map<String, Object>) mapResult.getResult().get("location");result.put("LATITUDE", mapResultLocation.get("lat"));  //维度result.put("LONGITUDE", mapResultLocation.get("lng"));  //经度return result;}public static Map<String, Object> getInfoByLatAndLng(String latitude, String longitude){Map<String, Object> result = new HashMap<>();StringBuffer sb = new StringBuffer();//创建HttpClient实例HttpClient client = getHttpClient();//创建httpGetHttpGet httpGet = new HttpGet("http://" + mapUrl + "/reverse_geocoding/v3/?ak=" + ak + "&output=json&coordtype=wgs84ll&location=" + latitude + "," + longitude);  //先维度(lati)后经度//执行try {HttpResponse response = client.execute(httpGet);HttpEntity entry = response.getEntity();if (entry != null) {InputStreamReader is = new InputStreamReader(entry.getContent());BufferedReader br = new BufferedReader(is);String str = null;while ((str = br.readLine()) != null) {sb.append(str.trim());}br.close();}} catch (ClientProtocolException e) {e.printStackTrace();return result;} catch (IOException e) {e.printStackTrace();return result;}Gson gson = new Gson();MapResult mapResult = gson.fromJson(sb.toString(), MapResult.class);if (mapResult.getResult() == null || mapResult.getResult().get("formatted_address") == null) {return result;}return ( Map<String, Object>)mapResult.getResult().get("addressComponent");}//设置代理private static HttpClient getHttpClient() {DefaultHttpClient httpClient = new DefaultHttpClient();String proxyHost = "openproxy.huawei.com";int proxyPort = 8080;String userName = "bwx686365";String password = "lmwda@1314";httpClient.getCredentialsProvider().setCredentials(new AuthScope(proxyHost, proxyPort),new UsernamePasswordCredentials(userName, password));HttpHost proxy = new HttpHost(proxyHost, proxyPort);httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy);return httpClient;}}

根据地址信息获取经纬度

import java.util.HashMap;
import java.util.Map;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import net.sf.json.JSONObject;public class LngAndLatUtil {
public static Map<String,Double> getLngAndLat(String address){
Map<String,Double> map=new HashMap<String, Double>();String url = "http://api.map.baidu.com/geocoder/v2/?address="+address+"&output=json&ak=你自己的ak值";String json = loadJSON(url);JSONObject obj = JSONObject.fromObject(json);if(obj.get("status").toString().equals("0")){double lng=obj.getJSONObject("result").getJSONObject("location").getDouble("lng");double lat=obj.getJSONObject("result").getJSONObject("location").getDouble("lat");map.put("lng", lng);map.put("lat", lat);//System.out.println("经度:"+lng+"---纬度:"+lat);}else{//System.out.println("未找到相匹配的经纬度!");}
return map;
}public static String loadJSON (String url) {StringBuilder json = new StringBuilder();try {URL oracle = new URL(url);URLConnection yc = oracle.openConnection();BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));String inputLine = null;while ( (inputLine = in.readLine()) != null) {json.append(inputLine);}in.close();} catch (MalformedURLException e) {} catch (IOException e) {}return json.toString();}}
//把代码中的ak值(红色字部分)更改为你自己的ak值,在百度地图API中注册一下就有。
//调用方式:
Map<String,Double> map=LngAndLatUtil.getLngAndLat("上海市黄浦区六合路");
System.out.println("经度:"+map.get("lng")+"---纬度:"+map.get("lat"));

百度API地址

地点检索 | 百度地图API SDK

地理编码 | 百度地图API SDK

百度开放平台后台地址

登录百度账号

简单打开百度地图APP的方法,并可以直接检索出搜索的位置

简单打开百度地图APP的方法,并可以直接检索出搜索的位置_百度地图 uid-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/689325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NLP_BERT与GPT争锋

文章目录 介绍小结 介绍 在开始训练GPT之前&#xff0c;我们先比较一下BERT和 GPT 这两种基于 Transformer 的预训练模型结构&#xff0c;找出它们的异同。 Transformer架构被提出后不久&#xff0c;一大批基于这个架构的预训练模型就如雨后春笋般地出现了。其中最重要、影响…

vue+springboot登录与注册功能的实现

①首先写一个登录页面 <template> <div style"background-color: #42b983;display: flex;align-items: center;justify-content: center;height: 100vh"><div style"background-color: white;display: flex;width: 50%;height: 50%;overflow: h…

驶向未来:3D可视化模型重塑我们的道路认知

在科技的浪潮中&#xff0c;每一个革新都是对人类未来生活的深度洞察。而今&#xff0c;当可视化这一技术走进我们的视野&#xff0c;它不仅是一场视觉盛宴&#xff0c;更是一次对未来出行方式的全新探索。 一、从平面到立体&#xff0c;解锁道路新视角 你是否曾站在十字路口&…

NS安装-CentOS服务器安装Nightscout CGM

NS CGM 安装必要条件 有自己的云服务器好像没有2&#xff0c;有云服务器就行了 安装顺序 先安装数据库&#xff0c;目前支持的是 MongoDB &#xff0c;官方推荐4&#xff0c;其实目前最新版本就行。可以用宝塔安装&#xff0c;比较简单克隆代码&#xff0c;我是放到 /opt/ns…

PHP小程序 获取二维码

//获取token public function getAccessToken($appId,$appSecret) {// 请求API获取 access_token$url "https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credential&appid{$this->appId}&secret{$this->appSecret}";$result $this->g…

抖音关键词搜索爬虫,抖音API数据接口,抖音商品详情数据采集

抖音商品API接口抖音关键词搜索抖音直播间小黄车抖店商品数据采集 除了微博&#xff0c;小红书&#xff0c;抖音也是一个巨大的流量池。 除了评论&#xff0c;其实关键词搜索视频是更为常见的一个需求&#xff0c;于是上周末抽空开发了下&#xff0c;完成了 mvp。

MQTT协议-ISO标准下基于发布/订阅范式的消息协议

MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上&#xff0c;是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议&#xff0c;为此&#xff0c;它需要一个消息中间件 。 MQTT是一个…

【单链表反转】图文解析 链表反转

目录 例题描述&#x1f4a1; 思路一 &#xff08;推荐&#xff09; 代码实现 &#x1f4a1; 思路二 代码实现 引申1. 局部反转单链表2. k个一组反转链表 例题描述 反转一个链表 示例&#xff1a; 输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1-…

海外大带宽服务器连接失败:原因与解决策略

​随着全球互联网的发展&#xff0c;越来越多的企业和个人选择使用海外大带宽服务器来满足数据传输和业务需求。然而&#xff0c;在实际使用中&#xff0c;有时会出现服务器连接失败的问题。本文将为您分析原因并提供相应的解决策略。 一、海外大带宽服务器连接失败的原因 网络…

Java三大框架简介与比较

一、引言 在Java开发领域&#xff0c;三大框架——Spring、Hibernate和MyBatis&#xff0c;各自扮演着重要的角色。它们为开发者提供了不同的解决方案&#xff0c;使得开发者能够更高效地构建企业级应用。本文将分别介绍这三大框架的特点、优势以及适用场景&#xff0c;并对它…

PCL 计算点云AABB包围盒的体积

目录 一、AABB包围盒二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,原文链接。爬虫自重,把自己当个人。 一、AABB包围盒 AABB包围盒又称了 轴对齐包围盒,是点云包围盒里最简单的一种,其计算方法也极其简单。获取包围盒之后,根据包围盒的长宽高进行体积计算即…

MySQL性能分析1——查看频次

1、查看执行频次 查看当前数据库的INSERT,UPDATE,DELETE,SELECT的访问频次&#xff0c;得到当前数据库是以插入&#xff0c;更新和删除为主还是以查询为主&#xff0c;如果是以插入&#xff0c;更新和删除为主的话&#xff0c;那么优化比重可以轻一点儿。 语法&#xff1a; …

element-plus_message.js

message.js import { ElMessageBox, ElNotification } from "element-plus"; import { VNode } from "vue"; import { AxiosResponse } from "axios";let timeout; export default ({ title "确认", message, okEms, errMes, okText…

武汉融资融券利率最低目前是多少?4.5%!如何计算的?

融资融券利率是指证券公司提供的融资融券服务的费率&#xff0c;由证券公司根据市场行情情况而定&#xff0c;该费率由两部分组成&#xff0c;即融资利率和融券利率。目前市场上的融资利率最低一般是在4.5%~5%之间。 融资利率是指投资者从证券公司融资时需要按照利率支付一定的…

大路灯怎么选?五款顶级落地台灯揭秘,深度测评推荐!

现在很多家长都担心孩子的视力&#xff0c;其实孩子夜间的读写光源问题是家长很容易忽略的视力“隐形杀手”。许多家长都选择入手了大路灯来帮助孩子改善读写用眼时的光线环境&#xff0c;从而能够达到提高学习效率的同时还能够很好的保护眼睛视力&#xff0c;但随之照明市场的…

文件的版本管理

前提 现在在做一个在线生成文档的东西&#xff0c;就是用户填写的时候都是结构化的东西&#xff0c;不如单选框&#xff0c;多选框&#xff0c;富文本&#xff0c;图片之类的&#xff0c;最后要给用户生成文档或者ppt&#xff0c;或者pdf&#xff0c;然后要做一个版本对比的功…

代码随想录算法训练营第36天| 435. 无重叠区间、763.划分字母区间、56. 合并区间

435. 无重叠区间 完成 思路&#xff1a; 本题的贪心策略是&#xff0c;把区间按左端从小到大排序&#xff0c;当碰到重叠区间时&#xff0c;优先去掉右端更大的&#xff0c;减少后续重叠的可能。也可以理解为优先保留跨度更小的区间&#xff0c;跨度小的区间和其他区间重叠的可…

温湿度如何精准监测?教你一招秒速搞定!

随着科技的不断发展&#xff0c;温湿度监控系统在各个领域中变得越来越重要。为了满足不同行业的需求&#xff0c;温湿度监控系统不断创新和进化&#xff0c;提供更为精准、可靠的监测方案。 传统的温湿度监测手段已经无法满足当今复杂的需求&#xff0c;而现代的监控系统以其高…

备战蓝桥杯 Day6(学习动态规划)

引入 支付问题 假设有无限多的硬币&#xff0c;硬币面值为1,5,11。现在需要支付15元&#xff0c;问最少使用的硬币数&#xff1f; 贪心策略&#xff1a;1511*11*4&#xff0c;145 真正的答案153*5 3 dp的两个性质 最优子结构无后效性 dp的两大要素 1.状态2.状态转移方程 思路…

掘根宝典之C++包含对象的类,私有继承,保护继承,三大继承方式总结

包含对象成员的类 包含&#xff0c;组合和层次化&#xff1a;一个类里面的类成员之一是个类对象 我们来看个例子 #include<iostream> using namespace std; class AA { private:int a_; public:AA(int a):a_(a){}void A(){cout << a_ << endl;} }; class …