标签归档:经纬度

mysql实现计算两点(经纬度)间的距离

LBS应用中常常需要计算两点之间的距离,以实现查看某点附近的地点、人、事、物,虽然mysql支持空间查询,但对于一些规模较小的应用还是用简单的处理办法比较快捷,这个方法改自一个js脚本,原脚本是:

var EARTH_RADIUS = 6378137.0; //单位米
var PI = Math.PI;
function getRad(d){
return d*PI/180.0;
}
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;
}
继续阅读

php实现大地主题解算(正算)亦即根据已知点经纬度方向角距离求另一点经纬度

近期在做一个地图小应用用到根据已知点经纬度方向角距离求另一点经纬度,中间用到了百度地图api,却没找到实现这个的方法,百度一下知道这叫大地主题解算的正算,也找到一个vb的代码,由于我用的是php,遂将其改为php版本,经过百度地图测试发现精度还是很高的,1km的距离误差只有几米,附上代码: 继续阅读