自己的项目使用到了百度地图api,我就论我使用到的部分进行说明。首先我们先了解几个网站http://lbsyun.baidu.com/   这是百度地图开放平台首页    http://lbsyun.baidu.com/index.php?title=jspopular/openlibrary   这是javascript对接百度地图api的首页        http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding  这是web服务的首页(包括地址解析和逆地址解析)  http://lbsyun.baidu.com/jsdemo.htm#i7_2  这是用js调用百度地图api示例的源码。   http://lbsyun.baidu.com/apiconsole/key   这是创建ak的网站。但是使用外国的地址解析时,需要付费。

接下来我们开始第一步,创建ak,我们要使用百度地图的api,首先得自己创一个ak(也就是密钥),不同的应用需要创建不同的ak。点击应用

因为我是用在浏览器上的,所以我选择浏览器端的应用类型,下面的启动服务介绍可以用哪些服务,我需要用js调用百度地图,所以这才是我所需要的,我们也可以从这里看出我们选的应用类型是否正确。

第二步,那就是研究我上面上传的几个网站,对于我的网站我只用到了地址解析和用js调用百度地图,就是输入详细地址,转换为地理坐标或者直接显示为地图。

这是一个案例网址   http://api.map.baidu.com/geocoder/v2/?address=北京市海淀区上地十街10号&output=json&ak=您的ak&callback=showLocation //GET请求,我们打开这个网址便能得到北京市海淀区上地十街10号的坐标,不过要换为自己的ak,所以我们通过改变address的参数就可以得到我们想要的坐标。下面为介绍的参数。

请求参数

参数名 参数含义 类型 举例 默认值 是否必须
address 待解析的地址。最多支持84个字节。
可以输入两种样式的值,分别是: 
1、标准的结构化地址信息,如北京市海淀区上地十街十号 【推荐,地址结构越完整,解析精度越高】
2、支持“*路与*路交叉口”描述方式,如北一环路和阜阳路的交叉路口
第二种方式并不总是有返回结果,只有当地址库中存在该地址描述时才有返回。
string 北京市海淀区上地十街10号
city 地址所在的城市名。用于指定上述地址所在的城市,当多个城市都有上述地址时,该参数起到过滤作用,但不限制坐标召回城市。 string 北京市
ret_coordtype 可选参数,添加后返回国测局经纬度坐标或百度米制坐标 坐标系说明 string gcj02ll(国测局坐标)、bd09mc(百度墨卡托坐标) bd09ll(百度经纬度坐标)
ak 用户申请注册的key,自v2开始参数修改为“ak”,之前版本参数为“key” 申请ak string  
sn 若用户所用ak的校验方式为sn校验时该参数必须 
sn生成
string  
output 输出格式为json或者xml string json或xml xml
callback 将json格式的返回值通过callback函数返回以实现jsonp功能 string callback=showLocation(JavaScript函数名)

返回结果参数

名称 含义 类型
status 返回结果状态值, 成功返回0,其他值请查看下方返回码状态表。 int
location 经纬度坐标 object
  lat 纬度值 float
  lng 经度值 float
precise 位置的附加信息,是否精确查找。1为精确查找,即准确打点;0为不精确,即模糊打点。 int
confidence 描述打点绝对精度(即坐标点的误差范围)。
confidence=100,解析误差绝对精度小于20m;
confidence≥90,解析误差绝对精度小于50m;
confidence≥80,解析误差绝对精度小于100m;
confidence≥75,解析误差绝对精度小于200m;
confidence≥70,解析误差绝对精度小于300m;
confidence≥60,解析误差绝对精度小于500m;
confidence≥50,解析误差绝对精度小于1000m;
confidence≥40,解析误差绝对精度小于2000m;
confidence≥30,解析误差绝对精度小于5000m;
confidence≥25,解析误差绝对精度小于8000m;
confidence≥20,解析误差绝对精度小于10000m;
int
comprehension 描述地址理解程度。分值范围0-100,分值越大,服务对地址理解程度越高(建议以该字段作为解析结果判断标准);
当comprehension值为以下值时,对应的准确率如下:
comprehension=100,解析误差100m内概率为91%,误差500m内概率为96%;
comprehension≥90,解析误差100m内概率为89%,误差500m内概率为96%;
comprehension≥80,解析误差100m内概率为88%,误差500m内概率为95%;
comprehension≥70,解析误差100m内概率为84%,误差500m内概率为93%;
comprehension≥60,解析误差100m内概率为81%,误差500m内概率为91%;
comprehension≥50,解析误差100m内概率为79%,误差500m内概率为90%;
//解析误差:地理编码服务解析地址得到的坐标位置,与地址对应的真实位置间的距离。
int
level 能精确理解的地址类型,包含:UNKNOWN、国家、省、城市、区县、乡镇、村庄、道路、地产小区、商务大厦、政府机构、交叉路口、商圈、生活服务、休闲娱乐、餐饮、宾馆、购物、金融、教育、医疗 、工业园区 、旅游景点 、汽车服务、火车站、长途汽车站、桥 、停车场/停车区、港口/码头、收费区/收费站、飞机场 、机场 、收费处/收费站 、加油站、绿地、门址 string

