<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body οnlοad="load();">
纬度1<input id="lat1" type="text" name="">
经度1 <input id="lng1" type="text" name="">
纬度2<input id="lat2" type="text" name="">
经度2 <input id="lng2" type="text" name="">
<button id="calc" type="button">计算</button>
</body>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
function load() {
$("#calc").click(function() {
var lat1 = parseFloat($("#lat1").val());
var lng1 = parseFloat($("#lng1").val());
var lat2 = parseFloat($("#lat2").val());
var lng2 = parseFloat($("#lng2").val());
alert(getGreatCircleDistance(lat1,lng1,lat2,lng2));
});
}
var EARTH_RADIUS = 6378137.0; //单位M
var PI = Math.PI;
function getRad(d){
return d*PI/180.0;
}
/**
* caculate the great circle distance
* @param {Object} lat1
* @param {Object} lng1
* @param {Object} lat2
* @param {Object} lng2
*/
function getGreatCircleDistance(lat1,lng1,lat2,lng2){
var radLat1 = getRad(lat1);
var radLat2 = getRad(lat2);
var a = radLat1 - radLat2;
var b = getRad(lng1) - getRad(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*EARTH_RADIUS;
s = Math.round(s*10000)/10000.0;
return s;
}
</script>
</html>
js计算两点之间的经纬度
最新推荐文章于 2023-09-25 14:16:09 发布