鱼C论坛

 找回密码
 立即注册
查看: 2355|回复: 3

紧急求助,python处理表格数据

[复制链接]
发表于 2017-9-16 15:09:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
知道两个表格中的GPS坐标点,求出每个任务坐标点的半径1千米范围内有几个会员。

要求记录该任务的坐标,价格,半径1千米内会员数,完成情况等数据,保存到第三个表格


拜托了,各位亲们,谢谢,谢谢,谢谢。

1.png

2.png

附件.zip (194.48 KB, 下载次数: 1)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-9-16 15:11:39 | 显示全部楼层
根据GPS坐标求距离的公式是
double rad(double d)

{

  const double PI = 3.1415926535898;

  return d * PI / 180.0;

}

// 从两个gps坐标点(经纬度)获得两点的直线距离,单位是米

int CalcDistance(float fLati1, float fLong1, float fLati2, float fLong2)

{

  const float EARTH_RADIUS = 6378.137;

  double radLat1 = rad(fLati1);

  double radLat2 = rad(fLati2);

  double a = radLat1 - radLat2;

  double b = rad(fLong1) - rad(fLong2);

  double s = 2 * asin(sqrt(pow(sin(a/2),2) + cos(radLat1)*cos(radLat2)*pow(sin(b/2),2)));

  s = s * EARTH_RADIUS;

  s = (int)(s * 10000000) / 10000;

  return s;

}

}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-16 15:51:56 | 显示全部楼层
from math import radians, cos, sin, asin, sqrt  
  
def haversine(lon1, lat1, lon2, lat2): # 经度1,纬度1,经度2,纬度2 (十进制度数)  
    """
    Calculate the great circle distance between two points  
    on the earth (specified in decimal degrees)
    """  
    # 将十进制度数转化为弧度  
    lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])  
  
    # haversine公式  
    dlon = lon2 - lon1   
    dlat = lat2 - lat1   
    a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2  
    c = 2 * asin(sqrt(a))   
    r = 6371 # 地球平均半径,单位为公里  
    return c * r * 1000  

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-16 22:33:45 | 显示全部楼层
大佬们帮帮忙啊,感激不尽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-23 23:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表