服务状态码

返回码 英文描述 定义 常见原因
0 ok 正常 服务请求正常召回
1   服务器内部错误  
2 Parameter Invalid 请求参数非法 必要参数拼写错误或漏传(如query和tag请求中均未传入)
3 Verify Failure 权限校验失败  
4 Quota Failure 配额校验失败 服务当日调用次数已超限,请前往API控制台提升(请优先进行开发者认证)
5 AK Failure ak不存在或者非法 未传入ak参数;ak已被删除(可前往回收站恢复);
101   服务禁用  
102   不通过白名单或者安全码不对  
2xx   无权限  
3xx   配额错误  

我在网上找了个例子,网址名忘记了,不过就是jar包错误,我后面找到了对的,在使用j'son攻击类的时候,我们依赖阿里巴巴的一个jar包即可使用,名字叫做fastjson,网上有很多关于它的教程与介绍。下面我们介绍通过java获取坐标系的方法。

导入maven依赖:

<dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.5</version></dependency><dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.3</version></dependency><dependency><groupId>commons-collections</groupId><artifactId>commons-collections</artifactId><version>3.2.2</version></dependency><dependency><groupId>com.vaadin.external.google</groupId><artifactId>android-json</artifactId><version>RELEASE</version><scope>compile</scope></dependency>
<!--使用json的工具类,由阿里巴巴开发的工具包--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.57</version></dependency>

第二步,给前端的bean


import java.io.Serializable;/*** 测试java与百度api结合一起,通过地址取得经纬度返回的json类*/
public class BaseResponse implements Serializable{private String data;private Boolean Success;private String ErrorMsg;public String getData() {return data;}public void setData(String data) {this.data = data;}public Boolean getSuccess() {return Success;}public void setSuccess(Boolean success) {Success = success;}public String getErrorMsg() {return ErrorMsg;}public void setErrorMsg(String errorMsg) {ErrorMsg = errorMsg;}@Overridepublic String toString() {return "BaseResponse{" +"data='" + data + '\'' +", Success=" + Success +", ErrorMsg='" + ErrorMsg + '\'' +'}';}
}

自己的controller类:

//根据地名获取经纬度public  String loadJSON(String url) {StringBuilder json = new StringBuilder();try {log.info("11-2");URL oracle = new URL(url);URLConnection yc = oracle.openConnection();BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream(), "UTF-8"));String inputLine = null;while ((inputLine = in.readLine()) != null) {json.append(inputLine);}in.close();} catch (MalformedURLException e) {} catch (IOException e) {}return json.toString();}//返回值@GetMapping("/getCoordinate")@ResponseBodypublic BaseResponse  getCoordinate(String address) {BaseResponse response = new BaseResponse();log.info("1");try{log.info("2");if (address != null && !"".equals(address)) {log.info("3");address = address.replaceAll("\\s*", "").replace("#", "栋");String url = "http://api.map.baidu.com/geocoder/v2/?address=" + address + "&output=json&ak=Iyv2Gax3s1PF0PR4DtvToePapxIOuj1Y";String json = loadJSON(url);log.info("json:{}",json);if (json != null && !"".equals(json)) {com.alibaba.fastjson.JSONObject obj = JSON.parseObject(json);if ("0".equals(obj.getString("status"))) {//log.info(String.valueOf(obj.getJSONObject("result").getJSONObject("location").getDouble("lng")));double lng = obj.getJSONObject("result").getJSONObject("location").getDouble("lng"); // 经度log.info(String.valueOf(lng));double lat = obj.getJSONObject("result").getJSONObject("location").getDouble("lat"); // 纬度/*这个是固定小数位,这里固定了7位小数,返回结果为40.057339DecimalFormat df = new DecimalFormat("#.######");String lng1 = df.format(lng);String lat1 = df.format(lat);*/response.setData("经度:"+lng+"纬度:"+lat);response.setSuccess(true);return response;}}}}catch (Exception e){response.setErrorMsg("无网络");}return response;}

第三步:其实第二步和第三步可以自己随便选一种,看自己的需求。可以直接通过传入地址或者传入经纬度就可以得到自己想要的地图,这个在官网上有源码,这个是使用地址解析,将北京市海淀区上地10街换成其他地址,并输入自己的ak密钥即可显示地图。

<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="viewport" content="initial-scale=1.0, user-scalable=no" /><style type="text/css">body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}</style><script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script><title>地址解析</title>
</head>
<body><div id="allmap"></div>
</body>
</html>
<script type="text/javascript">// 百度地图API功能var map = new BMap.Map("allmap");var point = new BMap.Point(116.331398,39.897445);map.centerAndZoom(point,12);// 创建地址解析器实例var myGeo = new BMap.Geocoder();// 将地址解析结果显示在地图上,并调整地图视野myGeo.getPoint("北京市海淀区上地10街", function(point){if (point) {map.centerAndZoom(point, 16);map.addOverlay(new BMap.Marker(point));}else{alert("您选择地址没有解析到结果!");}}, "北京市");map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
</script>

