Java编程获取经纬度之间距离的方法
本文实例讲述了Java编程获取经纬度之间距离的方法。分享给大家供大家参考,具体如下:
public class GeoUtil { /** * 根据经纬度和距离返回一个矩形范围 * * @param lng * 经度 * @param lat * 纬度 * @param distance * 距离(单位为米) * @return [lng1,lat1, lng2,lat2] 矩形的左下角(lng1,lat1)和右上角(lng2,lat2) */ public static double[] getRectangle(double lng, double lat, long distance) { float delta = 111000; if (lng != 0 && lat != 0) { double lng1 = lng - distance / Math.abs(Math.cos(Math.toRadians(lat)) * delta); double lng2 = lng + distance / Math.abs(Math.cos(Math.toRadians(lat)) * delta); double lat1 = lat - (distance / delta); double lat2 = lat + (distance / delta); return new double[] { lng1, lat1, lng2, lat2 }; } else { // TODO ZHCH 等于0时的计算公式 double lng1 = lng - distance / delta; double lng2 = lng + distance / delta; double lat1 = lat - (distance / delta); double lat2 = lat + (distance / delta); return new double[] { lng1, lat1, lng2, lat2 }; } } /** * 得到两点间的距离 米 * * @param lat1 * @param lng1 * @param lat2 * @param lng2 * @return */ public static double getDistanceOfMeter(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 * 10000) / 10; return s; } private static double rad(double d) { return d * Math.PI / 180.0; } /** * 地球半径:6378.137KM */ private static double EARTH_RADIUS = 6378.137; }
希望本文所述对大家Java程序设计有所帮助。
相关推荐
-
java实现简单的计算器类实例
本文实例讲述了java实现简单的计算器类.分享给大家供大家参考.具体如下: package chap; import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text
-
Java简易计算器程序设计
编写一个模拟计算器的应用程序,使用面板和网格布局, 添加一个文本框,10个数字按钮(0~9),4个加减乘除按钮, 一个等号按钮,一个清除按钮,一个求平方根按钮,一个退格按钮, 要求将计算公式和结果显示在文本框中,实现效果如下图所示. Java简易计算器代码: import javax.swing.*; import javax.swing.JTextField; import java.awt.*; import java.awt.event.*; import java.lang.*; imp
-
Java数据结构及算法实例:快速计算二进制数中1的个数(Fast Bit Counting)
/** * 快速计算二进制数中1的个数(Fast Bit Counting) * 该算法的思想如下: * 每次将该数与该数减一后的数值相与,从而将最右边的一位1消掉 * 直到该数为0 * 中间循环的次数即为其中1的个数 * 例如给定"10100",减一后为"10011",相与为"10000",这样就消掉最右边的1 * Sparse Ones and Dense Ones were first described by Peter Wegner i
-
地址到经纬度坐标转化的JAVA代码
任务:有1000多条门店信息(放在excel中,包括地址,店名,电话等,但是没有经纬度坐标),老大让我用地址通过百度地图拾取坐标系统找到相应的坐标,然后加上坐标后更新到公司的数据库. 失败的方案:1.使用按键精灵,按键精灵是一个模仿键盘鼠标操作的软件,用来写动作脚本的,由于时间紧,没怎么研究,因为整套动作太复杂了按键精灵尝试了下不行就放弃了. 2.表单填充工具(就是把exel表格批量提交到网页),什么风越.乌溜漆(特别是这乌溜漆,还要钱,坑货)都尝试了下,结果都不满意.因为我要把excel中的内
-
Java中计算时间差的方法
本文实例讲述了Java中计算时间差的方法.分享给大家供大家参考.具体如下: 假设现在是2004-03-26 13:31:40 过去是:2004-01-02 11:30:24 要获得两个日期差,差的形式为:XX天XX小时XX分XX秒 方法一: DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date d1 = df.parse("2004-03-26 13:31:40"); Date
-
Java算法之递归算法计算阶乘
本文为大家分享的java算法计算阶乘,在学习Java课程时经常会遇到求阶乘问题,今天接跟大家一起探讨一下 代码如下: package com.xu.main; import java.util.Scanner; public class P9 { static long fact(int n) { if(n <= 1) { return 1; } else { return n * fact(n - 1); } } public static void main(String[] args) {
-
java实现计算地理坐标之间的距离
java实现计算两经纬度点之间的距离,直接上代码,具体解释请参考注释 复制代码 代码如下: package com.jttx.poi.utils; import com.jttx.poi.entity.Point; /** * Created by louis on 2014/9/2. */ public class GeoUtils { /** * 计算两经纬度点之间的距离(单位:米) * @param lng1 经度 * @param lat1
-
java计算时间差的方法
本文实例讲述了java计算时间差的方法.分享给大家供大家参考.具体如下: /** * 计算时间差 * @param begin * @param end * @return 返回格式,"hh:mm:ss" */ public String getTimeDifference(Date begin,Date end) { long between=(end.getTime()-begin.getTime())/1000; //除以1000是为了转换成秒 long hour=between
-
Java实现计算一个月有多少天和多少周
import java.util.Calendar; /** * 功能概述:计算指定年月的天数和周数<br> * 创建时间:2010-5-17 下午05:25:58<br> * */ public class Test{ public static void main(String[] args) { Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, 2010); // 2010年 c.set(Calendar.MO
-
Java编程获取经纬度之间距离的方法
本文实例讲述了Java编程获取经纬度之间距离的方法.分享给大家供大家参考,具体如下: public class GeoUtil { /** * 根据经纬度和距离返回一个矩形范围 * * @param lng * 经度 * @param lat * 纬度 * @param distance * 距离(单位为米) * @return [lng1,lat1, lng2,lat2] 矩形的左下角(lng1,lat1)和右上角(lng2,lat2) */ public static double[] ge
-
Java编程获取当前屏幕分辨率的方法示例
本文实例讲述了Java编程获取当前屏幕分辨率的方法.分享给大家供大家参考,具体如下: /** * This class implements the functionality of fetching the size of the screen */ package com.leo.util; /** * @author Leo Share * @since 07/16/2007 * @version 1.0 */ class ScreenSize{ private int screenWid
-
golang与php实现计算两个经纬度之间距离的方法
本文实例讲述了golang与php实现计算两个经纬度之间距离的方法.分享给大家供大家参考,具体如下: golang版本: 复制代码 代码如下: package main import ( "fmt" "math" ) func main() { lat1 := 29.490295 lng1 := 106.486654 lat2 := 29.615467 lng2 := 106.581515 fmt.Printl
-
Java编程获取文件列表及子文件目录的方法(非递归)
废话不谈,直接进入正题,理解见代码注释. // 非递归 public List<String> scanFiles(String path) { List<String>filePaths = new ArrayList<String>(); LinkedList<File> list = new LinkedList<File>(); File dir = new File(path); File[] file = dir.listFiles(
-
java获取日期之间天数的方法
本文实例讲述了java获取日期之间天数的方法.分享给大家供大家参考.具体实现方法如下: private int daysBetween(Date now, Date returnDate) { Calendar cNow = Calendar.getInstance(); Calendar cReturnDate = Calendar.getInstance(); cNow.setTime(now); cReturnDate.setTime(returnDate); setTimeToMidni
-
Java编程实现调用com操作Word方法实例代码
实例代码如下: import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; import com.jacob.com.Variant; /** * jacob操作MSword类 * @author */ public class WordBean { // word文档 private Dispatch doc; // word运行程序对象 private ActiveXComponent word; //
-
php实现计算百度地图坐标之间距离的方法
本文实例讲述了php实现计算百度地图坐标之间距离的方法.分享给大家供大家参考,具体如下: 下面是网上的代码,使用的时候需要进行些许修改 第一个函数是获得范围,参数为纬度经度半径 第二个函数是计算坐标距离 <?php define('PI',3.1415926535898); define('EARTH_RADIUS',6378.137); //计算范围,可以做搜索用户 function GetRange($lat,$lon,$raidus){ //计算纬度 $degree = (24901 *
-
Java 批量获取地址间距离工具(支持中转站)
目录 1获取两个地址间距离 2起始点.中转点.终点距离实现 3导出Excel文件 4封装成客户端工具 1获取两个地址间距离 获取两个地址间距离,实现方式比较多,例如基于百度地图api,高德地图api,下面基于高德地图api实现,代码如下: private static String getLonLat(String address)throws Exception{ //返回输入地址address的经纬度信息, 格式是 经度,纬度 String address2 = URLEncoder.enc
-
JAVA编程实现UDP网络通讯的方法示例
本文实例讲述了JAVA编程实现UDP网络通讯的方法.分享给大家供大家参考,具体如下: UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议. 在OSI模型中,在第四层--传输层,处于IP协议的上一层.UDP有不提供数据包分组.组装和不能对数据包进行排序的缺点: 也就是说,当报文发送之后,是无法得知其是否安全完整到达的.UDP用来支持那些需要在计算机之间传输数据的网络应用. 采用UDP协议要先把数据定义成数据报(Datagram)并在数据报中指明数据所要达到
-
Java编程调用微信支付功能的方法详解
本文实例讲述了Java编程调用微信支付功能的方法.分享给大家供大家参考,具体如下: 微信开发文档地址:https://mp.weixin.qq.com/wiki/home/ 从调用处开始 我的流程: 1.点击"支付"按钮,去后台 --> 2.后台生成支付所需数据返回页面 --> 3.页面点击"确认支付"调用微信支付js.完成支付功能. 支付按钮 <div class="button" id="pay" onc
随机推荐
- Jquery+asp.net后台数据传到前台js进行解析的方法
- 【MyBatis源码全面解析】MyBatis一二级缓存介绍
- php 备份数据库代码(生成word,excel,json,xml,sql)
- 关于Openfire集群源码的分析
- mongodb操作的模块手动封装
- js 判断控件获得焦点的示例代码
- php获取本周开始日期和结束日期的方法
- pymongo实现多结果进行多列排序的方法
- Django中实现点击图片链接强制直接下载的方法
- BootStrap数据表格实例代码
- 初步介绍PHP扩展开发经验分享
- python实现通过pil模块对图片格式进行转换的方法
- C++多重继承与虚继承分析
- Android仿外卖购物车功能
- Android 7.0中新签名对多渠道打包的影响详解
- PHP中的float类型使用说明
- js文本框走动跑马灯效果代码分享
- javascript 播放器 控制
- jQuery maxlength文本字数限制插件
- 图文介绍PHP添加Redis模块及连接