【发布时间】:2019-10-24 09:30:17
【问题描述】:
我想从给定半径内的表格中提取所有坐标。 如何设置 for 循环?
为此我使用半正弦公式,我只输入中心点的纬度和经度值以及要测试的点的纬度和经度值(如果它在给定半径内)。
所以我认为我需要一个 for 循环,在其中为 lat 和 lon 列的每一行运行半正弦公式,如果坐标在半径内,我将它们保存在一个列表中。
#Get coordinates
#Center coordinates = nearest road location
lat1 = float(lowParkingUtilization.iloc[roadIndex].toLat)
lon1 = float(lowParkingUtilization.iloc[roadIndex].toLon)
#Test coordinates = scooter coordinates
insideRadius = []
radius = 2.50 # in kilometer
for i in eScooterVOI['lat']:
lat2 = float(eScooterVOI['lat'][i])
lon2 = float(eScooterVOI['lon'][i])
a = haversine(lon1, lat1, lon2, lat2)
if a <= radius:
insideRadius += str(lon2)+","+str(lat2)
else:
使用给定的代码,我收到以下错误消息:
File "<ipython-input-574-02dadebee55c>", line 18
^
SyntaxError: unexpected EOF while parsing
【问题讨论】:
-
您需要在
else块中添加一些代码。 -
你可以从你的代码中删除
else,因为它没有做任何事情。或者你可以把else: pass(带缩进)
标签: python pandas for-loop math haversine