- 浏览: 253355 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
aaddsfdsfsdfs:
var map = new AMap.Map('contain ...
【map】使用高德地图显示地图轨迹 -
di1984HIT:
xiang
【linux】使用bind进行DNS配置 -
di1984HIT:
分别算么??
【java】改写js百度地图测距方法 -
di1984HIT:
不错不错。。
【LBS】使用高德地图实现轨迹路线 -
di1984HIT:
不好用啊???
【map】使用高德地图显示地图轨迹
百度地图测距js代码:
大概方法即以上方法。这里对方法进行改写。
写成java形式
传入参数为list。先算出两点之间的距离。然后进行累加。
如现在有3个点,那么先算1,2距离,然后算2,3距离。相加即得到结果。
以下是验证:
var EARTHRADIUS = 6370996.81; /** * 将度转化为弧度 * @param {degree} Number 度 * @returns {Number} 弧度 */ GeoUtils.degreeToRad = function(degree){ return Math.PI * degree/180; } /** * 将弧度转化为度 * @param {radian} Number 弧度 * @returns {Number} 度 */ GeoUtils.radToDegree = function(rad){ return (180 * rad) / Math.PI; } /** * 将v值限定在a,b之间,纬度使用 */ function _getRange(v, a, b){ if(a != null){ v = Math.max(v, a); } if(b != null){ v = Math.min(v, b); } return v; } /** * 将v值限定在a,b之间,经度使用 */ function _getLoop(v, a, b){ while( v > b){ v -= b - a } while(v < a){ v += b - a } return v; } /** * 计算两点之间的距离,两点坐标必须为经纬度 * @param {point1} Point 点对象 * @param {point2} Point 点对象 * @returns {Number} 两点之间距离,单位为米 */ GeoUtils.getDistance = function(point1, point2){ //判断类型 if(!(point1 instanceof BMap.Point) || !(point2 instanceof BMap.Point)){ return 0; } point1.lng = _getLoop(point1.lng, -180, 180); point1.lat = _getRange(point1.lat, -74, 74); point2.lng = point2.lat = _getRange(point2.lat, -74, 74); var x1, x2, y1, y2; x1 = GeoUtils.degreeToRad(point1.lng); y1 = GeoUtils.degreeToRad(point1.lat); x2 = GeoUtils.degreeToRad(point2.lng); y2 = GeoUtils.degreeToRad(point2.lat); return EARTHRADIUS * Math.acos((Math.sin(y1) * Math.sin(y2) + Math.cos(y1) * Math.cos(y2) * Math.cos(x2 - x1))); } /** * 计算折线或者点数组的长度 * @param {Polyline|Array<Point>} polyline 折线对象或者点数组 * @returns {Number} 折线或点数组对应的长度 */ GeoUtils.getPolylineDistance = function(polyline){ //检查类型 if(polyline instanceof BMap.Polyline || polyline instanceof Array){ //将polyline统一为数组 var pts; if(polyline instanceof BMap.Polyline){ pts = polyline.getPath(); } else { pts = polyline; } if(pts.length < 2){//小于2个点,返回0 return 0; } //遍历所有线段将其相加,计算整条线段的长度 var totalDis = 0; for(var i =0; i < pts.length - 1; i++){ var curPt = pts[i]; var nextPt = pts[i + 1] var dis = GeoUtils.getDistance(curPt, nextPt); totalDis += dis; } return totalDis; } else { return 0; } }
大概方法即以上方法。这里对方法进行改写。
写成java形式
package com.duduli.li.gps2baidu; public class Point { private double x; private double y; public double getX() { return x; } public void setX(double x) { this.x = x; } public double getY() { return y; } public void setY(double y) { this.y = y; } }
package com.duduli.li.gps2baidu; import java.util.ArrayList; import java.util.List; public class Distacst { private double EARTHRADIUS = 6370996.81; public double degreeToRad(double degree){ return Math.PI*degree/180; } public double _getRange(double v, int a, int b){ if(a != 0){ v = Math.max(v, a); } if(b != 0){ v = Math.min(v, b); } return v; } public double _getLoop(double v, int a, int b){ while( v > b){ v -= b - a; } while(v < a){ v += b - a; } return v; } public double getDis(List<Point> list){ int size = list.size(); double dis = 0.0; for(int i=0;i<size-1;i++){ dis += EARTHRADIUS * Math.acos((Math.sin(degreeToRad(_getLoop(list.get(i).getY(), -74, 74))) * Math.sin(degreeToRad(_getLoop(list.get(i+1).getY(), -74, 74))) + Math.cos(degreeToRad(_getLoop(list.get(i).getY(), -74, 74))) * Math.cos(degreeToRad(_getLoop(list.get(i+1).getY(), -74, 74))) * Math.cos(degreeToRad(_getLoop(list.get(i).getX(), -180, 180)) - degreeToRad(_getLoop(list.get(i+1).getX(), -180, 180))))); } return dis; } public static void main(String[] args) { List<Point> list = new ArrayList<Point>(); Point p1 = new Point(); p1.setX(116.442953); p1.setY(39.982648); list.add(p1); Point p2 = new Point(); p2.setX(116.444396); p2.setY(39.982521); list.add(p2); Point p3 = new Point(); p3.setX(116.44574800000001); p3.setY(39.982348); list.add(p3); System.out.println(new Distacst().getDis(list)); // System.out.println(new Distacst().getDis()); // System.out.println(new Distacst().showList(getList())); } }
传入参数为list。先算出两点之间的距离。然后进行累加。
如现在有3个点,那么先算1,2距离,然后算2,3距离。相加即得到结果。
以下是验证:
发表评论
-
使用poi实现xlsx的读取
2018-08-31 17:01 591这里只是记录下,使用poi进行读取xlsx。 可以读取全部数据 ... -
使用java实现输出商品条码机商品数据信息
2018-08-29 15:43 971如图片所示 这里采用方案是: 1,使用jbarcode生成一 ... -
spring boot + jpa实现数据查询工作
2018-08-28 12:38 2360前期已经将mybatis和hibernate已经进行了掌握。 ... -
使用程序实现截屏获取teamview登录信息
2018-04-16 10:42 517很多的时候,我们需要使用teamview进行远程登录。 比如现 ... -
【java】jfreechart退出图标程序继续
2014-11-24 11:34 762做一个窗体,然后调用jfreechart进行图标显示。 当关闭 ... -
【web service】使用cxf对客户端进行开发工作
2014-07-16 10:04 8881,在eclipse中建立一个java项目,为客户端调用web ... -
【java】图片传输方案
2014-05-04 09:59 4528之前做的web service 涉及到一些基础的传输,如基本类 ... -
【java】调用微软语音系统读取文本
2014-05-04 09:52 2353先期准备工作: 安装微软speechsdk51,下载j ... -
【java】试用讯飞SDK开发语音tts初步代码
2014-04-22 16:41 7154tts开发对中文并不很支 ... -
【java】字符串的压缩转码base64
2012-09-11 09:13 10530由于客户端与服务端之间采用web service的方式进行传输 ... -
【java】使用jna调用delphi编译dll总结
2012-09-04 11:29 1139调用dll中,可以的入参为pchar。返回的参数为pwidec ... -
【机器环境】java语言环境不同会出现莫名其妙的问题
2012-09-01 10:49 974有这么一个功能: 模块是这样做的,因为做的是底层。 首先上层使 ... -
【java】试用JNA调用Delphi的dll方法。
2012-08-30 11:04 5065参考文章:http://hi.baidu.com/zuchan ... -
【java】对sql语句进行解析。
2012-08-29 16:25 6970因为在项目中需要对sql进行解析,那么所以业务逻辑比较复杂。 ... -
【接口开发】一个底层业务的很麻烦的接口开发
2012-08-29 14:53 937接口框架采用cxf,然后查询使用hibernate+sql的方 ... -
【java多线程】昨天的一个面试题目
2012-08-09 10:24 1025设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次 ... -
【一个笔试题目】java按字节进行截断
2012-08-08 22:21 1500不可否认,这是一个蛋疼的笔试题: 编程:编写一个截取字符串的函 ... -
【java】判断一个数是不是2的N次方
2012-08-01 19:10 9700第一种方法,对N进行循环除以2. public boolea ... -
java 加密。
2012-07-27 15:14 1028mark一下。 java下面的加密有三类,1,为sun自己的 ... -
【JAVA】加密解密(转http://www.wangchao.net.cn/bbsdetail_1742.html)
2012-03-05 11:42 1391package com.duduli.li; impor ...
相关推荐
我将JAVA一个项目暗箱提供给你们,希望能给你们的研发提供一种科学参考。接下来,我为VC朋友们的项目改革提供资源扩展,将JAVA进销存项目改写、转换为VC项目。
自己改写整合百度地图实例分为跳跃点,静态点,自定义图标点,多点增加标注 点开文件夹内html即可使用
百度地图位置偏差转换js,以及改写后批量转换js,可自定义一次请求坐标数量
百度地图,路书,边走边画线,显示详细消息demo,填上自己的ak可以正常运行,改写move方法
这是我在学习java语言之初根据游戏俄罗斯方块改写的一个小游戏,包括格子的渲染,游戏技能,技能介绍(该介绍灵感来源于天谕游戏技能介绍)以及技能释放使得格子消失的特效实现
java利用接口和抽象类改写求圆的面积和梯形的面积.docx
java实现的排序,根据C语言排序改写,供java初学者参考
echarts中使用天地图的插件示例,使用echarts中百度地图的插件改写,让其支持天地图的展示展示及使用。,使用echarts中高端地图的插件改写,让其支持天地图的展示及使用。 1.echarts-extension-tmap.js 在高度地图...
百度地图的使用demo,经过改写,可以不显示地图的情况下直接获取位置信息
根据eclipse示例程序javaeditor改写的bat编辑器,提供bat的关键字高亮等功能
java-业务需求需要根据经纬度计算面积,整理了一下根据经纬度计算面积,根据openlayers借鉴改写,亲测可用!
1.2背景 随着信息检索技术的高速发展,做为信息检索代表的搜索引擎被广泛引用,如google, 百度等,在中国Internet高速发展过程中,越来越受关注,特别是google,百度在美国 上市后,搜索引擎备受关注。 a.系统的...
《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...
大学Java基础代码 包含:金额大小写改写、简易银行、图形面积接口调用、计算器、定时器、关键词匹配(后三个部分含有图形界面) 使用前请阅读readme.md
普通作业啦。 需要的速度下载。
包内容太大,无法用一个压缩文件上传。放在另一个。 网上的调用例子太多了,有的要用cmd来解析webserive,有的没有包,有的代码报错。学习及测试花了4天,终于完成了。 1直接把项目放到 myeclipse的工作区间加载就...
《Java核心技术》出版以来一直畅销不衰,深受读者青睐,每个新版本都尽可能快地跟上Java开发工具箱发展的步伐,而且每一版都重新改写了部分内容,以便适应Java的最新特性。本版也不例外,它反映了Java SE 6的新特性...
本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)实验报告,基础篇有JAVA环境搭建、Java语言基础、方法和数组、面向对象基础、Java常用类、继承与接口、成员访问控制与异常、JavaFX程序设计、Java...
本资源对应博客个人银行管理程序——c++到java程序的改写_3,压缩包中包含所有的c++和java源代码,欢迎大家下载查阅使用。
ArcGIS For JS 改写的热力图,根据arcgis for javascript API改写的热力图js文件