java 地图api接口_Java调用百度地图API
本实战代码将使用百度地图的接口来实现以下功能:
1.确定输入地址的坐标
2.两个坐标的距离
其他的话,还要使用百度账户申请相关的api,具体见:
http://lbsyun.baidu.com/index.php?title=webapi
示例代码:
import com.alibaba.fastjson.JSON;
import com.google.common.collect.ImmutableMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.client.fluent.Request;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.Map;
/**
* 百度地图api接口调用
*/
@Service("geocodingService")
@Transactional
public class GeocodingService {
private static final Logger LOG = LoggerFactory.getLogger(GeocodingService.class);
private static final Double PI = Math.PI;
private static final Double PK = 180 / PI;
private static final String MAP_URL= "http://api.map.baidu.com/geocoder/v2/?ak=4rcKAZKG9OIl0wDkICSLx8BA&output=json&address=";
/**
* 根据地址获取经纬度
* @param address
* @return
*/
private Map getLatAndLngByAddress(String address){
Map poiMap = null;
String result = null;
try {
result = Request.Get(MAP_URL+ address)
.connectTimeout(1000).socketTimeout(1000)
.execute().returnContent().asString();
} catch (IOException e) {
LOG.error("调用百度地图API获取{}的经纬度,抛错{}",address,e);
}
if (StringUtils.isNotBlank(result) && "0".equals(JSON.parseObject(result).get("status") + "")){
String lat = result.substring(result.indexOf("\"lat\":")
+ ("\"lat\":").length(), result.indexOf("},\"precise\""));
String lng = result.substring(result.indexOf("\"lng\":")
+ ("\"lng\":").length(), result.indexOf(",\"lat\""));
poiMap = ImmutableMap.of("lat",Double.parseDouble(lat),"lng",Double.parseDouble(lng));
}
return poiMap;
}
/**
* 计算两个地址的距离(米)
* @param address
* @param otherAddress
* @return
*/
public Double getDistanceFromTwoPlaces(String address,String otherAddress){
Double distance = null;
if (StringUtils.isNotBlank(address) && StringUtils.isNotBlank(otherAddress)){
address = address.trim();
otherAddress = otherAddress.trim();
if (address.equals(otherAddress)){
return 0.0d;
}
Map pointA = getLatAndLngByAddress(address);
Map pointB = getLatAndLngByAddress(otherAddress);
distance = getDistanceFromTwoPoints(pointA,pointB);
}
return distance;
}
/**
* 获取两个经纬度之间的距离(单位:米)
* @param pointA
* @param pointB
* @return
*/
private Double getDistanceFromTwoPoints(Map pointA, Map pointB) {
Double distance = null;
if (pointA != null && !pointA.isEmpty() && pointB != null && !pointB.isEmpty()){
double lat_a = (double) pointA.get("lat");
double lng_a = (double) pointA.get("lng");
double lat_b = (double) pointB.get("lat");
double lng_b = (double) pointB.get("lng");
if (lat_a == lat_b && lng_a == lng_b){
return 0.0d;
}
double t1 = Math.cos(lat_a / PK) * Math.cos(lng_a / PK) * Math.cos(lat_b / PK) * Math.cos(lng_b / PK);
double t2 = Math.cos(lat_a / PK) * Math.sin(lng_a / PK) * Math.cos(lat_b / PK) * Math.sin(lng_b / PK);
double t3 = Math.sin(lat_a / PK) * Math.sin(lat_b / PK);
double tt = Math.acos(t1 + t2 + t3);
distance = 6366000 * tt;
}
return distance;
}
}
http://blog.csdn.net/u013142781/article/details/47085369
java 地图api接口_Java调用百度地图API相关推荐
- APICloud,内置API及url调用百度地图导航
内置API及url调用百度地图APP导航 方法中的两个参数,为自己当前位置的经纬度 function arouseMap(lon,lat){var location = $api.getStorage ...
- python调用百度地图实现导航_python调用百度地图WEB服务API获取地点对应坐标值
本篇博客介绍如何使用Python调用百度地图WEB服务API获取地点对应坐标值,现有一系列结构化地址数据(如:北京市海淀区上地十街十号),目的是获取对应坐标值. 百度地图开发者平台路线规划使用说明网址 ...
- 百度地图AK申请注意+百度地图API生成热力图+调用百度地图API自动获取经纬度和地址
文章目录 一.百度地图AK密钥申请 二.调用百度地图API生成热力图 三.调用百度地图API自动获取经纬度和地址 一.百度地图AK密钥申请 点击百度地图API控制台,输入登录账户,即可进入,若账户未完 ...
- android h5调用百度地图,h5页面如何调用百度地图获取当前位置(代码)
本篇文章给大家带来的内容是关于h5页面如何调用百度地图获取当前位置(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在项目中越来越多的用到了手机的GRS定位功能,使用百度地图A ...
- python百度翻译接口_python3 调用百度翻译API翻译英文
自行申请百度开发者账号import importlib,sys,urllib importlib.reload(sys) import urllib.request import json #导入js ...
- python创建api接口_Python调用飞书API接口
知乎文章若有排版问题请见谅,原文放在个人博客中[欢迎互踩!] 写在最前 飞书作为一款高效远程办公软件,在疫情期间凭借着人性化的UI交互以及稳定的远程联络能力深得各大企业的偏好.但在创建团队之初,难免遇 ...
- php 百度地图api获取经纬度,调用百度地图API接口获取地铁站的经纬度信息
今天我们来看一下,如何通过百地图API来获取地点的经纬度.首先百度地图提供了强大的API接口,我们可以通过调用它来实现目的.这是网址:https://lbsyun.baidu.com/.首先想要调用A ...
- python调用百度地图api定位_python 调用百度地图地点检索webAPI
百度地图提供了开放的API,使用方法 右上角登陆账号 -> 点击"获取密钥" -> "创建应用" -> 填写应用名称&白名单IP -& ...
- html利用百度地图查找路线,html调用百度地图API实现查找路线
有时候做企业网站经常用到指引地图.用默认的吧,样式可能又不太符合主题,所以就有了下面这个版本. 基于百度官方demo样式修改,改得不好请轻喷.我看过有的是直接打开页面就定位个地址然后跳转搜索路线,我觉 ...
最新文章
- java 设计原则_【无尽的编程之路】(java)-设计模式六大原则
- postgre 没有主键自增ma_PostgreSQL 主键自增解决方案
- 江西财经计算机应用杨教授,江西财经大学信息管理学院研究生导师介绍:刘德喜...
- DS实验题 Inversion
- matlab练习程序(各向异性扩散)
- 安装cloudermanager时出现Acquiring installation lock问题(图文详解)
- java回调函数 final_java中带回调函数的字符串替换,类似js中的replace(rgExp,function)...
- Eclipse如何添加Maven的scala支持
- 宝岛探险1(DFS)
- linux学习笔记:如何更改文件属性?
- css:style样式
- speedoffice(word)如何批量让字体大一号
- IIS服务器重启三种方法
- windows服务器虚拟机 全屏,win7虚拟机的安装|vmware中win7虚拟机怎么设置全屏显示...
- 服装店管理软件排名,让你选对是关键
- 正则表达式:回车和换行的区别
- Kali Linux 安装Nvidia显卡驱动(二)CUDA, Pyrit and Cpyrit-cuda
- C++ 内存管理 - primitives - 侯捷
- 【C语言】用1,2,3,4四个数字组成不相同并且没有相同数字的三位数
- windows7 命令行关机/重启