2011-03-08 70 views
1
def latlong_distance(origin, destination): 
     lat1, lon1 = origin 
   lat2, lon2 = destination 
   radius = 6371 
   dlat = math.radians(lat2-lat1) 
   dlon = math.radians(lon2-lon1)    a = math.sin(dlat/2) * math.sin(dlat/2) + math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * math.sin(dlon/2) * math.sin(dlon/2) 
   c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a)) 
   d = radius * c 
   return d * 1000 

SyntaxError:第65行文件/tools.py中的非ASCII字符'\ xc2',但未聲明編碼;見http://www.python.org/peps/pep-0263.html的細節當我把它粘貼到vim中時,我得到語法錯誤?

+1

您是否閱讀過錯誤信息? – 2011-03-08 05:30:32

+0

這與vim有什麼關係? – Fosco 2011-03-08 05:32:23

+3

這可能是一個間距問題(\ xc2是一個空格字符),嘗試並重新使用只有空格,沒有別的。你也可以在文件的頂部放置'# - * - coding:utf-8 - * - ',看看是否有幫助。 – 2011-03-08 05:34:34

回答

7

這可能是一個間距問題(\ xc2是一個空格字符),試着重新使用只有空格,沒有別的。你也可以把# -*- coding:utf-8 -*-放在文件的頂部,看看是否有幫助。

1

我修改了代碼一點:

dlon = math.radians(lon2-lon1) a = math.sin(dlat/2) * math.sin(dlat/2) + math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * math.sin(dlon/2) * math.sin(dlon/2) 

應該拆分兩行是這樣的:

dlon = math.radians(lon2-lon1) 
a = math.sin(dlat/2) * math.sin(dlat/2) + math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * math.sin(dlon/2) * math.sin(dlon/2) 

我試過了,而且也沒有出現的異常。你可以在這裏附上那個文件嗎?

相關問題