阅读背景:

计算小区匹配地铁站的直线距离

来源:互联网 
import pandas as pd import numpy as np class Distance: def __init__(self,data): assert ('name' in data.columns) and ('longitude' in data.columns) and ('latitude' in data.columns) and \ ('商圈经度' in data.columns) and ('商圈纬度' in data.columns),\ 'The data is not allowed' self._df = data self._df.insert(self._df.shape[1],'Distance',np.nan) def _getdisfromXtoY(self,lng_a,lat_a,lng_b,lat_b): pk = 180/3.14169 a1 = lat_a/pk a2 = lng_a / pk b1 = lat_b / pk b2 = lng_b / pk t1 = np.cos(a1)* np.cos(a2) * np.cos(b1) *np.cos(b2) t2 = np.cos(a1)*np.sin(a2) *np.cos(b1) *np.sin(b2) t3 = np.sin(a1)*np.sin(b1) tt = np.arccos(t1 + t2 + t3) return (6378000*tt) def getDistance(self): for i in self._df.index: a = self._df.loc[i,'longitude'] b = self._df.loc[i,'latitude'] c = self._df.loc[i,'商圈经度'] d = self._df.loc[i,'商圈纬度'] self._df.loc[i,'Distance'] = self._getdisfromXtoY(a,b,c,d) def getresult(self): return self._df import pandas as pd import numpy as np class Dist



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: