月度归档:2017年02月

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;
}
继续阅读

mysql 字段别名不能用于where子句的解决方法

mysql 字段别名不能用于where子句,会报”ERROR 1054 (42S22): Unknown column ‘xxxxxx’ in ‘where clause’
“错误,这个很多人都有遇到,却不知道是为什么,搜索了很多答案都觉得不靠谱。倒是找到了一个比较靠谱的解决方法:
“select name as alias from table where alias=’xxxx’;”这样的错误语句改为”select name as alias from table having(alias=’xxxx’);”即可解决问题。

IP 库之手机基站数据篇(转)

*文章转自ipip.net,有删减*
后来2015年第三季度的某一天,发现我们基于已有的数据可以做基站数据的识别了,其实之前也有,只是没想到可以这么用。于是就有了这个基站 IP 数据库。
这里说的基站 IP 数据,和基站 ID 对应的地理位置数据是两码事,后面这个以后再安利吧。
先说一下概念,大家在不使用 WIFI 网络的时候,使用手机通过运营商提供的网络进行上网的时候,目前都是在用户端使用私有IP,然后对外做 NAT 转换,这样的情况就导致大家统一使用一些 IP 段进行访问网站或者 APP。一般我们称这些相对固定的 IP 段为基站 IP ,这个不一定是运营商的说法,无论是 GGSN 还是什么,但是我们这些关注这块的人都这么叫,算是约定俗成吧。 继续阅读

Linux系统计划任务crontab的用法

近期有个需求,使用python写的小程序需要开机自动运行,并在后台运行,每间隔5分钟自动监测本地IP的变化,可是程序运行几天就会自动挂掉,没有错误提示,就那么无缘无故挂掉。后来通过linux计划任务crontab解决问题。
crontab有五个可选参数:crontab [ -u user ] [ -i ] { -e | -l | -r }
1、 crontab -u 设定某个用户的cron服务
2、 crontab -e 编辑当前用户的crontab文件
3、 crontab -l 列出当前用户的任务
4、 crontab -r 删除当前用户的任务
5、 crontab -i 忽略删除用户任务时的确认 继续阅读