因为自己也是刚使用百度地图api,所以有很多东西还是不是很清楚,以后有机会再慢慢改。

百度api使用方法(java、js)相关推荐

  1. python爬虫接口_python爬虫之百度API调用方法

    调用百度API获取经纬度信息. import requests import json address = input('请输入地点:') par = {'address': address, 'ke ...

  2. 调用百度API写了一个js翻译小工具

    目前还未完成的功能有:textarea高度自适应,移动端与pc端都写了. 效果如图: html: <!DOCTYPE html> <html lang="en"& ...

  3. html小工具在线翻译,调用百度API写了一个js翻译小工具

    目前还未完成的功能有:textarea高度自适应,移动端与pc端都写了. 效果如图: html: js翻译工具 textarea:disabled{ background-color: #fff; } ...

  4. https网站 支持百度API解决方法

    原来https站点调用只要加一个参数s=1就行了,修改后调用的地址应该为https://api.map.baidu.com/api?v=2.0&ak=ZUO苏打粉倒萨发送ds &s=1

  5. 调用百度api制作旅游轨迹图

    旅游路线图 一.序言 二.资料准备 三.源代码 四.运行效果 五.结语 一.序言 毕业后带着我的小可爱一起去东北游玩了一趟,后面还跟她一起去河南很多景点玩了一趟,想要将我们的行程通过可视化的方法展现出 ...

  6. opencv+python机读卡识别(四)百度API进行数字识别

    2019独角兽企业重金招聘Python工程师标准>>> 第一部分预处理:https://my.oschina.net/u/3268732/blog/1236298 第二部分图像切割: ...

  7. 假期之不务正业—— Qt+FFmpeg+百度api进行视频的语音识别

    假期之不务正业--Qt+FFmpeg+百度api进行视频的语音识别 一.前言 二.FFmpeg进行音频提取和重采样 三.对音频分段 四.百度api调用 五.Qt编程的一些补充 六.结语 一.前言 现在 ...

  8. java+js实现人脸识别-基于百度api

    java+js实现人脸识别-基于百度api 我的第一次分享 第一步-我们了解下实现的思路 代码部分:1.js代码 2.后台代码 3.如何使用百度大脑 4.如何使用 navigator.mediaDev ...

  9. php调用百度接口获取经纬度,利用百度API(js),通过地址获取经纬度的注意事项...

    网上给的很多答案都是这种: http://api.map.baidu.com/geocoder?address=地址&output=输出格式类型&key=用户密钥&city=城 ...

最新文章

  1. 【图文详解】JAVA中的转义字符
  2. 2-4 测试案例helloWorld
  3. 获取上传图片的大小 php,thinkphp5 获取上传图片的大小和信息
  4. Python 数据分析三剑客之 NumPy(一):理解 NumPy / 数组基础
  5. 做对三件事,你也能像聪明人一样高速成长!【文末有福利】
  6. 哪吒:猪八戒十年DevOps演进之路
  7. OpenState之 Mac学习 实验
  8. 根据标准word模板生成word文档类库(开源)
  9. SQL Server 2005 中行号的显示,分页
  10. 原创:使用脚本获取本机IP地址
  11. 用glew,glfw实现的opengl 学习笔记2画一个四方形
  12. 发那科服务器显示021,发那科(FANUC)系统报警代码大全
  13. Revit二次开发记录
  14. JAVA计算机毕业设计大学生旅游拼团网站Mybatis+源码+数据库+lw文档+系统+调试部署
  15. MATLAB求余运算
  16. 英语听力计算机教室,每日英语听力电脑版|每日英语听力 v9.2.0 PC客户端
  17. 计算机启动黑屏时间很长,win10开机后黑屏时间很长且进不了安全模式怎么解决?...
  18. Linux的关键字搜索
  19. 画图形表格用ECharts
  20. C#winform TreeView编程

热门文章

  1. 刚过去的520,大家都在送什么礼物,Python用可视化图告诉你
  2. 查询平均工资最低的部门信息
  3. 南昌理工学院计算机系考研,南昌理工学院与华东交通大学联合培养硕士研究生...
  4. 解决电脑wlan被禁用无法再启动的办法.
  5. 大脑52分区功能及位置_位置功能
  6. 蓝桥杯官网 试题 PREV-61 历届真题 装饰珠【第十一届】【决赛】【研究生组】【C++】【C】【Java】【Python】四种解法
  7. python连接打印机打印收据单_使用python打印收据
  8. 打开UG10 C语言错误,UG打开prt文件UTF8归档报错:部件已以UTF8模式归档,但NX运行
  9. 容器云平台使用体验:DaoCloud
  10. python大数据培训班学费