郵便番号、lat、lngに基づいて特定の数式を計算するプログラムを作成しようとしています。
私の最初のアイデアは、郵便番号ごとにオブジェクトを作成することでした。
class destination():
def __init__(self, zipcode, count):
self.zipcode = zipcode
self.count = count
def getCount(self):
return self.count
def getZip(self):
return self.zipcode
def getLatitude(self):
return self.lat
def getLongitude(self):
return self.lng
def __str__(self):
return "%s at %s , %s" % (self.zipcode, self.lat, self.lng)
def getCoords(self):
'''
Must be called before getLatitude or get Longitude
'''
self.place, (self.lat, self.lng) = gn.geocode(str(self.zipcode))
self.city = self.place.split(",",1)
self.name = self.city[0]
self.value = str(count)+","+self.name
return self.value
リストを繰り返し処理してオブジェクトを作成し、iから必要な情報を抽出できるので、これは問題なく機能します。
zipList = ['54971','46383','90210']
for i in zipList:
i = destination(i,count)
count += 1
戻ります
1,Ripon
-88.8359447
43.8422049
2,Valparaiso
-87.0611412
41.4730948
3,Beverly Hills
-118.4003563
34.0736204
私が頭を悩ませているように思えないのは、各項目の正しい情報を使用して、haversine関数を呼び出すリストを反復処理するようにプログラムを設定する方法です。
def haversine(latStart,lonStart,latEnd,lonEnd):
例:私のリストが
zipList = ['54971','46383','90210']
次に、54971から46383、54971から90210、および46383から90210の計算を実行します。