js代码--根据经纬度计算距离
原网页地址:http://www.storyday.com/wp-content/uploads/2008/09/latlung_dis.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>经纬度距离计算小工具</title>
<style>
body {
margin: 5px 0;
padding: 0;
font-size: 12px;
TEXT-ALIGN: center;
font-family: arial, helvetica, sans-serif;
TEXT-ALIGN: center;
background: #FFF;
}
HTML BODY {
TEXT-ALIGN: center;
}
div {
MARGIN: 0px auto;
font-family: arial, helvetica, sans-serif;
text-align: left;
}
#page, div.page {
width: 980px;
overflow: visible;
text-align: center;
}
#main {
float: left;
width: 73%;
text-align: left;
overflow: hidden;
}
#sidebar {
float: right;
width: 26%;
}
#main p {
line-height: 25px;
font-size: 14px;
}
a img {
border: 0;
}
p a img {
border: 1px solid #eee;
padding: 2px;
margin: 3px;
} i.corner {
display: block;
}
i.corner i {
height: 1px;
display: block;
font-size: 1px;
overflow: hidden;
background-color: #FFFFFF;
}
i.corner i.l1 {
margin: 0 5px;
border-bottom: 1px solid #ced4ca;
}
i.corner i.l2, i.corner i.l3, i.corner i.l4, div.cbody {
margin: 0 3px;
border-left: 1px solid #ced4ca;
border-right: 1px solid #ced4ca;
background: #fff;
}
i.corner i.l3 {
margin: 0 2px;
}
i.corner i.l4 {
margin: 0 1px;
height: 1px;
}
i.corner i.l5 {
margin: 0 5px;
border-top: 1px solid #ced4ca;
height: 1px;
}
div.cbody {
padding: 0 8px;
margin: 0;
background: #fff;
text-align: left;
}
.panel {
width: 100%;
font-size: 12px;
margin: 5px 0;
}
div.cbody .detailentry, div.cbody h1 {
margin: 0;
padding: 0;
}
.cbody ul {
list-style: none;
}
#CodeLable, #revq, td {
font-weight: bold;
font-size: 18px;
}
td {
font-weight: normal;
}
td.lb {
text-align: right;
padding: 0 5px 0 0;
color: green;
width: 150px;
}
.warning {
background: red;
color: #fff;
padding: 2px;
float: left;
}
/* end of corner*/
</style>
<body>
<div id="page">
<div class="page">
<h2>度分秒 TO 小数点 转换</h2>
<div class="panel">
<i class="corner"><i class="l1"></i><i class="l2"></i><i class="l3"></i><i class="l4"></i></i>
<div class="cbody">
<div style="text-align:center;height:60px;">
<div style="float:left;color:green;font-weight:bold;font-size:14px;width:50px;" id="sign1">
</div>
<div style="float:left;"> <input type="text" id="deg" name="deg" onKeyUp="Convert2Dec()" />
度
<input type="text" id="min" name="min" onKeyUp="Convert2Dec()"/>
分
<input type="text" id="sec" name="sec" onKeyUp="Convert2Dec()"/>
秒
<br />
<br />
=
<input type="text" id="deg2" name="deg2" onkeyup="Convert2Deg()" />
度
</div>
<div style="float:left;color:green;font-weight:bold;font-size:14px;width:50px;" id="sign2">
</div>
</div>
</div>
<i class="corner"><i class="l4"></i><i class="l3"></i><i class="l2"></i><i class="l5"></i></i>
</div>
<h2>经纬度距离计算</h2>
<div class="panel">
<i class="corner"><i class="l1"></i><i class="l2"></i><i class="l3"></i><i class="l4"></i></i>
<div class="cbody">
<div style="text-align:center;height:100px;">
<div style="text-align:left;float:left;margin-left:40px;">
A:纬度
<input type="text" name="lat1" id="lat1" onKeyUp="calDis()" />
经度
<input type="text" name="lng1" id="lng1" onKeyUp="calDis()" />
<br />
<br />
B:纬度
<input type="text" name="lat2" id="lat2" onKeyUp="calDis()" />
经度
<input type="text" name="lng2" id="lng2" onKeyUp="calDis()" />
<br />
<br />
A-B:距离=
<input type="text" name="distance" id="distance" />
Km
</div>
<div class="warning" id="warning"></div>
</div> </div>
<i class="corner"><i class="l4"></i><i class="l3"></i><i class="l2"></i><i class="l5"></i></i>
</div> <SCRIPT LANGUAGE="JavaScript">
function getVal(obj) {
if (document.getElementById(obj) != null)
return document.getElementById(obj).value;
else
return 0;
} function setVal(obj, val) {
if (document.getElementById(obj) != null)
document.getElementById(obj).value = val; } function Convert2Dec() {
var deg = Math.abs(getVal('deg'));
var min = Math.abs(getVal('min'));
var sec = Math.abs(getVal('sec'));
var deci = deg * 1 + (sec * 1 + min * 60 ) / 3600;
setVal("deg2", deci);
} function Convert2Deg() {
var deci = Math.abs(getVal('deg2'));
var deci2 = deci + ''; if (deci2.indexOf('.') == -1) {
setVal("deg", deci);
return false;
}
deci = deci2.split(".");
setVal("deg", deci[0]); //
deci[1] = "0." + deci[1];
var min_sec = deci[1] * 3600;
var min = Math.floor(min_sec / 60);
var sec = (min_sec - (min * 60 ) ); setVal("min", min); setVal("sec", sec); } function hide(m) {
document.getElementById(m).style.display = "none";
return true;
} function show(m) {
document.getElementById(m).style.display = "";
return true;
} //private const double EARTH_RADIUS = 6378.137;
function rad(d) {
return d * Math.PI / 180.0;
} function GetDistance(lat1, lng1, lat2, lng2) {
hide("warning");
if ((Math.abs(lat1) > 90 ) || (Math.abs(lat2) > 90 )) {
document.getElementById("warning").innerHTML = ("兄台,这哪里是纬度啊?分明是想忽悠我嘛");
show("warning");
return "耍我?拒绝计算!";
} else {
hide("warning");
}
if ((Math.abs(lng1) > 180 ) || (Math.abs(lng2) > 180 )) { show("warning");
document.getElementById("warning").innerHTML = ("兄台,这哪里是经度啊?分明是想忽悠我嘛");
return "耍我?拒绝计算!";
} else {
hide("warning");
}
var radLat1 = rad(lat1);
var radLat2 = rad(lat2);
var a = radLat1 - radLat2;
var b = rad(lng1) - rad(lng2);
var 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 * 6378.137;
// EARTH_RADIUS;
s = Math.round(s * 10000) / 10000;
return s;
} function calDis() {
var lat1 = document.getElementById("lat1").value * 1;
var lat2 = document.getElementById("lat2").value * 1;
var lng1 = document.getElementById("lng1").value * 1;
var lng2 = document.getElementById("lng2").value * 1;
var dis = GetDistance(lat1, lng1, lat2, lng2);
document.getElementById("distance").value = dis; }
</SCRIPT> <div style="text-align:Center">
This Tool is Powered by Cosbeta [china.cos(at)gmail.com]
</div>
</div>
</div>
</body>
</html>
js代码--根据经纬度计算距离的更多相关文章
- PHP根据两点间的经纬度计算距离,php两点经纬度计算(转)
这是一个不错的示例,直接贴代码,首先要知道纬度值.经度值 /** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经 ...
- iOS根据2个经纬度计算距离
#pragma mark - calculate distance 根据2个经纬度计算距离 #define PI 3.14159265358979323 +(double) CalculationDi ...
- java工具类(六)根据经纬度计算距离
Java实现根据经纬度计算距离 在项目开发过程中,需要根据两地经纬度坐标计算两地间距离,所用的工具类如下: Demo1: public static double getDistatce(double ...
- python的N个小功能(文本字段对应数值,经纬度计算距离,两个时间点计算时间间隔)
案例1 >>> import pandas as pd >>> df=pd.DataFrame({'A':[1,2,3],'B':[1,2,3],'C':[1,2, ...
- php有经纬度计算距离
/** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值 */ function getDistanc ...
- MySQL创建根据经纬度计算距离的函数
按照经纬度计算距离 日常开发中,特别是做微信项目时,经常会遇到根据用户地理位置来展示附近商家的功能,通常解决这种问题的思路是,后台设置商家的经纬度,然后再根据前台传的经纬度进行计算,具体经纬度转换以及 ...
- PHP根据两点间的经纬度计算距离
/** * 说明: 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值 */ function getDistance($lat ...
- cesium根据经纬度计算距离
var startLatitude = 36;var startLongitude = 120; var endLatitude=34; var endLongitude=121; var start ...
- PHP根据经纬度计算距离
思路: 公式: W为纬度对应的弧度,J为经度对应的弧度,如上图所示 下面代码 lat是纬度 lng是经度 /** * 根据经纬度算距离,返回结果单位是公里,先纬度,后经度 * @param $la ...
随机推荐
- codevs 必做:2776、1222
2776 寻找代表元 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 广州二中苏元实验学校一共有n个社团,分 ...
- springboot错误页面处理
springboot作为微服务的便捷框架,在错误页面处理上也有了一些新的处理,不同于之前的pringmvc500的页面处理是比较简单的,用java config或者xml的形式,定义如下的Bean即可 ...
- Nvidia NVENC 硬编码预研总结
本篇博客记录NVENC硬编码的预研过程 github: https://github.com/MarkRepo/NvencEncoder 步骤如下: (1)环境搭建 (2)demo编译,测试,ARG ...
- Android SDK上手指南1:应用程序结构
一直说要学java要学android开发,可是一直胡乱地忙活这忙活那,之前开始学了一点也中断了.说是没时间,都是借口,回顾一下自己的生活感觉缺少点激情,没有什么奋斗的动力,所以好多时间就浪费了.刚刚考 ...
- 【leetcode刷题笔记】Search in Rotated Sorted Array II
Follow up for "Search in Rotated Sorted Array":What if duplicates are allowed? Would this ...
- 《UNIX网络编程》daytimetcpcli测试
对于刚刚接触网络的人来说,<UNIX网络编程>中第一个例子(daytimetcpcli)可能就测试不通过.也许你试着继续向后读来,自己写一个服务程序来解决这个问题,但是daytime服务也 ...
- ML二(决策树学习)
决策树学习 Decision Tree Learning 1 基本概念 属性(attribute):树上的每个结点说明了对实例的某个属性的测试,该结点的每一个后继分支对应该属性的一个可能值. 熵(en ...
- Spark- 优化后的 shuffle 操作原理剖析
在spark新版本中,引入了 consolidation 机制,也就是说提出了ShuffleGroup的概念.一个 ShuffleMapTask 将数据写入 ResultTask 数量的本地文本,这个 ...
- linux开机过程
一.MBR(main boot record)主引导记录 主引导记录位于0盘面,0磁道,0扇区,早期由512个字节组成. 其中446个字节是boot loader程序.Boot Loader是在操作系 ...
- JavaScript中call、apply个人理解
JavaScript中call.apply个人理解 一句话即通俗的说:call.apply 是为了改变this的状态而存在的 }; } function personInfo(name,age){ t ...