我正在尝试获取包含纬度/经度的位置的二维列表,并仅从列表中获取坐标(在第 3 列和第 4 列中)以发送到另一个函数,以便可以计算距离......但我完全难住了。我所拥有的是...
从 OP 编辑以显示我在哪里... x1 = -18.00 #这些值不会改变 y1 = 118.00
x2 = float(origList[3]) y2 = float(origList[4]) n = len(origList ) 应用列表 = []
for i in range (n-1):
appList.append(findDistance(x1, y1, x2, y2))
print appList
但现在我得到...文件 "F:\Storage\t_2\coord_find.py", line 27, in main,x2=math.fabs(origList[3]) TypeError: a float is required
所以问题在于转换为浮动???
那么到目前为止我所拥有的 findDistance 函数(我才刚刚启动它,只是想测试参数是否正确传递)... def findDistance(x1, y1, x2, y2): cosX = math.fabs(y1 - y2) a = 90 - x2 b = 90 - x1
这是我更新的代码,它给了我这个......
delx = math.fabs(y1 - y2)
TypeError: 不支持的操作数类型 -: 'float' 和 'list'
我发布它是因为我显然没有给出足够清晰的解释,并且从那以后进行了一些更改。如您所见,我想从 cols 3,4 获取 x2,y2。试过 x2=float(origList[3]), y2=float(origList[4]) 但这也不起作用 - 我得到“float()argument must be a string or a number”。在尝试将值提取为浮点数之前,我是否需要以某种方式拆分列表?
import csv
import math
def fZone():
origList = [['200','12_7','Cons_pl','-20.10','120.10','C_10_T2'],['....'...]]
# origList has 30+ lines like this
x1 = -20.68 # Fixed point
x2 = 117.19 # Fixed point
n = len(origList) # list length
appList = [] # to hold returned
for i in range (n):
x2= origList[3] # I wanna get the '-20.10' col each iteration
y2= origList[4] # I wanna get the '120.10' col each iteration
appList.append(findDist(x1, y1, x2, y2))
print appList
def findDist(x1,y1,x2,y2):
delx = math.fabs(y1 - y2)
a = 90 - x2
b = 90 - x1 # formula is not finished