博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 百度地图 距离_通过百度地图API获取经纬度以及两点间距离
阅读量:5732 次
发布时间:2019-06-18

本文共 4791 字,大约阅读时间需要 15 分钟。

package com.baidumap;

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 org.springframework.util.StringUtils;

import com.sankai.zhcloud.util.entity.LatitudeAndLongitude;

import net.sf.json.JSONObject;

public class LngAndLatUtil {

/**

* 根据地址获得经纬度

*/

public static LatitudeAndLongitude getLngAndLat(String address) {

LatitudeAndLongitude latAndLng = new LatitudeAndLongitude();

String url = "http://api.map.baidu.com/geocoder/v2/?address=" + address + "&output=json&ak=自己注册的ak值";

String json = loadJSON(url);

if (StringUtils.isEmpty(json)) {

return latAndLng;

}

int len = json.length();

// 如果不是合法的json格式

if (json.indexOf("{") != 0 || json.lastIndexOf("}") != len - 1) {

return latAndLng;

}

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");

latAndLng.setLatitude(lat);

latAndLng.setLongitude(lng);

}

return latAndLng;

}

public static String loadJSON(String url) {

StringBuilder json = new StringBuilder();

try {

URL urlObj = new URL(url);

URLConnection uc = urlObj.openConnection();

BufferedReader br = new BufferedReader(new InputStreamReader(uc.getInputStream()));

String inputLine = null;

while ((inputLine = br.readLine()) != null) {

json.append(inputLine);

}

br.close();

} catch (MalformedURLException e) {

} catch (IOException e) {

}

return json.toString();

}

/**

* 测试方法 说明:把代码中的ak值(红色字部分)更改为你自己的ak值,在百度地图API中注册一下就有。

* 百度路径:http://lbsyun.baidu.com/index.php?title=webapi/guide/changeposition

*/

public static void main(String[] args) {

LatitudeAndLongitude latAndLng = LngAndLatUtil.getLngAndLat("天安门");

System.out.println("经度:" + latAndLng.getLongitude() + "---纬度:" + latAndLng.getLatitude());

}

/**

* 补充:计算两点之间真实距离

* @return 米

*/

public static double getDistance(double longitude1, double latitude1, double longitude2, double latitude2) {

// 维度

double lat1 = (Math.PI / 180) * latitude1;

double lat2 = (Math.PI / 180) * latitude2;

// 经度

double lon1 = (Math.PI / 180) * longitude1;

double lon2 = (Math.PI / 180) * longitude2;

// 地球半径

double R = 6371;

// 两点间距离 km,如果想要米的话,结果*1000就可以了

double d = Math.acos(Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1)) * R;

return d * 1000;

}

}

Python 读取照片的信息:拍摄时间、拍摄设备、经纬度等,以及根据经纬度通过百度地图API获取位置

通过第三方库exifread读取照片信息.exifread官网:https://pypi.org/project/ExifRead/ 一.安装exifreadpip install exifread ...

HTML5调用百度地图API获取当前位置并直接导航目的地的方法

批量调用百度地图API获取地址经纬度坐标

1 申请密匙 注册百度地图API:http://lbsyun.baidu.com/index.php?title=webapi 点击左侧 “获取密匙” ,经过填写个人信息.邮箱注册等,成功之后在开放平 ...

[WPF] 浏览百度地图并获取经纬度地址信息

