combination_m_n
def combination_2_n(l):
n, r = len(l), []
for i in range(0, n, 1):
s = i + 1
for ii in range(s, n, 1):
r.append([l[i], l[ii]])
return r
# l1, l2 = [23, 123], [24, 124]
def rad(d):
return d * np.pi / 180.0 def compute_diff(l1, l2):
lat1, lng1 = l1
lat2, lng2 = l2
radLat1, radLat2 = rad(lat1), rad(lat2)
a = radLat1 - radLat2
b = rad(lng1) - rad(lng2)
inner_ = math.sqrt(math.pow(math.sin(a / 2), 2) +
math.cos(radLat1) * math.cos(radLat2) * math.pow(math.sin(b / 2), 2))
s = 2 * math.asin(inner_)
s = s * 6378.137
s = math.ceil(s * 10000) / 10000;
return s # 0-设置2组经纬度距离阈值(初始值:100米);
# 1-如果只有一组组经纬度,则直接接受;基于经纬度条数的分布数据,认为“在保证距离阈值的情况下,
# 取距离(并列)最近的2点的经纬度的算数平均数”是可行的;
# latlon_l = [[142, 343], [12, 6557], [3, 666], [434, 33], [142, 6557]] def compute_macwithres_nominal_latlon(latlon_l, point_dis_threshold=500):
n, r = len(latlon_l), {}
if n == 1:
return {0: latlon_l[0]}
elif n > 1:
c_pair = combination_2_n(latlon_l)
for i in c_pair:
dis = compute_diff(i[0], i[1])
if dis > point_dis_threshold:
continue
if dis not in r:
r[dis] = []
r[dis].append(i)
if r == {}:
return {}
else:
min = sorted(r, reverse=False)[0]
return {min: r[min][0]}
combination_m_n的更多相关文章
随机推荐
- Ubuntu 16.04安装深度的Wine(deepin-wine 1.9.0)
说明: 1.使用的Wine版本是深度出品(Deepin),已经精简了很多没用的配置,使启动能非常快,占用资源小. 2.提取自QQ和迅雷安装包,如果安装了这个Wine不成功,可能是依赖问题,再试多几次, ...
- Java获取路径的方法分析详解(Application/Web)
1.利用System.getProperty()函数获取当前路径: System.getProperty("user.dir");//user.dir用户当前的工作目录,输出:D: ...
- An Introduction to Reflection in C++
Apr 13, 2017 Stop me if you’ve heard this one before. You are working on a messaging middleware, a g ...
- 【jsp】jsp访问到之后报错如下:Uncaught SyntaxError: Unexpected token <
jsp访问到之后报错如下: Uncaught SyntaxError: Unexpected token < 问题出在哪里: 发现把这个注销掉,就不会出现这个问题了,那script引用js文件哪 ...
- 分治法寻找第k大的数
利用快速排序的思想·去做 #include<iostream>using namespace std;int FindKthMax(int*list, int left, int righ ...
- iscroll 子表左右滚动同时保持页面整体上下滚动
if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultExce ...
- mac 安装 office
1.下载word2016,可以网上搜一下,很多资源 当然这里将我用的版本提供给你: 链接: https://pan.baidu.com/s/1mix07lY 密码: asgc 一直默认下一步进行安 ...
- 爬虫:网页里元素的xpath结构,scrapy不一定就找的到
这种情况原因是html界面关联的js文件可能会动态修改DOM结构,这样浏览器完成了动态修改DOM,在 浏览器上看到的DOM结构,就和后台抓到的DOM结构不通 举例:新浪微博发的微博,在浏览器通过fir ...
- Jboss7类载入器
1. 类载入器理论知识介绍 类载入器基于Jboss Module,代替了层次类载入环境,避免了当类存在多个版本号时,导致类载入错误. 类载入是基于模块的.必须显示的定义模块依赖.部署也是模块化的,假设 ...
- foreach_break 面试记录
版权所有@foreach_break] [博客地址 http://www.cnblogs.com/foreach-break] 可以转载,但必须注明出处并保持博客超链接 背景 自从2013年离开北京后 ...