项目中需要利用登记的区域和地址在百度地图上定位,并获取该地址的经纬度. 本次功能对我来说主要难点如下:1.百度地图API的基本使用方法,请首选使用百度地图的JavaScript大众版(PS:之前使用W ...

JS 通过选择百度地图地址获取经纬度自动填充到文本框中的方法

首先要注册百度地图API. 1.登录百度地图开放平台http://lbsyun.baidu.com 注册账号,完善信息,点击网站右上角的“API控制台”,点击,创建应用. 应用类型选择:“浏览器端”, ...

PhoneGap Geolocation结合百度地图api获取地理位置api

一.使用百度地图API 1.地址:http://developer.baidu.com/map/ 2.在js DEMO中获取反地址解析的DEMO 3.修改这个DEMO的密钥,去创建应用就能创建密钥,然 ...

百度地图API获取数据

目前,大厂的服务范围越来越广,提供的数据信息也是比较全的,在生活服务,办公领域,人工智能等方面都全面覆盖,相对来说,他们的用户基数大,通过用户获取的信息也是巨大的.除了百度提供api,国内提供免费AP ...

java 基于百度地图API GPS经纬度解析地址

首先这是百度地图api 的接口地址,基于接口的参数,不过多介绍,其中都提供相应的介绍: http://lbsyun.baidu.com/index.php?title=webapi/guide/web ...

随机推荐

写了个项目 Web-Rtmp: 使用 WebSocket 在网页上播放 RTMP 直播流

http://neue.v2ex.com/t/316766 虽说浏览器里用 js 解码'播放'视频的方案已经有几个了... 为什么不再多一个呢... 基本原理: 服务端使用 websockify 中转 ...

Linux-read命令

转自:http://man.linuxde.net/read read命令 read命令从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合. 该命令可以一次读取多个变量的值,变量和输入的 ...

keepalived+mysql实现双主高可用

环境: DB1:centos6.8.mysql5.5.192.168.2.204  hostname:bogon DB2:centos6.8.mysql5.5.192.168.2.205  hostn ...

oracle数据库常用查询

一.数据库信息 1.数据库时间 select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') AS dbtime from dual; 2.主机OS类型 SELEC ...

css实现背景颜色线性渐变

http://www.qttc.net/201304316.html http://www.ruanyifeng.com/blog/2008/05/css_background_image_posit ...

C#项目实例中读取并修改App.config文件

C#项目是指一系列独特的.复杂的并相互关联的活动,这些活动有着一个明确的目标或目的,必须在特定的时间.预算.资源限定内,依据规范完成.项目参数包括项目范围.质量.成本.时间.资源. 1. 向C#项目实 ...

Swift URL Schemes使用

URL Schemes通常用于分享和第三方登录,但有时需要在html跳至APP,或者APP跳至另外一个APP.这时也需要使用URL Schemes. 一.html跳转至APP eg:html跳转至te ...

移除Sourcesafe与VC6的绑定

整理日: 2015年2月16日 HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Source Control\Disabled

Java Collection 集合类大小调整带来的性能消耗

Java Collection类的某些详细实现因为底层数据存储基于数组,随着元素数量的添加,调整大小的代价非常大.随着Collection元素增长到某个上限,调整其大小可能出现性能问题. 当Colle ...

[LeetCode]题解(python):099-Recover Binary Search Tree

题目来源: https://leetcode.com/problems/recover-binary-search-tree/ 题意分析: 二叉搜索树中有两个点错了位置,恢复这棵树. 题目思路: 如果 ...

转载地址:http://oxowx.baihongyu.com/

你可能感兴趣的文章
Git 方法
查看>>
[Python] numpy.nonzero
查看>>
2016-11-29
查看>>
C#反射的坑
查看>>
css3 box-shadow阴影(外阴影与外发光)讲解
查看>>
时间助理 时之助
查看>>
nginx快速安装
查看>>
自定义转场动画
查看>>
英国征召前黑客组建“网络兵团”
查看>>
Silverlight 2.5D RPG游戏“.NET技术”技巧与特效处理:(十二)魔法系统
查看>>
[NPM] Run npm scripts in series
查看>>
vs2013修改书签(vs书签文件位置)
查看>>
BZOJ 1923: [Sdoi2010]外星千足虫 [高斯消元XOR]
查看>>
C语言学习笔记
查看>>
PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...
查看>>
PS 如何使用液化工具给人物减肥
查看>>
cvc-complex-type.2.4.c: The matching wildcard...
查看>>
android 读取json数据(遍历JSONObject和JSONArray)
查看>>
pyjamas build AJAX apps in Python (like Google did for Java)
查看>>
<JavaScript语言精粹>-读书笔记(一)
查看>>